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 | 204 | | FLOAT_LITERAL DOTDOT FLOAT_LITERAL { PUSH (("float(%g,%g)", $1, $3)); } |
| 205 | 205 | |
| 206 | 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 | 210 | // Expressions |
| ... | ... | @@ -222,8 +222,8 @@ expr: |
| 222 | 222 | | set_literal |
| 223 | 223 | | array_literal |
| 224 | 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 | 227 | | IDENT '(' exprs ')' /* An annotation value with > 0 arguments. */ |
| 228 | 228 | |
| 229 | 229 | bool_literal: |
| ... | ... | @@ -242,11 +242,15 @@ set_literal: |
| 242 | 242 | POST(); } |
| 243 | 243 | |
| 244 | 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 | 248 | array_access_expr: IDENT '[' INT_LITERAL ']' |
| 249 | + { AST ("int:EI,array(T):ID", | |
| 250 | + ("T:aref(array(T):ID,int:EI)")); } | |
| 249 | 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 | 256 | // Annotations | ... | ... |