diff options
Diffstat (limited to 'src/java_cup/simple_calc/parser.cup')
| -rw-r--r-- | src/java_cup/simple_calc/parser.cup | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/src/java_cup/simple_calc/parser.cup b/src/java_cup/simple_calc/parser.cup deleted file mode 100644 index 44e41a0..0000000 --- a/src/java_cup/simple_calc/parser.cup +++ /dev/null @@ -1,77 +0,0 @@ -/* - * This file is part of Petascope. - * - * Petascope is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. - * - * Petascope is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Petascope. If not, see <http://www.gnu.org/licenses/>. - * - * For more information please see <http://www.Petascope.org> - * or contact Peter Baumann via <baumann@rasdaman.com>. - * - * Copyright 2009 Jacobs University Bremen, Peter Baumann. - */ - -// JavaCup specification for a simple expression evaluator (w/ actions) - -package java_cup.simple_calc; - -import java_cup.runtime.*; - -/* Terminals (tokens returned by the scanner). */ -terminal SEMI, PLUS, MINUS, TIMES, DIVIDE, MOD; -terminal UMINUS, LPAREN, RPAREN; -terminal Integer NUMBER; - -/* Non terminals */ -non terminal Object expr_list, expr_part; -non terminal Integer expr; - -/* Precedences */ -precedence left PLUS, MINUS; -precedence left TIMES, DIVIDE, MOD; -precedence left UMINUS, LPAREN; - -/* The grammar */ -expr_list ::= expr_list expr_part - | - expr_part; - -expr_part ::= expr:e - {: System.out.println("= " + e); :} - SEMI - ; - -expr ::= expr:e1 PLUS expr:e2 - {: RESULT = new Integer(e1.intValue() + e2.intValue()); :} - | - expr:e1 MINUS expr:e2 - {: RESULT = new Integer(e1.intValue() - e2.intValue()); :} - | - expr:e1 TIMES expr:e2 - {: RESULT = new Integer(e1.intValue() * e2.intValue()); :} - | - expr:e1 DIVIDE expr:e2 - {: RESULT = new Integer(e1.intValue() / e2.intValue()); :} - | - expr:e1 MOD expr:e2 - {: RESULT = new Integer(e1.intValue() % e2.intValue()); :} - | - NUMBER:n - {: RESULT = n; :} - | - MINUS expr:e - {: RESULT = new Integer(0 - e.intValue()); :} - %prec UMINUS - | - LPAREN expr:e RPAREN - {: RESULT = e; :} - ; |
