summary refs log tree commit diff
path: root/source/mod_student/parser.mly
diff options
context:
space:
mode:
Diffstat (limited to 'source/mod_student/parser.mly')
-rw-r--r--source/mod_student/parser.mly20
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