Commit 32bcb20be766cec240fadf172191e69b92c25ac5

Authored by Salvador Abreu
1 parent 8515b5f5
Exists in master

constraints will be replaced by cg_coverage*/3

Showing 1 changed file with 14 additions and 4 deletions   Show diff stats
fz/paccs/output.pl
... ... @@ -17,10 +17,12 @@ cg_emit(PS, VS, CS, G, ST) -->
17 17  
18 18 % == DCGs for code generation =================================================
19 19  
  20 +
20 21 % -- predicates ---------------------------------------------------------------
21 22  
22 23 cg_preds(_PS, _ST) --> [].
23 24  
  25 +
24 26 % -- variables ----------------------------------------------------------------
25 27  
26 28 cg_vars(OP, [V|Vs], ST) --> cg_var(OP, V, ST), cg_vars(OP, Vs, ST).
... ... @@ -71,12 +73,19 @@ cg_constant_list([C|Cs], PFX) -->
71 73  
72 74 cg_constant(lit(N,int)) --> { format_to_codes(S, "~w", [N]) }, S.
73 75  
  76 +
74 77 % -- constraints --------------------------------------------------------------
75 78  
76   -cg_constrs([C|Cs], ST) --> cg_constr(C, ST), cg_constrs(Cs, ST).
77   -cg_constrs([], _) --> [].
  79 +cg_constrs([], _) --> {!}, [].
  80 +cg_constrs(CS, ST) --> cg_coverage(CS, CR, ST), cg_constrs(CR, ST).
  81 +
  82 +% ++ cg_coverage(CI, CO, ST) [DCG] - - - - - - - - - - - - - - - - - - - - - -
  83 +%
  84 +% emit an instruction which partly covers CI, leaving CO untreated
  85 +
  86 +cg_coverage([_C|CS], CS, _ST) --> []. % FIXME: temporary
78 87  
79   -cg_constr(_C, _ST) --> []. % FIXME: temporary
  88 +% cg_coverage(CI, CO, ST) --> [].
80 89  
81 90 % -- goal ---------------------------------------------------------------------
82 91  
... ... @@ -84,7 +93,8 @@ cg_goal(solve(satisfy,_), VS, ST) --> % FIXME: add minimize and maximize
84 93 "\n",
85 94 " if (fd_solve()) {\n",
86 95 cg_var_print(VS, ST, " "),
87   - " }\n".
  96 + " }\n",
  97 + " fd_end();\n".
88 98  
89 99 cg_var_print([], _, _) --> [].
90 100 cg_var_print([var(N,_,_,A)|Vs], ST, PFX) -->
... ...