Commit 420a353a4e98f1ee1fda0064cbd2d4435f5689d9
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 |