From 184793f0e2cb2ddb457882624a41e326fa8a5f7c Mon Sep 17 00:00:00 2001 From: Mandeep Moun <103162424+zectsu@users.noreply.github.com> Date: Thu, 25 Sep 2025 21:49:56 -0600 Subject: [PATCH] Create ExprSyntactic.g4 --- ExprSyntactic.g4 | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 ExprSyntactic.g4 diff --git a/ExprSyntactic.g4 b/ExprSyntactic.g4 new file mode 100644 index 0000000..a70aa45 --- /dev/null +++ b/ExprSyntactic.g4 @@ -0,0 +1,44 @@ +parser grammar ExprSyntactic; + +options { + tokenVocab=ExprLexer; +} + +identifier: IDENTIFIER; + +qualifiedIdentifier: identifier {'.' identifier}; + +literal: IntegerLiteral + | FloatingPointLiteral + | CharacterLiteral + | StringLiteral + | BooleanLiteral + | NullLiteral; + +expression: expression1 [assignmentOperator expression1]; + +assignmentOperator: Assignment + | AddAssign + | SubtractAssign + | MultiplyAssign + | DivideAssign + | BitwiseANDAssign + | BitwiseORAssign + | BitwiseXORAssign + | RemainderAssign + | LeftShiftAssign + | SighnedRightShiftAssign + | UnsighnedRightShiftAssign; + +type: identifier {'.' identifier} bracketsOpt + | basicType; + +statementExpression: expression; + +constantExpression: expression; + +expression1: expression2 [expression1Rest]; + +expression1Rest: ['?' expression ':' expression1]; + +expression2: expression3 [expression2Rest];