diff options
Diffstat (limited to 'source/mod_student/parser.mly')
-rw-r--r-- | source/mod_student/parser.mly | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/source/mod_student/parser.mly b/source/mod_student/parser.mly index f516a9a..b039478 100644 --- a/source/mod_student/parser.mly +++ b/source/mod_student/parser.mly @@ -164,19 +164,26 @@ expression_highest_prec: | node=expression_call { node } | node=expression_length { node } expression_base: - | node=expression_integer { node } | node=expression_identifier { node } + | node=expression_integer { node } + | node=expression_char { node } | node=expression_string { node } | LPAREN node=expression RPAREN { node } (* TODO Add calls and arrays and other constants *) -expression_integer: - | value=INT { EXPR_Int {tag= mkTag ();loc=mkLocation $startpos; - value=Int32.of_int value} } expression_identifier: | id=identifier { EXPR_Id {tag= mkTag ();loc=mkLocation $startpos; id=id} } +expression_integer: + | value=INT { EXPR_Int {tag= mkTag ();loc=mkLocation $startpos; + value=Int32.of_int value} } +expression_char: + | value=CHAR { EXPR_Char {tag= mkTag ();loc=mkLocation $startpos; + value=value} } expression_string: - | value=str { EXPR_String {tag= mkTag ();loc=mkLocation $startpos; + | value=STRING { EXPR_String {tag= mkTag ();loc=mkLocation $startpos; + value=value} } +expression_bool: + | value=BOOL { EXPR_Bool {tag= mkTag ();loc=mkLocation $startpos; value=value} } expression_call: | value=call { EXPR_Call value } @@ -213,9 +220,6 @@ lvalue: identifier: | IDENTIFIER { Identifier $1 } -str: - | STRING - { $1 } (* ** przykład użycia mkLocation |