ValueList and some cleanup

This commit is contained in:
Markus Hauschild
2013-06-01 02:10:29 +02:00
parent d88b3b5ba0
commit c8a1119ea6
7 changed files with 67 additions and 21 deletions

View File

@@ -16,6 +16,7 @@
#include "AST/Statement.h"
#include "AST/StatementList.h"
#include "AST/Type.h"
#include "AST/ValueList.h"
#include "AST/VariableDefinition.h"
}
@@ -95,8 +96,8 @@ expr(A) ::= T_IDENTIFIER(ID) T_LPAREN values(V) T_RPAREN. { A = 0; /* ID V */
%type vardef {VariableDefinition*}
vardef(A) ::= type(T) T_IDENTIFIER(ID). { A = new VariableDefinition(T, ID->getText()); }
%type values {int}
values(A) ::= . { A = 0; }
values(A) ::= expr(E). { A = 1; /* E */ }
values(A) ::= values(B) T_COMMA expr(E). { A = B + 1; /* E */ }
%type values {ValueList*}
values(A) ::= . { A = new ValueList(); }
values(A) ::= expr(E). { A = new ValueList(); A->addValue(E); }
values(A) ::= values(B) T_COMMA expr(E). { B->addValue(E); A = B; }