Commit 2721cfeaea2bdcf41b056351d38063cc760d9966
1 parent
26ed8fd4
Exists in
master
constraints now produce some output
Showing
2 changed files
with
9 additions
and
53 deletions
Show diff stats
fz/paccs/output.pl
@@ -29,19 +29,21 @@ cg_vars(OP, [V|Vs], ST) --> cg_var(OP, V, ST), cg_vars(OP, Vs, ST). | @@ -29,19 +29,21 @@ cg_vars(OP, [V|Vs], ST) --> cg_var(OP, V, ST), cg_vars(OP, Vs, ST). | ||
29 | cg_vars(_OP, [], _) --> []. | 29 | cg_vars(_OP, [], _) --> []. |
30 | 30 | ||
31 | cg_var(OP, var(N,int,I,A), ST) --> | 31 | cg_var(OP, var(N,int,I,A), ST) --> |
32 | + { ! }, | ||
32 | cg_var(OP, var(N,int(1,999),I,A), ST). % FIXME | 33 | cg_var(OP, var(N,int(1,999),I,A), ST). % FIXME |
33 | 34 | ||
35 | + | ||
34 | cg_var(decl, var(N,int(LB,UB),_I,_A), _ST) --> | 36 | cg_var(decl, var(N,int(LB,UB),_I,_A), _ST) --> |
35 | { format_to_codes(S, " fd_int ~w = fd_new(~d, ~d);\n", [N, LB, UB]) }, | 37 | { format_to_codes(S, " fd_int ~w = fd_new(~d, ~d);\n", [N, LB, UB]) }, |
36 | S. | 38 | S. |
37 | 39 | ||
38 | -cg_var(init, var(_,int(_,_),_,_), _) --> []. | 40 | +cg_var(init, var(_,int(_,_),_,_), _ST) --> []. |
39 | 41 | ||
40 | cg_var(decl, val(N,int,lit(INIT,_),_), _) --> | 42 | cg_var(decl, val(N,int,lit(INIT,_),_), _) --> |
41 | { format_to_codes(S, " const int ~w = ~w;\n", [N, INIT]) }, | 43 | { format_to_codes(S, " const int ~w = ~w;\n", [N, INIT]) }, |
42 | S. | 44 | S. |
43 | 45 | ||
44 | -cg_var(init, val(_,int,_,_), _) --> []. | 46 | +cg_var(init, val(_,int,_,_), _ST) --> []. |
45 | 47 | ||
46 | % -- array of variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 48 | % -- array of variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
47 | 49 | ||
@@ -88,10 +90,13 @@ cg_constrs(CS, ST) --> cg_coverage(CS, CR, ST), cg_constrs(CR, ST). | @@ -88,10 +90,13 @@ cg_constrs(CS, ST) --> cg_coverage(CS, CR, ST), cg_constrs(CR, ST). | ||
88 | % ++ cg_coverage(CI, CO, ST) [DCG] - - - - - - - - - - - - - - - - - - - - - - | 90 | % ++ cg_coverage(CI, CO, ST) [DCG] - - - - - - - - - - - - - - - - - - - - - - |
89 | % | 91 | % |
90 | % emit an instruction which partly covers CI, leaving CO untreated | 92 | % emit an instruction which partly covers CI, leaving CO untreated |
93 | +% FIXME: for now this just puts out comments | ||
91 | 94 | ||
92 | -cg_coverage([_C|CS], CS, _ST) --> []. % FIXME: temporary | 95 | +cg_coverage([], [], _ST) --> []. |
96 | +cg_coverage([C|CS], [C|CX], ST) --> | ||
97 | + { format_to_codes(S, "// ~w\n", [C]) }, S, | ||
98 | + cg_coverage(CS, CX, ST). | ||
93 | 99 | ||
94 | -% cg_coverage(CI, CO, ST) --> []. | ||
95 | 100 | ||
96 | % -- goal --------------------------------------------------------------------- | 101 | % -- goal --------------------------------------------------------------------- |
97 | 102 |
fz/typescript
@@ -1,49 +0,0 @@ | @@ -1,49 +0,0 @@ | ||
1 | -Script started on Tue 23 Jun 2015 10:50:19 AM JST | ||
2 | -spa@khawasaki:~/work/src/paccs/fzn-parser$ ./ , ./fznslurp examples/a.fzn > examples/ /a.ast | ||
3 | -| ?- | ||
4 | -spa@khawasaki:~/work/src/paccs/fzn-parser$ ./fznslurp examples/a.fzn > examples/ /a.ast [Awasaki:~/work/src/paccs/fzn-parser$ ./fznslurp[1P examples/a.fzn > examples/a.ast | ||
5 | - [K[Aspa@khawasaki:~/work/src/paccs/fzn-parser$ ./ | ||
6 | -examples/ fznslurp fzp | ||
7 | -spa@khawasaki:~/work/src/paccs/fzn-parser$ ./ examples/a.fzn > examples/a.ast f examples/a.fzn > examples/a.ast [Apa@khawasaki:~/work/src/paccs/fzn-parser$ ./fz examples/a.fzn > examples/a.ast [Apa@khawasaki:~/work/src/paccs/fzn-parser$ ./fzp examples/a.fzn > examples/a.ast [Aa@khawasaki:~/work/src/paccs/fzn-parser$ ./fzp | ||
8 | - | ||
9 | -spa@khawasaki:~/work/src/paccs/fzn-parser$ ./fznslurp | ||
10 | -GNU Prolog 1.3.0 | ||
11 | -By Daniel Diaz | ||
12 | -Copyright (C) 1999-2007 Daniel Diaz | ||
13 | -| ?- slurp(e 'examples/a.f ast'< , X)('examples/a.ast', X). | ||
14 | - | ||
15 | -X = [satisfy,[],constrs([constraint(int_lin_ne,(_,array(_),int):(id('X_INTRODUCED_0'),alit((_,_):(id(wa),id(nt))),lit(0)),[])]),vars([var(nt,int(1,3),[],[_:id(output_var)]),var(wa,int(1,3),[],[_:id(output_var)]),var('X_INTRODUCED_0',array(int,1,2),array(_):alit((int,int):(lit(1),lit(-1))),[])]),preds([])] | ||
16 | - | ||
17 | -yes | ||
18 | -| ?- slurp('examples/a.ast', X)._X).X). , member(Y X, _X)(X, _X). | ||
19 | - | ||
20 | -X = satisfy ? ; | ||
21 | - | ||
22 | -X = [] ? ; | ||
23 | - | ||
24 | -X = constrs([constraint(int_lin_ne,(_,array(_),int):(id('X_INTRODUCED_0'),alit((_,_):(id(wa),id(nt))),lit(0)),[])]) ? ; | ||
25 | - | ||
26 | -X = vars([var(nt,int(1,3),[],[_:id(output_var)]),var(wa,int(1,3),[],[_:id(output_var)]),var('X_INTRODUCED_0',array(int,1,2),array(_):alit((int,int):(lit(1),lit(-1))),[])]) ? ; | ||
27 | - | ||
28 | -X = preds([]) ? ; | ||
29 | - | ||
30 | -no | ||
31 | -| ?- slurp('examples/a.ast', _X), member(X, _X).X, _X). _, _X)., _X). v, _X).a, _X).r, _X).s, _X).(, _X)._, _X).Y, _X).), _X).(_Y), _X). , member(_ Y, _Y)(Y, _Y). | ||
32 | - | ||
33 | -Y = var(nt,int(1,3),[],[_:id(output_var)]) ? ; | ||
34 | - | ||
35 | -Y = var(wa,int(1,3),[],[_:id(output_var)]) ? ; | ||
36 | - | ||
37 | -Y = var('X_INTRODUCED_0',array(int,1,2),array(_):alit((int,int):(lit(1),lit(-1))),[]) ? ; | ||
38 | - | ||
39 | -no | ||
40 | -| ?- slurp('examples/a.ast', _X), member(vars(_Y), _X), member(Y, _Y).(_Y), _X), member(Y, _Y). (_Y), _X), member(Y, _Y). (_Y), _X), member(Y, _Y). (_Y), _X), member(Y, _Y). c(_Y), _X), member(Y, _Y).o(_Y), _X), member(Y, _Y).n(_Y), _X), member(Y, _Y).s(_Y), _X), member(Y, _Y).t(_Y), _X), member(Y, _Y).r(_Y), _X), member(Y, _Y).e(_Y), _X), member(Y, _Y).(_Y), _X), member(Y, _Y). s(_Y), _X), member(Y, _Y).(_Y), _X), member(Y, _Y). | ||
41 | - | ||
42 | -Y = constraint(int_lin_ne,(_,array(_),int):(id('X_INTRODUCED_0'),alit((_,_):(id(wa),id(nt))),lit(0)),[]) ? ; | ||
43 | - | ||
44 | -no | ||
45 | -| ?- | ||
46 | - | ||
47 | -spa@khawasaki:~/work/src/paccs/fzn-parser$ exit | ||
48 | - | ||
49 | -Script done on Tue 23 Jun 2015 10:52:37 AM JST |