Commit 51e810c0697d51e20f48d239323c63580d4c2df0
1 parent
567a1567
Exists in
master
give usage example in README
sample output new in git
Showing
3 changed files
with
36 additions
and
5 deletions
Show diff stats
fz/README
1 | +Sample usage: | |
2 | + | |
3 | + ./fzp < examples/aust.fzn | ./fz-paccs load name type code halt | |
4 | + | |
5 | +Notes: | |
6 | + | |
1 | 7 | - AST nodes for fzn parser |
2 | 8 | |
3 | 9 | TYPE : VALUE |
4 | 10 | |
5 | 11 | - acceptable types: |
6 | 12 | |
7 | -- driver process fznslurp: | |
13 | +- driver process fz-BACK (BACK is back-end specific): | |
8 | 14 | |
9 | 15 | reads stdin (as produced by bison-generated parser), which results |
10 | 16 | in a Prolog term which is the AST. It then does semantic analysis | ... | ... |
... | ... | @@ -0,0 +1,25 @@ |
1 | +#include "paccs.h" | |
2 | + | |
3 | +main() | |
4 | +{ | |
5 | + int i, j; | |
6 | + fd_int t = fd_new(1, 3); | |
7 | + fd_int v = fd_new(1, 3); | |
8 | + fd_int nsw = fd_new(1, 3); | |
9 | + fd_int q = fd_new(1, 3); | |
10 | + fd_int sa = fd_new(1, 3); | |
11 | + fd_int nt = fd_new(1, 3); | |
12 | + fd_int wa = fd_new(1, 3); | |
13 | + int X_INTRODUCED_0[2] = { 1, -1 }; | |
14 | + | |
15 | + if (fd_solve()) { | |
16 | + fd_println(t); | |
17 | + fd_println(v); | |
18 | + fd_println(nsw); | |
19 | + fd_println(q); | |
20 | + fd_println(sa); | |
21 | + fd_println(nt); | |
22 | + fd_println(wa); | |
23 | + } | |
24 | +} | |
25 | + | ... | ... |
fz/paccs/output.pl
... | ... | @@ -11,7 +11,7 @@ cg_emit(PS, VS, CS, G, ST) --> |
11 | 11 | cg_preds(PS, ST), |
12 | 12 | cg_vars(decl, VS, ST), |
13 | 13 | cg_vars(init, VS, ST), |
14 | - %% cg_constrs(CS, ST), | |
14 | + cg_constrs(CS, ST), | |
15 | 15 | cg_goal(G, VS, ST), |
16 | 16 | cg_suffix. |
17 | 17 | |
... | ... | @@ -52,9 +52,9 @@ cg_var(init, var(N,array(T,ALB,AUB),[],_), _ST) --> !, |
52 | 52 | cg_var(decl, var(N,array(_T,LB,UB),lit(INIT,array(_)),_), _ST) --> |
53 | 53 | { nonvar(INIT), INIT=[_|_] }, !, |
54 | 54 | { SZ is UB-LB+1, |
55 | - format_to_codes(S, " int ~w[~d] = {\n", [N, SZ]) }, | |
55 | + format_to_codes(S, " int ~w[~d] = {", [N, SZ]) }, | |
56 | 56 | S, |
57 | - cg_constant_list(INIT, " "), | |
57 | + cg_constant_list(INIT, " "), | |
58 | 58 | " };\n". |
59 | 59 | |
60 | 60 | cg_var(init, var(_N,array(_T,_LB,_UB),lit(INIT,array(_)),_), _ST) --> |
... | ... | @@ -80,7 +80,7 @@ cg_constr(_C, _ST) --> []. % FIXME: temporary |
80 | 80 | |
81 | 81 | % -- goal --------------------------------------------------------------------- |
82 | 82 | |
83 | -cg_goal(solve(satisfy,_), VS, ST) --> | |
83 | +cg_goal(solve(satisfy,_), VS, ST) --> % FIXME: add minimize and maximize | |
84 | 84 | "\n", |
85 | 85 | " if (fd_solve()) {\n", |
86 | 86 | cg_var_print(VS, ST, " "), | ... | ... |