Commit 420a353a4e98f1ee1fda0064cbd2d4435f5689d9

Authored by Salvador Abreu
1 parent 2bac8a70
Exists in master

continue AST build

Showing 1 changed file with 9 additions and 5 deletions   Show diff stats
fzn-parser/flatzinc.y
@@ -204,7 +204,7 @@ float_ti_expr_tail: @@ -204,7 +204,7 @@ float_ti_expr_tail:
204 | FLOAT_LITERAL DOTDOT FLOAT_LITERAL { PUSH (("float(%g,%g)", $1, $3)); } 204 | FLOAT_LITERAL DOTDOT FLOAT_LITERAL { PUSH (("float(%g,%g)", $1, $3)); }
205 205
206 set_ti_expr_tail: 206 set_ti_expr_tail:
207 - SET OF int_ti_expr_tail 207 + SET OF int_ti_expr_tail { AST ("T", ("set(T)")); }
208 208
209 //--------------------------------------------------------------------------- 209 //---------------------------------------------------------------------------
210 // Expressions 210 // Expressions
@@ -222,8 +222,8 @@ expr: @@ -222,8 +222,8 @@ expr:
222 | set_literal 222 | set_literal
223 | array_literal 223 | array_literal
224 | array_access_expr 224 | array_access_expr
225 - | IDENT { PUSH (("_:id(\"%s\")", $1)); }  
226 - | UNDERSCORE_IDENT { PUSH (("_:uid(\"%s\")", $1)); } 225 + | IDENT { PUSH (("_:id('%s')", $1)); }
  226 + | UNDERSCORE_IDENT { PUSH (("_:uid('%s')", $1)); }
227 | IDENT '(' exprs ')' /* An annotation value with > 0 arguments. */ 227 | IDENT '(' exprs ')' /* An annotation value with > 0 arguments. */
228 228
229 bool_literal: 229 bool_literal:
@@ -242,11 +242,15 @@ set_literal: @@ -242,11 +242,15 @@ set_literal:
242 POST(); } 242 POST(); }
243 243
244 array_literal: 244 array_literal:
245 - '[' exprs ']' { AST ("Es", ("alit(Es)")); }  
246 - | '[' ']' { PUSH (("alit([])")); } 245 + '[' exprs ']' { AST ("Es", ("array(_):alit(Es)")); }
  246 + | '[' ']' { PUSH (("array(_):alit([])")); }
247 247
248 array_access_expr: IDENT '[' INT_LITERAL ']' 248 array_access_expr: IDENT '[' INT_LITERAL ']'
  249 + { AST ("int:EI,array(T):ID",
  250 + ("T:aref(array(T):ID,int:EI)")); }
249 | UNDERSCORE_IDENT '[' INT_LITERAL ']' 251 | UNDERSCORE_IDENT '[' INT_LITERAL ']'
  252 + { AST ("int:EI,array(T):ID",
  253 + ("T:aref(array(T):ID,int:EI)")); }
250 254
251 //--------------------------------------------------------------------------- 255 //---------------------------------------------------------------------------
252 // Annotations 256 // Annotations