From fcf40c09879355d0b1860cf5545ac26ac0aca681 Mon Sep 17 00:00:00 2001 From: Andrei Aiordachioaie Date: Mon, 25 May 2009 10:19:35 +0200 Subject: Added new grammar source files (ANTLR) --- src/grammar/NumericScalarExpr.java | 245 ++++++++++++++++++++----------------- 1 file changed, 132 insertions(+), 113 deletions(-) (limited to 'src/grammar/NumericScalarExpr.java') diff --git a/src/grammar/NumericScalarExpr.java b/src/grammar/NumericScalarExpr.java index c0835fc..ba0db8e 100644 --- a/src/grammar/NumericScalarExpr.java +++ b/src/grammar/NumericScalarExpr.java @@ -1,113 +1,132 @@ -/* - * 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 . - * - * For more information please see - * or contact Peter Baumann via . - * - * Copyright 2009 Jacobs University Bremen, Peter Baumann. - */ - -package grammar; - -public class NumericScalarExpr implements IParseTreeNode -{ - String constValue; - String function; - NumericScalarExpr leftNumericScalarExpr, rightNumericScalarExpr; - CondenseExpr condense; - - public NumericScalarExpr(String val) - { - if (val.contains("+i")) - { - ComplexConst cc = new ComplexConst(val); - - constValue = cc.toXML(); - function = "complexConstant"; - } - else - { - constValue = val; - function = "numericConstant"; - } - } - - public NumericScalarExpr(String op, NumericScalarExpr expr) - { - leftNumericScalarExpr = expr; - - if (op.equals("-")) - function = "numericUnaryMinus"; - else - System.err.println("Unary Operator " + op + " is not recognized!"); - } - - public NumericScalarExpr(String op, NumericScalarExpr lbe, NumericScalarExpr rbe) - { - leftNumericScalarExpr = lbe; - rightNumericScalarExpr = rbe; - - if (op.equals("+")) - { - function = "numericAdd"; - } - else if (op.equals("-")) - { - function = "numericMinus"; - } - else if (op.equals("*")) - { - function = "numericMult"; - } - else if (op.equals("/")) - { - function = "numericDiv"; - } - else - { - System.err.println("Operator " + op + " is not recognized!"); - } - } - - public NumericScalarExpr(CondenseExpr c) - { - condense = c; - function = "condense"; - } - - public String toXML() - { - String result; - - if (function.equals("complexConstant")) - return constValue; - - result = "<" + function + ">"; - - if (function.equals("numericConstant")) - result += constValue; - else - { - result += leftNumericScalarExpr.toXML(); - if (rightNumericScalarExpr != null) - result += rightNumericScalarExpr.toXML(); - } - - result += ""; - - return result; - } -} +/* + * 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 . + * + * For more information please see + * or contact Peter Baumann via . + * + * Copyright 2009 Jacobs University Bremen, Peter Baumann. + */ + + + + +package grammar; + +/** + * NumericScalarExpr + * Creation date: (3/3/2003 2:28:43 AM) + * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie + */ +public class NumericScalarExpr implements IParseTreeNode +{ + CondenseExpr condense; + String constValue; + String function; + NumericScalarExpr leftNumericScalarExpr, rightNumericScalarExpr; + + public NumericScalarExpr(CondenseExpr c) + { + condense = c; + function = "condense"; + } + + public NumericScalarExpr(String val) + { + if (val.contains("+i")) + { + ComplexConst cc = new ComplexConst(val); + + constValue = cc.toXML(); + function = "complexConstant"; + } + else + { + constValue = val; + function = "numericConstant"; + } + } + + public NumericScalarExpr(String op, NumericScalarExpr expr) + { + leftNumericScalarExpr = expr; + + if (op.equals("-")) + { + function = "numericUnaryMinus"; + } + else + { + System.err.println("Unary Operator " + op + " is not recognized!"); + } + } + + public NumericScalarExpr(String op, NumericScalarExpr lbe, NumericScalarExpr rbe) + { + leftNumericScalarExpr = lbe; + rightNumericScalarExpr = rbe; + + if (op.equals("+")) + { + function = "numericAdd"; + } + else if (op.equals("-")) + { + function = "numericMinus"; + } + else if (op.equals("*")) + { + function = "numericMult"; + } + else if (op.equals("/")) + { + function = "numericDiv"; + } + else + { + System.err.println("Operator " + op + " is not recognized!"); + } + } + + public String toXML() + { + String result; + + if (function.equals("complexConstant")) + { + return constValue; + } + + result = "<" + function + ">"; + + if (function.equals("numericConstant")) + { + result += constValue; + } + else + { + result += leftNumericScalarExpr.toXML(); + + if (rightNumericScalarExpr != null) + { + result += rightNumericScalarExpr.toXML(); + } + } + + result += ""; + + return result; + } +} -- cgit