Skip to content

Commit

Permalink
Node and rule for "if" statement
Browse files Browse the repository at this point in the history
  • Loading branch information
kniazkov committed Dec 4, 2023
1 parent 5ee2fa5 commit 5be97b1
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/main/dsl/rules.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ PrimitiveType <- $String$, $#$, $#$;
Program <- {ProgramItem};
ProgramItem <- ClassDeclaration | Statement | ClassItem;

Expression <- BinaryExpression | IntegerLiteral | This | StringLiteral | Identifier | NullLiteral |
FunctionCall | UnaryExpression | BitwiseExpression | LogicalExpression | AssignableExpression | Assignment |
ParenthesizedExpression | ObjectCreationExpression | ArrayInitializer;
Expression <- BinaryExpression | IntegerLiteral | This | StringLiteral | Identifier | NullLiteral
| FunctionCall | UnaryExpression | BitwiseExpression | LogicalExpression | AssignableExpression | Assignment
| ParenthesizedExpression | ObjectCreationExpression | ArrayInitializer;
ArithmeticExpression <- Addition | Subtraction | Multiplication | Division | Modulus;
BinaryExpression <- ArithmeticExpression | RelationalExpression;
RelationalExpression <- IsEqualTo | NotEqualTo | GreaterThan | LessThan | GreaterThanOrEqualTo | LessThanOrEqualTo;
Statement <- Return | StatementBlock | VariableDeclaration | ExpressionStatement;
Statement <- Return | StatementBlock | VariableDeclaration | ExpressionStatement | IfElse;
TypeName <- ArrayType | PrimitiveType | ClassType | VoidType;
UnaryExpression <- PreIncrement | PreDecrement | PostIncrement | PostDecrement | Positive | Negative;
BitwiseExpression <- BitwiseComplement | LeftShift | RightShift | UnsignedRightShift | BitwiseAnd | BitwiseOr | ExclusiveOr;
LogicalExpression <- LogicalAnd | LogicalOr | LogicalNot;
Assignment <- SimpleAssignment | AdditionAssignment | SubtractionAssignment | MultiplicationAssignment | DivisionAssignment
| ModulusAssignment | BitwiseAndAssignment | BitwiseOrAssignment | ExclusiveOrAssignment
Assignment <- SimpleAssignment | AdditionAssignment | SubtractionAssignment | MultiplicationAssignment
| DivisionAssignment | ModulusAssignment | BitwiseAndAssignment | BitwiseOrAssignment | ExclusiveOrAssignment
| RightShiftAssignment | UnsignedRightShiftAssignment | LeftShiftAssignment;
AssignableExpression <- Variable | PropertyAccess;

Expand Down Expand Up @@ -76,6 +76,7 @@ ArrayType <- base@TypeName, dimensions@DimensionList;
DimensionList <- {Dimension};
Dimension <- [expression@Expression];
Return <- [expression@Expression];
IfElse <- condition@Expression, ifbranch@Statement, [elsebranch@Statement];
Name <- [composition@Name], last@Identifier;
Variable <- Name;
StatementBlock <- {Statement};
Expand Down Expand Up @@ -272,6 +273,7 @@ Parameter(Modifier#1, #2, #3) -> Parameter(ModifierBlock(#1), #2, #3);
VoidType -> VoidType;
Modifier<#1> -> Modifier<#1>;
NullLiteralExpr -> NullLiteral;
IfStmt(#1, #2) -> IfElse(#1, #2);

// Arrays

Expand Down

0 comments on commit 5be97b1

Please sign in to comment.