diff --git a/ExprParser.g4 b/ExprParser.g4 index 6c8e0ac..fd990bc 100644 --- a/ExprParser.g4 +++ b/ExprParser.g4 @@ -1,126 +1,126 @@ -parser grammar ExprParser; +// parser grammar ExprParser; -options { - tokenVocab=ExprLexer; -} +// options { +// tokenVocab=ExprLexer; +// } -// Class Parser rules -prog : class EOF; +// // Class Parser rules +// prog : class EOF; -class:(Public | Private | Protected ) Class ID SLPAREN method+ SRPAREN; +// class:(Public | Private | Protected ) Class ID SLPAREN method+ SRPAREN; -//Method Decloration -method: Public Static Void ID LPAREN arg* RPAREN SLPAREN methodCode SRPAREN - | Private Static Void ID SLPAREN methodCode SRPAREN - | Protected Static Void ID SLPAREN methodCode SRPAREN - ; +// //Method Decloration +// method: Public Static Void ID LPAREN arg* RPAREN SLPAREN methodCode SRPAREN +// | Private Static Void ID SLPAREN methodCode SRPAREN +// | Protected Static Void ID SLPAREN methodCode SRPAREN +// ; -methodCode: systemOutPrint* forloop* - ; +// methodCode: systemOutPrint* forloop* +// ; -systemOutPrint - : SYSTEM DOT OUT DOT PRINT LPAREN data RPAREN SEMI; +// systemOutPrint +// : SYSTEM DOT OUT DOT PRINT LPAREN data RPAREN SEMI; -forloop: For LPAREN arg RPAREN SLPAREN methodCode SRPAREN; +// forloop: For LPAREN arg RPAREN SLPAREN methodCode SRPAREN; -arg: String arraydef* ID - | exp SEMI exp SEMI exp - ; +// arg: String arraydef* ID +// | exp SEMI exp SEMI exp +// ; -exp: define - | ID GreterEql INTE - | ID INCMENT - ; -define : Int ID EQL INTE; -arraydef: SqLPAREN (data T)* SqRPAREN; -data: STRING ; +// exp: define +// | ID GreterEql INTE +// | ID INCMENT +// ; +// define : Int ID EQL INTE; +// arraydef: SqLPAREN (data T)* SqRPAREN; +// data: STRING ; -//TODO: sections 4 to 9 +// //TODO: sections 4 to 9 -//Primitive Types -type: - primitiveType dims? //Handle int[] or just int - |name dims?; +// //Primitive Types +// type: +// primitiveType dims? //Handle int[] or just int +// |name dims?; -primitiveType: - primitiveNumericType - |Boolean; +// primitiveType: +// primitiveNumericType +// |Boolean; -primitiveNumericType: - primitiveIntegralType - |primitiveFloatingPointType; +// primitiveNumericType: +// primitiveIntegralType +// |primitiveFloatingPointType; -primitiveIntegralType: - Byte - |Short - |Int - |Long - |Char; +// primitiveIntegralType: +// Byte +// |Short +// |Int +// |Long +// |Char; -primitiveFloatingPointType: - Float - |Double; +// primitiveFloatingPointType: +// Float +// |Double; -dims: - (LBracket RBracket)*; +// dims: +// (LBracket RBracket)*; -name: - Identifier (Dot Identifier)*; -// Operators 15.20 Relational Operators -relationalExpression: - shiftExpression - |relationalExpression LessThan ShiftExpression - |relationalExpression GreaterThan ShiftExpression - |relationalExpression LessOrEqual ShiftExpression - |relationalExpression GreaterOrEqual ShiftExpression - |relationalExpression InstanceOf ReferenceType; +// name: +// Identifier (Dot Identifier)*; +// // Operators 15.20 Relational Operators +// relationalExpression: +// shiftExpression +// |relationalExpression LessThan ShiftExpression +// |relationalExpression GreaterThan ShiftExpression +// |relationalExpression LessOrEqual ShiftExpression +// |relationalExpression GreaterOrEqual ShiftExpression +// |relationalExpression InstanceOf ReferenceType; -//Equality Operators +// //Equality Operators -equalityExpression: - relationalExpression - |equalityExpression EqualEqual relationalExpression - |equalityExpression NotEqualTo relationalExpression; +// equalityExpression: +// relationalExpression +// |equalityExpression EqualEqual relationalExpression +// |equalityExpression NotEqualTo relationalExpression; -//Bitwise and Logical Operators -andExpression: - equalityExpression - |andExpression BitwiseAND andExpression; -exclusiveOrExpression: - andExpression - |exclusiveOrExpression BitwiseXOR andExpression; -inclusiveOrExpression: - exclusiveOrExpression - inclusiveOrExpression BitwiseOR exclusiveOrExpression; -//Conditional And (&&) -conditionalAndExpression: - inclusiveOrExpression - |conditionalAndExpression ConditionalAnd inclusiveOrExpression; -//conditional Or (||) -conditionalOrExpression: - conditionalAndExpression - |conditionalOrExpression ConditionalOr conditionalAndExpression; -//conditional Operator (?) -conditionalExpression: - conditionalOrExpression - |conditionalOrExpression QuestionMark exp Colon conditionalOrExpression; +// //Bitwise and Logical Operators +// andExpression: +// equalityExpression +// |andExpression BitwiseAND andExpression; +// exclusiveOrExpression: +// andExpression +// |exclusiveOrExpression BitwiseXOR andExpression; +// inclusiveOrExpression: +// exclusiveOrExpression +// inclusiveOrExpression BitwiseOR exclusiveOrExpression; +// //Conditional And (&&) +// conditionalAndExpression: +// inclusiveOrExpression +// |conditionalAndExpression ConditionalAnd inclusiveOrExpression; +// //conditional Or (||) +// conditionalOrExpression: +// conditionalAndExpression +// |conditionalOrExpression ConditionalOr conditionalAndExpression; +// //conditional Operator (?) +// conditionalExpression: +// conditionalOrExpression +// |conditionalOrExpression QuestionMark exp Colon conditionalOrExpression; -//Assignment operators -assignmentExpression: - conditionalExpression - |assignment; -assignment: - leftHandSide assignmentOperator assignmentExpression; -leftHandSide: - expressionName; - |fieldAccess - |arrayAccess; -assignmentOperator: - Assignment | MultiplyAssign | DivideAssign | RemainderAssign | AddAssign | SubtractAssign | LeftShiftAssign - | SighnedRightShiftAssign | BitwiseANDAssign | BitwiseXORAssign | BitwiseORAssign; +// //Assignment operators +// assignmentExpression: +// conditionalExpression +// |assignment; +// assignment: +// leftHandSide assignmentOperator assignmentExpression; +// leftHandSide: +// expressionName; +// |fieldAccess +// |arrayAccess; +// assignmentOperator: +// Assignment | MultiplyAssign | DivideAssign | RemainderAssign | AddAssign | SubtractAssign | LeftShiftAssign +// | SighnedRightShiftAssign | BitwiseANDAssign | BitwiseXORAssign | BitwiseORAssign; -//Determining Meaning of a Name (Section 6.5) -expressionName: - name; - |ambiguousName Dot name; +// //Determining Meaning of a Name (Section 6.5) +// expressionName: +// name; +// |ambiguousName Dot name;