Merge branch 'main' of github.com:Patel-Mann/CPSC-499
This commit is contained in:
@@ -238,7 +238,7 @@ UnsighnedRightShiftAssign: '>>>=';
|
||||
|
||||
|
||||
//IDENTIFIERS -------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Identifier: JavaLetter JavaLetterOrDigit;
|
||||
IDENTIFIER: JavaLetter JavaLetterOrDigit;
|
||||
|
||||
fragment JavaLetter:
|
||||
[a-zA-Z_$];
|
||||
|
||||
124
ExprSyntactic.g4
Normal file
124
ExprSyntactic.g4
Normal file
@@ -0,0 +1,124 @@
|
||||
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];
|
||||
|
||||
expression2Rest: {infixop expression3}
|
||||
| expression3 INSTANCEOF type;
|
||||
|
||||
infixop: ConditionalOR
|
||||
| ConditionalAND
|
||||
| BitwiseOR
|
||||
| BitwiseXOR
|
||||
| BitwiseAND
|
||||
| EqualTO
|
||||
| NotEqualTO
|
||||
| LessThan
|
||||
| GreterThan
|
||||
| LessThanEqualTo
|
||||
| GreaterThanEqualTo
|
||||
| LeftShift
|
||||
| SignedRightShift
|
||||
| UnsignedRightShift
|
||||
| Addition
|
||||
| Subtraction
|
||||
| Multiplication
|
||||
| Division
|
||||
| Remainder;
|
||||
|
||||
expression3: prefixOp expression3 // Recursion
|
||||
| (expr | type) expression3
|
||||
| primary {selector} {postfixOP};
|
||||
|
||||
primary: (expression)
|
||||
| This [arguments]
|
||||
| Super superSuffix
|
||||
| literal
|
||||
| New creator
|
||||
| identifier {'.' identifier} [identifierSuffix]
|
||||
| basicType bracketsOpt '.'Class
|
||||
| Void '.' Class;
|
||||
|
||||
identifierSuffix: '['(']' bracketsOpt '.' Class '/' expression ']')
|
||||
| arguments
|
||||
|'.' '(' Class '/' This '/' Super arguments '/' New innerCreator ')';
|
||||
// confused about this need to ask prof
|
||||
|
||||
prefixOp: Increment
|
||||
| Decrement
|
||||
| LogicalComplement
|
||||
| BitWiseComplement
|
||||
| Addition
|
||||
| Subtraction;
|
||||
|
||||
postfixOp: Increment | Decrement;
|
||||
|
||||
selector: '.' identifier [arguments]
|
||||
| '.' This
|
||||
| '.' Super superSuffix
|
||||
| '.' New innerCreator
|
||||
| [expression];
|
||||
|
||||
superSuffix: arguments
|
||||
| '.' identifier [arguments];
|
||||
|
||||
basicType: Byte
|
||||
| Short
|
||||
| Char
|
||||
| Int
|
||||
| Long
|
||||
| Float
|
||||
| Double
|
||||
| Boolean;
|
||||
|
||||
argumentsOpt: [arguments];
|
||||
|
||||
arguments: '(' [expression {',' expression}] ')';
|
||||
|
||||
bracketsOpt: {'[' ']'}; //ask prof.
|
||||
|
||||
creator: qualifiedIdentifier ( arrayCreatorRest | classCreatorRest);
|
||||
|
||||
innerCreator: identifier classCreatorRest;
|
||||
|
||||
arrayCreatorRest: '[' ( ']' bracketsOpt arrayInitializer | expression ']' {[expression]};
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
44
gen/syntactic.g4
Normal 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];
|
||||
Reference in New Issue
Block a user