diff --git a/src/main/antlr/Decaf.g4 b/src/main/antlr/Decaf.g4 index cf152d1..cb0babd 100644 --- a/src/main/antlr/Decaf.g4 +++ b/src/main/antlr/Decaf.g4 @@ -15,7 +15,7 @@ param : type id; block : '{' (var | stmt)* '}'; stmt : 'if' '(' expr ')' block ('else' block)? #If - | 'for' '(' expr? ';' expr? ';' expr? ')' block #For + | 'for' '(' expr ';' expr ';' expr ')' block #For | 'while' '(' expr ')' block #While | 'do' block 'while' '(' expr ')' #DoWhile | 'return' expr ';' #Return diff --git a/src/main/java/de/maishai/ast/records/For.java b/src/main/java/de/maishai/ast/records/For.java new file mode 100644 index 0000000..2440947 --- /dev/null +++ b/src/main/java/de/maishai/ast/records/For.java @@ -0,0 +1,8 @@ +package de.maishai.ast.records; + + +import de.maishai.ast.Expression; +import de.maishai.ast.Statement; + +public record For(Expression assign, Expression cond, Expression inc, Block block) implements Statement { +}