Seprate syntactic grammar started

This commit is contained in:
Mandeep Moun
2025-09-25 23:06:20 -06:00
parent 184793f0e2
commit 107c519f02
6 changed files with 132 additions and 8 deletions

View File

@@ -216,7 +216,7 @@ RemainderAssign
LeftShiftAssign
SighnedRightShiftAssign
UnsighnedRightShiftAssign
Identifier
IDENTIFIER
rule names:
UnicodeInputCharacter
@@ -360,7 +360,7 @@ RemainderAssign
LeftShiftAssign
SighnedRightShiftAssign
UnsighnedRightShiftAssign
Identifier
IDENTIFIER
JavaLetter
JavaLetterOrDigit

View File

@@ -1,4 +1,4 @@
// Generated from /Users/mannpatel/Desktop/CPSC-499/ExprLexer.g4 by ANTLR 4.13.2
// Generated from C:/Users/mande/OneDrive - University of Calgary/Documents/GitHub/CPSC-499/ExprLexer.g4 by ANTLR 4.13.2
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
@@ -36,7 +36,7 @@ public class ExprLexer extends Lexer {
UnsignedRightShift=95, AddAssign=96, SubtractAssign=97, MultiplyAssign=98,
DivideAssign=99, BitwiseANDAssign=100, BitwiseORAssign=101, BitwiseXORAssign=102,
RemainderAssign=103, LeftShiftAssign=104, SighnedRightShiftAssign=105,
UnsighnedRightShiftAssign=106, Identifier=107;
UnsighnedRightShiftAssign=106, IDENTIFIER=107;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
@@ -73,7 +73,7 @@ public class ExprLexer extends Lexer {
"Remainder", "LeftShift", "SignedRightShift", "UnsignedRightShift", "AddAssign",
"SubtractAssign", "MultiplyAssign", "DivideAssign", "BitwiseANDAssign",
"BitwiseORAssign", "BitwiseXORAssign", "RemainderAssign", "LeftShiftAssign",
"SighnedRightShiftAssign", "UnsighnedRightShiftAssign", "Identifier",
"SighnedRightShiftAssign", "UnsighnedRightShiftAssign", "IDENTIFIER",
"JavaLetter", "JavaLetterOrDigit"
};
}
@@ -119,7 +119,7 @@ public class ExprLexer extends Lexer {
"SignedRightShift", "UnsignedRightShift", "AddAssign", "SubtractAssign",
"MultiplyAssign", "DivideAssign", "BitwiseANDAssign", "BitwiseORAssign",
"BitwiseXORAssign", "RemainderAssign", "LeftShiftAssign", "SighnedRightShiftAssign",
"UnsighnedRightShiftAssign", "Identifier"
"UnsighnedRightShiftAssign", "IDENTIFIER"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();

View File

@@ -104,7 +104,7 @@ RemainderAssign=103
LeftShiftAssign=104
SighnedRightShiftAssign=105
UnsighnedRightShiftAssign=106
Identifier=107
IDENTIFIER=107
'abstract'=6
'assert'=7
'boolean'=8

44
gen/syntactic.g4 Normal file
View File

@@ -0,0 +1,44 @@
parser grammar syntactic;
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];