Commit f7de4bd3c70b39bf410402e8e6feac74805865f4
1 parent
e2445a00
Exists in
master
var decl fix
Showing
2 changed files
with
5 additions
and
14 deletions
Show diff stats
fzn-parser/examples/a.ast
... | ... | @@ -17,7 +17,7 @@ _T > [_:id('output_var')|_T]. |
17 | 17 | _T > [[]|_T]. |
18 | 18 | [H,T|_T] > [[H|T]|_T]. |
19 | 19 | _T > [[]|_T]. |
20 | -[VAL,AN,T|_T] > [var(T, VAL, AN)|_T]. | |
20 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | |
21 | 21 | [H,T|_T] > [[H|T]|_T]. |
22 | 22 | _T > [int(1,3)|_T]. |
23 | 23 | _T > ['nt'|_T]. |
... | ... | @@ -25,7 +25,7 @@ _T > [_:id('output_var')|_T]. |
25 | 25 | _T > [[]|_T]. |
26 | 26 | [H,T|_T] > [[H|T]|_T]. |
27 | 27 | _T > [[]|_T]. |
28 | -[VAL,AN,T|_T] > [var(T, VAL, AN)|_T]. | |
28 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | |
29 | 29 | [H,T|_T] > [[H|T]|_T]. |
30 | 30 | [X|_T] > [vars(X)|_T]. |
31 | 31 | _T > [[]|_T]. | ... | ... |
fzn-parser/flatzinc.y
... | ... | @@ -51,18 +51,9 @@ |
51 | 51 | // pop an item and a list, push new list (CONS) |
52 | 52 | #define CONS() AST ("H,T", ("[H|T]")) |
53 | 53 | |
54 | - // pop one thing, push it as a 1-element list | |
55 | -#define TAIL() AST ("T", ("[T]")) | |
56 | - | |
57 | 54 | // push the empty list |
58 | 55 | #define NIL() PUSH (("[]")) |
59 | 56 | |
60 | - // pop one thing, push an open-ended list headed with that thing | |
61 | -#define TAIL_OPEN() AST ("T", ("[T|_]")) | |
62 | - | |
63 | - // push an unbound variable | |
64 | -#define NIL_OPEN() PUSH (("_")) | |
65 | - | |
66 | 57 | #define BINARY(op) AST ("B,A", ("op(A,B)")) |
67 | 58 | #define UNARY(op) AST ("X", ("op(X)")) |
68 | 59 | |
... | ... | @@ -117,11 +108,11 @@ model_end : solve_item ';' |
117 | 108 | pred_decl_item: |
118 | 109 | PREDICATE IDENT '(' pred_decl_args ')' |
119 | 110 | |
120 | -var_decl_item: | |
111 | +var_decl_item: /* -> [ var(ID,TYPE,INIT,ANNOT) | _ ] */ | |
121 | 112 | VAR non_array_ti_expr_tail ':' ident_anns var_decl_item2 |
122 | - { AST ("VAL,AN,T", ("var(T, VAL, AN)")); } | |
113 | + { AST ("VAL,AN,ID,T", ("var(ID, T, VAL, AN)")); } | |
123 | 114 | | non_array_ti_expr_tail ':' ident_anns '=' expr |
124 | - { AST ("VAL,AN,T", ("var(T, VAL, AN)")); } | |
115 | + { AST ("VAL,AN,ID,T", ("var(ID, T, VAL, AN)")); } | |
125 | 116 | | ARRAY '[' INT_LITERAL DOTDOT INT_LITERAL ']' OF array_decl_tail |
126 | 117 | { AST ("VAL,AN,T", ("var(array(T,%d,%d), VAL, AN)", $3, $5)); } |
127 | 118 | ... | ... |