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 |