dep-selector-libgecode 1.0.0.alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (806) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +20 -0
  7. data/dep-selector-libgecode.gemspec +25 -0
  8. data/ext/libgecode3/Makefile +8 -0
  9. data/ext/libgecode3/extconf.rb +57 -0
  10. data/ext/libgecode3/vendor/gecode-3.7.3/LICENSE +25 -0
  11. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.contribs +88 -0
  12. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.dep +11307 -0
  13. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.in +1795 -0
  14. data/ext/libgecode3/vendor/gecode-3.7.3/changelog.in +6132 -0
  15. data/ext/libgecode3/vendor/gecode-3.7.3/configure +13054 -0
  16. data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac +356 -0
  17. data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac.in +352 -0
  18. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/README +26 -0
  19. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/AbstractWorker.hh +42 -0
  20. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Doxyfile +263 -0
  21. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Makefile.in.in +162 -0
  22. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.cc +82 -0
  23. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.hh +124 -0
  24. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.cc +306 -0
  25. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.hh +166 -0
  26. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.cc +239 -0
  27. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.hh +140 -0
  28. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/README +6 -0
  29. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.cc +253 -0
  30. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.hh +112 -0
  31. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.cc +59 -0
  32. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.hh +49 -0
  33. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableBranching.hh +34 -0
  34. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.cc +61 -0
  35. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.hh +45 -0
  36. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.cc +48 -0
  37. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.hh +64 -0
  38. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkComparators.hh +67 -0
  39. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.cc +376 -0
  40. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.hh +96 -0
  41. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.cc +285 -0
  42. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.hh +70 -0
  43. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/clean +5 -0
  44. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure +2637 -0
  45. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure.ac +44 -0
  46. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myDom.cc +59 -0
  47. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.cc +119 -0
  48. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.hh +79 -0
  49. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qecode.hh +56 -0
  50. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.cc +41 -0
  51. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.hh +43 -0
  52. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.cc +268 -0
  53. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.hh +56 -0
  54. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.cc +163 -0
  55. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.hh +63 -0
  56. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.cc +423 -0
  57. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.hh +84 -0
  58. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/shortdesc.ac +1 -0
  59. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/vartype.hh +31 -0
  60. data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.conf.in +1245 -0
  61. data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.hh.in +594 -0
  62. data/ext/libgecode3/vendor/gecode-3.7.3/examples/all-interval.cpp +136 -0
  63. data/ext/libgecode3/vendor/gecode-3.7.3/examples/alpha.cpp +151 -0
  64. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bacp.cpp +596 -0
  65. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bibd.cpp +182 -0
  66. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bin-packing.cpp +25363 -0
  67. data/ext/libgecode3/vendor/gecode-3.7.3/examples/black-hole.cpp +413 -0
  68. data/ext/libgecode3/vendor/gecode-3.7.3/examples/car-sequencing.cpp +653 -0
  69. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crew.cpp +269 -0
  70. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crossword.cpp +3954 -0
  71. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crowded-chess.cpp +424 -0
  72. data/ext/libgecode3/vendor/gecode-3.7.3/examples/dominating-queens.cpp +170 -0
  73. data/ext/libgecode3/vendor/gecode-3.7.3/examples/domino.cpp +346 -0
  74. data/ext/libgecode3/vendor/gecode-3.7.3/examples/donald.cpp +135 -0
  75. data/ext/libgecode3/vendor/gecode-3.7.3/examples/efpa.cpp +323 -0
  76. data/ext/libgecode3/vendor/gecode-3.7.3/examples/eq20.cpp +128 -0
  77. data/ext/libgecode3/vendor/gecode-3.7.3/examples/golf.cpp +190 -0
  78. data/ext/libgecode3/vendor/gecode-3.7.3/examples/golomb-ruler.cpp +157 -0
  79. data/ext/libgecode3/vendor/gecode-3.7.3/examples/graph-color.cpp +425 -0
  80. data/ext/libgecode3/vendor/gecode-3.7.3/examples/grocery.cpp +116 -0
  81. data/ext/libgecode3/vendor/gecode-3.7.3/examples/hamming.cpp +144 -0
  82. data/ext/libgecode3/vendor/gecode-3.7.3/examples/ind-set.cpp +144 -0
  83. data/ext/libgecode3/vendor/gecode-3.7.3/examples/kakuro.cpp +627 -0
  84. data/ext/libgecode3/vendor/gecode-3.7.3/examples/knights.cpp +430 -0
  85. data/ext/libgecode3/vendor/gecode-3.7.3/examples/langford-number.cpp +218 -0
  86. data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-sequence.cpp +133 -0
  87. data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-square.cpp +141 -0
  88. data/ext/libgecode3/vendor/gecode-3.7.3/examples/minesweeper.cpp +311 -0
  89. data/ext/libgecode3/vendor/gecode-3.7.3/examples/money.cpp +132 -0
  90. data/ext/libgecode3/vendor/gecode-3.7.3/examples/nonogram.cpp +1215 -0
  91. data/ext/libgecode3/vendor/gecode-3.7.3/examples/open-shop.cpp +412 -0
  92. data/ext/libgecode3/vendor/gecode-3.7.3/examples/ortho-latin.cpp +183 -0
  93. data/ext/libgecode3/vendor/gecode-3.7.3/examples/partition.cpp +145 -0
  94. data/ext/libgecode3/vendor/gecode-3.7.3/examples/pentominoes.cpp +952 -0
  95. data/ext/libgecode3/vendor/gecode-3.7.3/examples/perfect-square.cpp +317 -0
  96. data/ext/libgecode3/vendor/gecode-3.7.3/examples/photo.cpp +166 -0
  97. data/ext/libgecode3/vendor/gecode-3.7.3/examples/queen-armies.cpp +335 -0
  98. data/ext/libgecode3/vendor/gecode-3.7.3/examples/queens.cpp +214 -0
  99. data/ext/libgecode3/vendor/gecode-3.7.3/examples/radiotherapy.cpp +943 -0
  100. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sat.cpp +260 -0
  101. data/ext/libgecode3/vendor/gecode-3.7.3/examples/schurs-lemma.cpp +142 -0
  102. data/ext/libgecode3/vendor/gecode-3.7.3/examples/scowl.hpp +14149 -0
  103. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sports-league.cpp +353 -0
  104. data/ext/libgecode3/vendor/gecode-3.7.3/examples/steel-mill.cpp +654 -0
  105. data/ext/libgecode3/vendor/gecode-3.7.3/examples/steiner.cpp +170 -0
  106. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sudoku.cpp +2294 -0
  107. data/ext/libgecode3/vendor/gecode-3.7.3/examples/tsp.cpp +339 -0
  108. data/ext/libgecode3/vendor/gecode-3.7.3/examples/warehouses.cpp +185 -0
  109. data/ext/libgecode3/vendor/gecode-3.7.3/examples/word-square.cpp +168 -0
  110. data/ext/libgecode3/vendor/gecode-3.7.3/gecode.m4 +1272 -0
  111. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver.hh +602 -0
  112. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.cpp +435 -0
  113. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.hpp +418 -0
  114. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.cpp +104 -0
  115. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.hpp +388 -0
  116. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc.hh +417 -0
  117. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/CHANGES +63 -0
  118. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/ast.hh +492 -0
  119. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/conexpr.hh +82 -0
  120. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.cpp +49 -0
  121. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.hh +47 -0
  122. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.pro +51 -0
  123. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/test_myplugin.fzn +1 -0
  124. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/flatzinc.cpp +1056 -0
  125. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.lxx +137 -0
  126. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.yy.cpp +2458 -0
  127. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_different_int.mzn +37 -0
  128. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_equal_int.mzn +37 -0
  129. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/among.mzn +37 -0
  130. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_int.mzn +37 -0
  131. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_set.mzn +38 -0
  132. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_int.mzn +37 -0
  133. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_set.mzn +38 -0
  134. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing.mzn +44 -0
  135. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_capa.mzn +45 -0
  136. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_load.mzn +45 -0
  137. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/circuit.mzn +40 -0
  138. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/count.mzn +37 -0
  139. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/cumulative.mzn +53 -0
  140. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_bool.mzn +37 -0
  141. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_int.mzn +37 -0
  142. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/diffn.mzn +44 -0
  143. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/disjoint.mzn +37 -0
  144. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/distribute.mzn +46 -0
  145. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_int.mzn +40 -0
  146. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_set.mzn +38 -0
  147. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/gecode.mzn +98 -0
  148. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality.mzn +43 -0
  149. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_closed.mzn +39 -0
  150. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up.mzn +40 -0
  151. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up_closed.mzn +40 -0
  152. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_bool.mzn +37 -0
  153. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_int.mzn +37 -0
  154. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/int_set_channel.mzn +49 -0
  155. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/inverse.mzn +42 -0
  156. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_less_int.mzn +42 -0
  157. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_lesseq_int.mzn +42 -0
  158. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/link_set_to_booleans.mzn +47 -0
  159. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/maximum_int.mzn +37 -0
  160. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_bool.mzn +41 -0
  161. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_int.mzn +41 -0
  162. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/minimum_int.mzn +37 -0
  163. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/nvalue.mzn +37 -0
  164. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/partition_set.mzn +42 -0
  165. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/precedence.mzn +41 -0
  166. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/range.mzn +51 -0
  167. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/redefinitions.mzn +62 -0
  168. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/regular.mzn +38 -0
  169. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/roots.mzn +63 -0
  170. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sort.mzn +37 -0
  171. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sum_pred.mzn +42 -0
  172. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_bool.mzn +37 -0
  173. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_int.mzn +37 -0
  174. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/option.hh +70 -0
  175. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.hh +265 -0
  176. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.cpp +3571 -0
  177. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.hh +164 -0
  178. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.yxx +1604 -0
  179. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/plugin.hh +83 -0
  180. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.cpp +1812 -0
  181. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.hh +71 -0
  182. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/symboltable.hh +96 -0
  183. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/varspec.hh +163 -0
  184. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist.hh +298 -0
  185. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.cpp +288 -0
  186. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hh +110 -0
  187. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hpp +84 -0
  188. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.cpp +673 -0
  189. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.hh +65 -0
  190. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.cpp +120 -0
  191. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.hpp +207 -0
  192. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hh +69 -0
  193. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hpp +70 -0
  194. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.cpp +341 -0
  195. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.hh +129 -0
  196. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.cpp +82 -0
  197. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hh +160 -0
  198. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hpp +210 -0
  199. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hh +215 -0
  200. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hpp +271 -0
  201. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.cpp +138 -0
  202. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.hh +81 -0
  203. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hh +96 -0
  204. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hpp +126 -0
  205. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.cpp +90 -0
  206. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.hh +59 -0
  207. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.cpp +190 -0
  208. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.hh +96 -0
  209. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.cpp +809 -0
  210. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.hh +294 -0
  211. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.cpp +369 -0
  212. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hh +221 -0
  213. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hpp +191 -0
  214. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/mygist.cpp +80 -0
  215. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/standalone_example.pro +18 -0
  216. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.cpp +90 -0
  217. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.hh +82 -0
  218. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.cpp +175 -0
  219. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.hh +75 -0
  220. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.cpp +1430 -0
  221. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.hh +369 -0
  222. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.cpp +473 -0
  223. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hh +237 -0
  224. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hpp +220 -0
  225. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/zoomToFitIcon.hpp +114 -0
  226. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int.hh +3477 -0
  227. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.cpp +185 -0
  228. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.hh +666 -0
  229. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/abs.hpp +236 -0
  230. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/divmod.hpp +350 -0
  231. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/max.hpp +398 -0
  232. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/mult.hpp +750 -0
  233. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqr.hpp +377 -0
  234. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqrt.hpp +217 -0
  235. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array-traits.hpp +147 -0
  236. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.cpp +113 -0
  237. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.hpp +111 -0
  238. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.cpp +71 -0
  239. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.hh +184 -0
  240. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.cpp +388 -0
  241. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.hpp +219 -0
  242. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.cpp +755 -0
  243. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.hh +581 -0
  244. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/base.hpp +137 -0
  245. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/clause.hpp +353 -0
  246. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eq.hpp +196 -0
  247. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.cpp +104 -0
  248. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.hpp +202 -0
  249. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/lq.hpp +241 -0
  250. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/or.hpp +850 -0
  251. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.cpp +152 -0
  252. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.hh +607 -0
  253. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-bool.hpp +81 -0
  254. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-int.hpp +107 -0
  255. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.bs +121 -0
  256. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.cpp +438 -0
  257. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.bs +121 -0
  258. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.cpp +438 -0
  259. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-val.hpp +229 -0
  260. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-values.hpp +213 -0
  261. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-view.hpp +364 -0
  262. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.cpp +172 -0
  263. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.hh +249 -0
  264. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/base.hpp +78 -0
  265. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/dom.hpp +332 -0
  266. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.cpp +241 -0
  267. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.hpp +84 -0
  268. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.cpp +77 -0
  269. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.hpp +71 -0
  270. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/val.hpp +256 -0
  271. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.cpp +229 -0
  272. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.hh +160 -0
  273. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/base.hpp +270 -0
  274. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/dom.hpp +128 -0
  275. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/val.hpp +105 -0
  276. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.cpp +417 -0
  277. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.hh +410 -0
  278. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-base.hpp +80 -0
  279. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-eq.hpp +143 -0
  280. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-gq.hpp +137 -0
  281. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-lq.hpp +136 -0
  282. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/rel.hpp +281 -0
  283. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-base.hpp +131 -0
  284. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-eq.hpp +117 -0
  285. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-gq.hpp +109 -0
  286. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-lq.hpp +96 -0
  287. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.cpp +432 -0
  288. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.hh +745 -0
  289. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/basic.hpp +211 -0
  290. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/edge-finding.hpp +185 -0
  291. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/man-prop.hpp +127 -0
  292. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/opt-prop.hpp +171 -0
  293. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/overload.hpp +63 -0
  294. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task-view.hpp +84 -0
  295. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task.hpp +256 -0
  296. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/tree.hpp +272 -0
  297. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.cpp +187 -0
  298. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.hh +133 -0
  299. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives/val.hpp +380 -0
  300. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.cpp +97 -0
  301. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.hh +314 -0
  302. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/bnd.hpp +444 -0
  303. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom-ctrl.hpp +81 -0
  304. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom.hpp +123 -0
  305. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/graph.hpp +266 -0
  306. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/ter-dom.hpp +113 -0
  307. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/val.hpp +185 -0
  308. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.cpp +135 -0
  309. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.hh +118 -0
  310. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/range.hpp +105 -0
  311. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/spec.hpp +124 -0
  312. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.cpp +190 -0
  313. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.hh +384 -0
  314. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/int.hpp +443 -0
  315. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.cpp +151 -0
  316. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.hpp +74 -0
  317. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/view.hpp +559 -0
  318. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exception.hpp +196 -0
  319. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.cpp +83 -0
  320. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.hh +87 -0
  321. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.cpp +77 -0
  322. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.hpp +51 -0
  323. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.cpp +124 -0
  324. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.hh +508 -0
  325. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/base.hpp +163 -0
  326. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/basic.hpp +148 -0
  327. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.cpp +535 -0
  328. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.hpp +282 -0
  329. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/incremental.hpp +454 -0
  330. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/layered-graph.hpp +982 -0
  331. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.cpp +222 -0
  332. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.hpp +184 -0
  333. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.cpp +172 -0
  334. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.hh +268 -0
  335. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd-sup.hpp +608 -0
  336. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd.hpp +829 -0
  337. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom-sup.hpp +1777 -0
  338. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom.hpp +315 -0
  339. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/post.hpp +169 -0
  340. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/val.hpp +299 -0
  341. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/view.hpp +410 -0
  342. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-1.hpp +249 -0
  343. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-2.hpp +51 -0
  344. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set.cpp +167 -0
  345. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/limits.hpp +94 -0
  346. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-bool.cpp +196 -0
  347. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-int.cpp +194 -0
  348. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear.hh +1560 -0
  349. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-int.hpp +743 -0
  350. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-post.cpp +602 -0
  351. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-scale.hpp +695 -0
  352. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-view.hpp +319 -0
  353. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-bin.hpp +439 -0
  354. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-dom.hpp +484 -0
  355. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-nary.hpp +864 -0
  356. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-noview.hpp +251 -0
  357. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-post.cpp +561 -0
  358. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-ter.hpp +273 -0
  359. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/post.hpp +152 -0
  360. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.cpp +85 -0
  361. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.hh +125 -0
  362. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/prop.hpp +175 -0
  363. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/re-prop.hpp +178 -0
  364. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.cpp +226 -0
  365. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.hh +318 -0
  366. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/base.hpp +88 -0
  367. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/box.hpp +198 -0
  368. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/dim.hpp +197 -0
  369. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/man.hpp +119 -0
  370. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/opt.hpp +153 -0
  371. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.cpp +244 -0
  372. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.hh +429 -0
  373. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-base.hpp +98 -0
  374. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-eq.hpp +174 -0
  375. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-gq.hpp +149 -0
  376. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-lq.hpp +151 -0
  377. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/graph.hpp +283 -0
  378. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-base.hpp +347 -0
  379. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-eq.hpp +167 -0
  380. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-gq.hpp +130 -0
  381. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-lq.hpp +154 -0
  382. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/range-event.hpp +51 -0
  383. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/sym-bit-matrix.hpp +69 -0
  384. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.cpp +73 -0
  385. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.hh +113 -0
  386. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede/single.hpp +232 -0
  387. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/propagator.hpp +311 -0
  388. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.cpp +381 -0
  389. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.hh +665 -0
  390. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/eq.hpp +676 -0
  391. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lex.hpp +414 -0
  392. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lq-le.hpp +537 -0
  393. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/nq.hpp +196 -0
  394. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.cpp +197 -0
  395. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.hh +154 -0
  396. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/int.hpp +168 -0
  397. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/set-op.hpp +154 -0
  398. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/view.hpp +499 -0
  399. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/violations.hpp +101 -0
  400. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.cpp +82 -0
  401. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.hh +107 -0
  402. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/matching.hpp +173 -0
  403. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/narrowing.hpp +250 -0
  404. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/order.hpp +213 -0
  405. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/propagate.hpp +646 -0
  406. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/sortsup.hpp +564 -0
  407. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hh +154 -0
  408. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hpp +187 -0
  409. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task.hh +454 -0
  410. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/array.hpp +179 -0
  411. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/fwd-to-bwd.hpp +102 -0
  412. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/iter.hpp +92 -0
  413. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/man-to-opt.hpp +100 -0
  414. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/prop.hpp +70 -0
  415. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/purge.hpp +74 -0
  416. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/sort.hpp +234 -0
  417. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/tree.hpp +189 -0
  418. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.cpp +258 -0
  419. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.hh +839 -0
  420. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/detectable.hpp +116 -0
  421. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/edge-finding.hpp +78 -0
  422. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/man-prop.hpp +78 -0
  423. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/not-first-not-last.hpp +133 -0
  424. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/opt-prop.hpp +116 -0
  425. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/overload.hpp +93 -0
  426. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/subsumption.hpp +55 -0
  427. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task-view.hpp +105 -0
  428. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task.hpp +532 -0
  429. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/tree.hpp +229 -0
  430. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unshare.cpp +146 -0
  431. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hh +118 -0
  432. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hpp +186 -0
  433. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp.hpp +710 -0
  434. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.cpp +65 -0
  435. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.hpp +431 -0
  436. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.vis +75 -0
  437. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/delta.hpp +64 -0
  438. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.cpp +361 -0
  439. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.hpp +1029 -0
  440. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.vis +117 -0
  441. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.cpp +53 -0
  442. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.hpp +121 -0
  443. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.cpp +61 -0
  444. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.hpp +145 -0
  445. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/print.hpp +56 -0
  446. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph.hh +334 -0
  447. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/bi-link.hpp +89 -0
  448. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/comb-ptr-flag.hpp +78 -0
  449. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/edge.hpp +124 -0
  450. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/graph.hpp +202 -0
  451. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/iter-prune-val.hpp +70 -0
  452. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/node.hpp +171 -0
  453. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view.hpp +1690 -0
  454. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool-test.hpp +64 -0
  455. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool.hpp +314 -0
  456. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/cached.hpp +402 -0
  457. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/constint.hpp +324 -0
  458. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/int.hpp +264 -0
  459. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/iter.hpp +65 -0
  460. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/minus.hpp +300 -0
  461. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/neg-bool.hpp +177 -0
  462. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/offset.hpp +303 -0
  463. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/print.hpp +162 -0
  464. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/rel-test.hpp +231 -0
  465. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/scale.hpp +368 -0
  466. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/zero.hpp +305 -0
  467. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter.hh +96 -0
  468. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-add.hpp +144 -0
  469. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-append.hpp +222 -0
  470. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-array.hpp +139 -0
  471. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-cache.hpp +106 -0
  472. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-compl.hpp +220 -0
  473. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-diff.hpp +142 -0
  474. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-empty.hpp +111 -0
  475. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-inter.hpp +309 -0
  476. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-list.hpp +263 -0
  477. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-map.hpp +260 -0
  478. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minmax.hpp +118 -0
  479. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minus.hpp +107 -0
  480. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-negative.hpp +137 -0
  481. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-offset.hpp +127 -0
  482. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-operations.hpp +157 -0
  483. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-positive.hpp +139 -0
  484. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-rangelist.hpp +115 -0
  485. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-scale.hpp +238 -0
  486. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton-append.hpp +111 -0
  487. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton.hpp +86 -0
  488. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-size.hpp +146 -0
  489. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-union.hpp +361 -0
  490. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-values.hpp +140 -0
  491. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-array.hpp +120 -0
  492. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-bitset.hpp +114 -0
  493. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-inter.hpp +130 -0
  494. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-list.hpp +186 -0
  495. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-map.hpp +136 -0
  496. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-minus.hpp +105 -0
  497. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-negative.hpp +116 -0
  498. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-offset.hpp +113 -0
  499. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-positive.hpp +123 -0
  500. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-ranges.hpp +106 -0
  501. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-singleton.hpp +109 -0
  502. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-union.hpp +137 -0
  503. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-unique.hpp +118 -0
  504. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel.hh +194 -0
  505. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/advisor.hpp +102 -0
  506. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/allocators.hpp +476 -0
  507. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.cpp +70 -0
  508. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.hpp +298 -0
  509. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/array.hpp +2133 -0
  510. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.cpp +121 -0
  511. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.hpp +254 -0
  512. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-tiebreak.hpp +615 -0
  513. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-val.hpp +126 -0
  514. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-view.hpp +455 -0
  515. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher.hpp +431 -0
  516. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.cpp +563 -0
  517. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.hpp +3668 -0
  518. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/exception.hpp +124 -0
  519. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/global-prop-info.hpp +258 -0
  520. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/macros.hpp +118 -0
  521. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-config.hpp +154 -0
  522. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.cpp +53 -0
  523. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.hpp +511 -0
  524. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/modevent.hpp +69 -0
  525. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/propagator.hpp +699 -0
  526. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/range-list.hpp +184 -0
  527. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.cpp +85 -0
  528. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.hpp +459 -0
  529. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/shared-array.hpp +345 -0
  530. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-imp.hpp +332 -0
  531. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-type.hpp +767 -0
  532. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var.hpp +144 -0
  533. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/view.hpp +715 -0
  534. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/wait.hh +244 -0
  535. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel.hh +1870 -0
  536. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/arithmetic.cpp +408 -0
  537. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.cpp +522 -0
  538. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.hpp +87 -0
  539. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/exception.hpp +84 -0
  540. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.cpp +594 -0
  541. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.hpp +297 -0
  542. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.cpp +414 -0
  543. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.hpp +85 -0
  544. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/matrix.hpp +247 -0
  545. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/optimize.hpp +62 -0
  546. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.cpp +817 -0
  547. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.hpp +94 -0
  548. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.cpp +704 -0
  549. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.hpp +96 -0
  550. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.cpp +81 -0
  551. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.hpp +84 -0
  552. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search.hh +458 -0
  553. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.cpp +62 -0
  554. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.hpp +91 -0
  555. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.cpp +62 -0
  556. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.hpp +84 -0
  557. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.cpp +72 -0
  558. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.hpp +49 -0
  559. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.cpp +178 -0
  560. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.hh +203 -0
  561. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.cpp +176 -0
  562. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.hh +195 -0
  563. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.cpp +118 -0
  564. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.hh +418 -0
  565. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/path.hh +477 -0
  566. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.cpp +167 -0
  567. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.hh +73 -0
  568. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.cpp +62 -0
  569. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.hpp +88 -0
  570. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/bab.hh +177 -0
  571. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/dfs.hh +176 -0
  572. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/path.hh +411 -0
  573. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/restart.hh +89 -0
  574. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/statistics.hpp +70 -0
  575. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.cpp +83 -0
  576. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.hpp +137 -0
  577. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/support.hh +91 -0
  578. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/worker.hh +202 -0
  579. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set.hh +1144 -0
  580. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array-traits.hpp +86 -0
  581. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.cpp +219 -0
  582. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.hpp +64 -0
  583. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.cpp +128 -0
  584. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.hh +438 -0
  585. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-val.hpp +107 -0
  586. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.bs +109 -0
  587. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.cpp +370 -0
  588. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-val.hpp +204 -0
  589. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-view.hpp +306 -0
  590. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/cardinality.cpp +65 -0
  591. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.cpp +60 -0
  592. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.hh +107 -0
  593. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.cpp +97 -0
  594. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.hpp +67 -0
  595. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.cpp +116 -0
  596. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.hpp +68 -0
  597. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.cpp +56 -0
  598. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.hh +79 -0
  599. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.cpp +162 -0
  600. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.hpp +66 -0
  601. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/dom.cpp +300 -0
  602. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.cpp +255 -0
  603. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.hh +218 -0
  604. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/disjoint.hpp +324 -0
  605. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/inter.hpp +308 -0
  606. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/union.hpp +342 -0
  607. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/unionConst.hpp +293 -0
  608. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exception.hpp +146 -0
  609. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exec.cpp +58 -0
  610. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.cpp +191 -0
  611. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.hh +459 -0
  612. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/card.hpp +93 -0
  613. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-bool.hpp +282 -0
  614. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-int.hpp +158 -0
  615. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/match.hpp +199 -0
  616. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/minmax.hpp +645 -0
  617. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/weights.hpp +353 -0
  618. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/limits.hpp +62 -0
  619. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.cpp +74 -0
  620. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.hh +115 -0
  621. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede/single.hpp +255 -0
  622. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvc.cpp +66 -0
  623. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvv.cpp +65 -0
  624. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcc.cpp +168 -0
  625. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcv.cpp +166 -0
  626. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vvc.cpp +63 -0
  627. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-singleton.cpp +115 -0
  628. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-ternary.cpp +60 -0
  629. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.cpp +105 -0
  630. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.hh +297 -0
  631. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/common.hpp +619 -0
  632. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/inter.hpp +389 -0
  633. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/partition.hpp +164 -0
  634. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvc.cpp +58 -0
  635. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvv.cpp +54 -0
  636. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-vvc.cpp +57 -0
  637. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl.cpp +54 -0
  638. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvc.cpp +55 -0
  639. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvv.cpp +54 -0
  640. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-vvc.cpp +54 -0
  641. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl.cpp +54 -0
  642. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post.hpp +266 -0
  643. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/subofunion.hpp +166 -0
  644. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/superofinter.hpp +167 -0
  645. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/union.hpp +319 -0
  646. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.cpp +232 -0
  647. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.hh +322 -0
  648. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/common.hpp +125 -0
  649. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/eq.hpp +116 -0
  650. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/lq.hpp +417 -0
  651. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nosubset.hpp +104 -0
  652. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nq.hpp +160 -0
  653. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-eq.hpp +152 -0
  654. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-lq.hpp +182 -0
  655. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-subset.hpp +146 -0
  656. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/subset.hpp +96 -0
  657. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.cpp +64 -0
  658. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.hh +115 -0
  659. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/common.hpp +100 -0
  660. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.cpp +145 -0
  661. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.hpp +79 -0
  662. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.cpp +76 -0
  663. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.hpp +69 -0
  664. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp.hpp +634 -0
  665. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/delta.hpp +78 -0
  666. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.cpp +348 -0
  667. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.hpp +426 -0
  668. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/iter.hpp +63 -0
  669. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.cpp +142 -0
  670. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.hpp +531 -0
  671. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.vis +197 -0
  672. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/print.hpp +49 -0
  673. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.cpp +111 -0
  674. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.hpp +254 -0
  675. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view.hpp +1142 -0
  676. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/cached.hpp +399 -0
  677. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/complement.hpp +556 -0
  678. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/const.hpp +723 -0
  679. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/print.hpp +140 -0
  680. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/set.hpp +263 -0
  681. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/singleton.hpp +402 -0
  682. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support.hh +135 -0
  683. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/auto-link.hpp +73 -0
  684. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset-base.hpp +379 -0
  685. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset.hpp +81 -0
  686. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/block-allocator.hpp +169 -0
  687. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/cast.hpp +52 -0
  688. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/config.hpp.in +109 -0
  689. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-array.hpp +140 -0
  690. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-queue.hpp +156 -0
  691. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-stack.hpp +186 -0
  692. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.cpp +65 -0
  693. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.hpp +102 -0
  694. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.cpp +49 -0
  695. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.hpp +593 -0
  696. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/int-type.hpp +172 -0
  697. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/macros.hpp +103 -0
  698. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/marked-pointer.hpp +79 -0
  699. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/random.hpp +128 -0
  700. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/sort.hpp +268 -0
  701. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/static-stack.hpp +148 -0
  702. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread.hpp +272 -0
  703. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/none.hpp +87 -0
  704. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.cpp +66 -0
  705. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.hpp +142 -0
  706. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.cpp +72 -0
  707. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.hpp +114 -0
  708. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.cpp +68 -0
  709. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.hpp +108 -0
  710. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/timer.hpp +103 -0
  711. data/ext/libgecode3/vendor/gecode-3.7.3/install-sh +323 -0
  712. data/ext/libgecode3/vendor/gecode-3.7.3/misc/allexamples.perl +60 -0
  713. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/back.png +0 -0
  714. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/footer.html +3 -0
  715. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/gecode-logo-100.png +0 -0
  716. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/header.html +66 -0
  717. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/stylesheet.css +468 -0
  718. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixautoheader.perl +55 -0
  719. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixmanifest.perl +84 -0
  720. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixproperties.sh +98 -0
  721. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gecode-logo.ico +0 -0
  722. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genbranch.perl +310 -0
  723. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genchangelog.perl +249 -0
  724. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gencurrentchangelog.perl +191 -0
  725. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlcovmakefile.perl +148 -0
  726. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlicense.perl +121 -0
  727. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genrc.perl +236 -0
  728. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genstatistics.perl +178 -0
  729. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gentxtchangelog.perl +198 -0
  730. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genvarimp.perl +877 -0
  731. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genxcodeproj.perl +144 -0
  732. data/ext/libgecode3/vendor/gecode-3.7.3/misc/getrevision.perl +47 -0
  733. data/ext/libgecode3/vendor/gecode-3.7.3/misc/makedepend.perl +85 -0
  734. data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore-root.txt +43 -0
  735. data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore.txt +18 -0
  736. data/ext/libgecode3/vendor/gecode-3.7.3/test/afc.cpp +143 -0
  737. data/ext/libgecode3/vendor/gecode-3.7.3/test/array.cpp +277 -0
  738. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.cpp +278 -0
  739. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.hh +119 -0
  740. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/bool.cpp +61 -0
  741. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/int.cpp +70 -0
  742. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/set.cpp +72 -0
  743. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.cpp +504 -0
  744. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.hh +119 -0
  745. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/bool.cpp +61 -0
  746. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/int.cpp +70 -0
  747. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/set.cpp +72 -0
  748. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.cpp +655 -0
  749. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hh +353 -0
  750. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hpp +314 -0
  751. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/arithmetic.cpp +772 -0
  752. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/basic.cpp +82 -0
  753. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bin-packing.cpp +237 -0
  754. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bool.cpp +500 -0
  755. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/channel.cpp +234 -0
  756. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/circuit.cpp +359 -0
  757. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/count.cpp +410 -0
  758. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulative.cpp +560 -0
  759. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulatives.cpp +276 -0
  760. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/distinct.cpp +248 -0
  761. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/dom.cpp +174 -0
  762. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/element.cpp +602 -0
  763. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/exec.cpp +150 -0
  764. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/extensional.cpp +571 -0
  765. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/gcc.cpp +320 -0
  766. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/linear.cpp +394 -0
  767. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/member.cpp +138 -0
  768. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-arithmetic.cpp +368 -0
  769. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-bool.cpp +4344 -0
  770. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-count.cpp +295 -0
  771. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-lin.cpp +2179 -0
  772. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-rel.cpp +136 -0
  773. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/no-overlap.cpp +259 -0
  774. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/nvalues.cpp +241 -0
  775. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/precede.cpp +115 -0
  776. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/rel.cpp +568 -0
  777. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sequence.cpp +168 -0
  778. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sorted.cpp +165 -0
  779. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unary.cpp +327 -0
  780. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unshare.cpp +109 -0
  781. data/ext/libgecode3/vendor/gecode-3.7.3/test/search.cpp +487 -0
  782. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.cpp +638 -0
  783. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hh +362 -0
  784. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hpp +121 -0
  785. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/construct.cpp +225 -0
  786. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/convex.cpp +139 -0
  787. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/distinct.cpp +116 -0
  788. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/dom.cpp +346 -0
  789. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/element.cpp +397 -0
  790. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/exec.cpp +86 -0
  791. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/int.cpp +532 -0
  792. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/mm-set.cpp +4532 -0
  793. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/precede.cpp +136 -0
  794. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op-const.cpp +368 -0
  795. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op.cpp +504 -0
  796. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel.cpp +157 -0
  797. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/sequence.cpp +133 -0
  798. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.cpp +281 -0
  799. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hh +161 -0
  800. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hpp +76 -0
  801. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/fz.cpp +93 -0
  802. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.bat.in +41 -0
  803. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.in +41 -0
  804. data/lib/dep-selector-libgecode.rb +15 -0
  805. data/lib/dep-selector-libgecode/version.rb +3 -0
  806. metadata +878 -0
@@ -0,0 +1,137 @@
1
+ /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Main authors:
4
+ * Guido Tack <tack@gecode.org>
5
+ *
6
+ * Copyright:
7
+ * Guido Tack, 2007
8
+ *
9
+ * Last modified:
10
+ * $Date: 2006-12-11 03:27:31 +1100 (Mon, 11 Dec 2006) $ by $Author: schulte $
11
+ * $Revision: 4024 $
12
+ *
13
+ * This file is part of Gecode, the generic constraint
14
+ * development environment:
15
+ * http://www.gecode.org
16
+ *
17
+ * Permission is hereby granted, free of charge, to any person obtaining
18
+ * a copy of this software and associated documentation files (the
19
+ * "Software"), to deal in the Software without restriction, including
20
+ * without limitation the rights to use, copy, modify, merge, publish,
21
+ * distribute, sublicense, and/or sell copies of the Software, and to
22
+ * permit persons to whom the Software is furnished to do so, subject to
23
+ * the following conditions:
24
+ *
25
+ * The above copyright notice and this permission notice shall be
26
+ * included in all copies or substantial portions of the Software.
27
+ *
28
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+ *
36
+ */
37
+
38
+ %option reentrant
39
+ %option bison-bridge
40
+ %option noyywrap
41
+ %option yylineno
42
+
43
+ %{
44
+ #if defined __GNUC__
45
+ #pragma GCC diagnostic ignored "-Wunused-function"
46
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
47
+ #pragma GCC diagnostic ignored "-Wsign-compare"
48
+ #elif defined _MSC_VER
49
+ #pragma warning(push, 1)
50
+ #endif
51
+
52
+ void yyerror(void*, const char*);
53
+ #define yyerror(s) yyerror(yyextra, s)
54
+
55
+ #include <gecode/flatzinc/parser.hh>
56
+
57
+ const char* stringbuf;
58
+ int stringbuflen;
59
+ int stringbufpos;
60
+
61
+ int yy_input_proc(char* buf, int size, yyscan_t yyscanner);
62
+ #define YY_INPUT(buf, result, max_size) \
63
+ result = yy_input_proc(buf, max_size, yyscanner);
64
+ %}
65
+
66
+ %%
67
+
68
+ \n { /*yylineno++;*/ /* ignore EOL */ }
69
+ [ \t\r] { /* ignore whitespace */ }
70
+ %.* { /* ignore comments */ }
71
+
72
+ "true" { yylval->iValue = 1; return FZ_BOOL_LIT; }
73
+ "false" { yylval->iValue = 0; return FZ_BOOL_LIT; }
74
+ -?[0-9]+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
75
+ -?0x[0-9A-Fa-f]+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
76
+ -?0o[0-7]+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
77
+ -?[0-9]+\.[0-9]+ { yylval->dValue = strtod(yytext,NULL);
78
+ return FZ_FLOAT_LIT; }
79
+ -?[0-9]+\.[0-9]+[Ee][+-]?[0-9]+ { yylval->dValue = strtod(yytext,NULL);
80
+ return FZ_FLOAT_LIT; }
81
+ -?[0-9]+[Ee][+-]?[0-9]+ { yylval->dValue = strtod(yytext,NULL);
82
+ return FZ_FLOAT_LIT; }
83
+ [=:;{}(),\[\]\.] { return *yytext; }
84
+ \.\. { return FZ_DOTDOT; }
85
+ :: { return FZ_COLONCOLON; }
86
+ "annotation" { return FZ_ANNOTATION; }
87
+ "any" { return FZ_ANY; }
88
+ "array" { return FZ_ARRAY; }
89
+ "bool" { return FZ_BOOL; }
90
+ "case" { return FZ_CASE; }
91
+ "constraint" { return FZ_CONSTRAINT; }
92
+ "default" { return FZ_DEFAULT; }
93
+ "else" { return FZ_ELSE; }
94
+ "elseif" { return FZ_ELSEIF; }
95
+ "endif" { return FZ_ENDIF; }
96
+ "enum" { return FZ_ENUM; }
97
+ "float" { return FZ_FLOAT; }
98
+ "function" { return FZ_FUNCTION; }
99
+ "if" { return FZ_IF; }
100
+ "include" { return FZ_INCLUDE; }
101
+ "int" { return FZ_INT; }
102
+ "let" { return FZ_LET; }
103
+ "maximize" { yylval->bValue = false; return FZ_MAXIMIZE; }
104
+ "minimize" { yylval->bValue = true; return FZ_MINIMIZE; }
105
+ "of" { return FZ_OF; }
106
+ "satisfy" { return FZ_SATISFY; }
107
+ "output" { return FZ_OUTPUT; }
108
+ "par" { yylval->bValue = false; return FZ_PAR; }
109
+ "predicate" { return FZ_PREDICATE; }
110
+ "record" { return FZ_RECORD; }
111
+ "set" { return FZ_SET; }
112
+ "show_cond" { return FZ_SHOWCOND; }
113
+ "show" { return FZ_SHOW; }
114
+ "solve" { return FZ_SOLVE; }
115
+ "string" { return FZ_STRING; }
116
+ "test" { return FZ_TEST; }
117
+ "then" { return FZ_THEN; }
118
+ "tuple" { return FZ_TUPLE; }
119
+ "type" { return FZ_TYPE; }
120
+ "var" { yylval->bValue = true; return FZ_VAR; }
121
+ "variant_record" { return FZ_VARIANT_RECORD; }
122
+ "where" { return FZ_WHERE; }
123
+ [A-Za-z][A-Za-z0-9_]* { yylval->sValue = strdup(yytext); return FZ_ID; }
124
+ _[_]*[A-Za-z][A-Za-z0-9_]* { yylval->sValue = strdup(yytext); return FZ_U_ID; }
125
+ \"[^"\n]*\" {
126
+ yylval->sValue = strdup(yytext+1);
127
+ yylval->sValue[strlen(yytext)-2] = 0;
128
+ return FZ_STRING_LIT; }
129
+ . { yyerror("Unknown character"); }
130
+ %%
131
+ int yy_input_proc(char* buf, int size, yyscan_t yyscanner) {
132
+ Gecode::FlatZinc::ParserState* parm =
133
+ static_cast<Gecode::FlatZinc::ParserState*>(yyget_extra(yyscanner));
134
+ return parm->fillBuffer(buf, size);
135
+ // work around warning that yyunput is unused
136
+ yyunput (0,buf,yyscanner);
137
+ }
@@ -0,0 +1,2458 @@
1
+ #line 2 "gecode/flatzinc/lexer.yy.cpp"
2
+
3
+ #line 4 "gecode/flatzinc/lexer.yy.cpp"
4
+
5
+ #define YY_INT_ALIGNED short int
6
+
7
+ /* A lexical scanner generated by flex */
8
+
9
+ #define FLEX_SCANNER
10
+ #define YY_FLEX_MAJOR_VERSION 2
11
+ #define YY_FLEX_MINOR_VERSION 5
12
+ #define YY_FLEX_SUBMINOR_VERSION 35
13
+ #if YY_FLEX_SUBMINOR_VERSION > 0
14
+ #define FLEX_BETA
15
+ #endif
16
+
17
+ /* First, we deal with platform-specific or compiler-specific issues. */
18
+
19
+ /* begin standard C headers. */
20
+ #include <stdio.h>
21
+ #include <string.h>
22
+ #include <errno.h>
23
+ #include <stdlib.h>
24
+
25
+ /* end standard C headers. */
26
+
27
+ /* flex integer type definitions */
28
+
29
+ #ifndef FLEXINT_H
30
+ #define FLEXINT_H
31
+
32
+ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
+
34
+ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35
+
36
+ /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37
+ * if you want the limit (max/min) macros for int types.
38
+ */
39
+ #ifndef __STDC_LIMIT_MACROS
40
+ #define __STDC_LIMIT_MACROS 1
41
+ #endif
42
+
43
+ #include <inttypes.h>
44
+ typedef int8_t flex_int8_t;
45
+ typedef uint8_t flex_uint8_t;
46
+ typedef int16_t flex_int16_t;
47
+ typedef uint16_t flex_uint16_t;
48
+ typedef int32_t flex_int32_t;
49
+ typedef uint32_t flex_uint32_t;
50
+ #else
51
+ typedef signed char flex_int8_t;
52
+ typedef short int flex_int16_t;
53
+ typedef int flex_int32_t;
54
+ typedef unsigned char flex_uint8_t;
55
+ typedef unsigned short int flex_uint16_t;
56
+ typedef unsigned int flex_uint32_t;
57
+ #endif /* ! C99 */
58
+
59
+ /* Limits of integral types. */
60
+ #ifndef INT8_MIN
61
+ #define INT8_MIN (-128)
62
+ #endif
63
+ #ifndef INT16_MIN
64
+ #define INT16_MIN (-32767-1)
65
+ #endif
66
+ #ifndef INT32_MIN
67
+ #define INT32_MIN (-2147483647-1)
68
+ #endif
69
+ #ifndef INT8_MAX
70
+ #define INT8_MAX (127)
71
+ #endif
72
+ #ifndef INT16_MAX
73
+ #define INT16_MAX (32767)
74
+ #endif
75
+ #ifndef INT32_MAX
76
+ #define INT32_MAX (2147483647)
77
+ #endif
78
+ #ifndef UINT8_MAX
79
+ #define UINT8_MAX (255U)
80
+ #endif
81
+ #ifndef UINT16_MAX
82
+ #define UINT16_MAX (65535U)
83
+ #endif
84
+ #ifndef UINT32_MAX
85
+ #define UINT32_MAX (4294967295U)
86
+ #endif
87
+
88
+ #endif /* ! FLEXINT_H */
89
+
90
+ #ifdef __cplusplus
91
+
92
+ /* The "const" storage-class-modifier is valid. */
93
+ #define YY_USE_CONST
94
+
95
+ #else /* ! __cplusplus */
96
+
97
+ /* C99 requires __STDC__ to be defined as 1. */
98
+ #if defined (__STDC__)
99
+
100
+ #define YY_USE_CONST
101
+
102
+ #endif /* defined (__STDC__) */
103
+ #endif /* ! __cplusplus */
104
+
105
+ #ifdef YY_USE_CONST
106
+ #define yyconst const
107
+ #else
108
+ #define yyconst
109
+ #endif
110
+
111
+ /* Returned upon end-of-file. */
112
+ #define YY_NULL 0
113
+
114
+ /* Promotes a possibly negative, possibly signed char to an unsigned
115
+ * integer for use as an array index. If the signed char is negative,
116
+ * we want to instead treat it as an 8-bit unsigned char, hence the
117
+ * double cast.
118
+ */
119
+ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
+
121
+ /* An opaque pointer. */
122
+ #ifndef YY_TYPEDEF_YY_SCANNER_T
123
+ #define YY_TYPEDEF_YY_SCANNER_T
124
+ typedef void* yyscan_t;
125
+ #endif
126
+
127
+ /* For convenience, these vars (plus the bison vars far below)
128
+ are macros in the reentrant scanner. */
129
+ #define yyin yyg->yyin_r
130
+ #define yyout yyg->yyout_r
131
+ #define yyextra yyg->yyextra_r
132
+ #define yyleng yyg->yyleng_r
133
+ #define yytext yyg->yytext_r
134
+ #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135
+ #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136
+ #define yy_flex_debug yyg->yy_flex_debug_r
137
+
138
+ /* Enter a start condition. This macro really ought to take a parameter,
139
+ * but we do it the disgusting crufty way forced on us by the ()-less
140
+ * definition of BEGIN.
141
+ */
142
+ #define BEGIN yyg->yy_start = 1 + 2 *
143
+
144
+ /* Translate the current start state into a value that can be later handed
145
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
146
+ * compatibility.
147
+ */
148
+ #define YY_START ((yyg->yy_start - 1) / 2)
149
+ #define YYSTATE YY_START
150
+
151
+ /* Action number for EOF rule of a given start state. */
152
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
153
+
154
+ /* Special action meaning "start processing a new file". */
155
+ #define YY_NEW_FILE yyrestart(yyin ,yyscanner )
156
+
157
+ #define YY_END_OF_BUFFER_CHAR 0
158
+
159
+ /* Size of default input buffer. */
160
+ #ifndef YY_BUF_SIZE
161
+ #define YY_BUF_SIZE 16384
162
+ #endif
163
+
164
+ /* The state buf must be large enough to hold one state per character in the main buffer.
165
+ */
166
+ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
167
+
168
+ #ifndef YY_TYPEDEF_YY_BUFFER_STATE
169
+ #define YY_TYPEDEF_YY_BUFFER_STATE
170
+ typedef struct yy_buffer_state *YY_BUFFER_STATE;
171
+ #endif
172
+
173
+ #define EOB_ACT_CONTINUE_SCAN 0
174
+ #define EOB_ACT_END_OF_FILE 1
175
+ #define EOB_ACT_LAST_MATCH 2
176
+
177
+ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
178
+ * access to the local variable yy_act. Since yyless() is a macro, it would break
179
+ * existing scanners that call yyless() from OUTSIDE yylex.
180
+ * One obvious solution it to make yy_act a global. I tried that, and saw
181
+ * a 5% performance hit in a non-yylineno scanner, because yy_act is
182
+ * normally declared as a register variable-- so it is not worth it.
183
+ */
184
+ #define YY_LESS_LINENO(n) \
185
+ do { \
186
+ int yyl;\
187
+ for ( yyl = n; yyl < yyleng; ++yyl )\
188
+ if ( yytext[yyl] == '\n' )\
189
+ --yylineno;\
190
+ }while(0)
191
+
192
+ /* Return all but the first "n" matched characters back to the input stream. */
193
+ #define yyless(n) \
194
+ do \
195
+ { \
196
+ /* Undo effects of setting up yytext. */ \
197
+ int yyless_macro_arg = (n); \
198
+ YY_LESS_LINENO(yyless_macro_arg);\
199
+ *yy_cp = yyg->yy_hold_char; \
200
+ YY_RESTORE_YY_MORE_OFFSET \
201
+ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
202
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
203
+ } \
204
+ while ( 0 )
205
+
206
+ #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
207
+
208
+ #ifndef YY_TYPEDEF_YY_SIZE_T
209
+ #define YY_TYPEDEF_YY_SIZE_T
210
+ typedef size_t yy_size_t;
211
+ #endif
212
+
213
+ #ifndef YY_STRUCT_YY_BUFFER_STATE
214
+ #define YY_STRUCT_YY_BUFFER_STATE
215
+ struct yy_buffer_state
216
+ {
217
+ FILE *yy_input_file;
218
+
219
+ char *yy_ch_buf; /* input buffer */
220
+ char *yy_buf_pos; /* current position in input buffer */
221
+
222
+ /* Size of input buffer in bytes, not including room for EOB
223
+ * characters.
224
+ */
225
+ yy_size_t yy_buf_size;
226
+
227
+ /* Number of characters read into yy_ch_buf, not including EOB
228
+ * characters.
229
+ */
230
+ int yy_n_chars;
231
+
232
+ /* Whether we "own" the buffer - i.e., we know we created it,
233
+ * and can realloc() it to grow it, and should free() it to
234
+ * delete it.
235
+ */
236
+ int yy_is_our_buffer;
237
+
238
+ /* Whether this is an "interactive" input source; if so, and
239
+ * if we're using stdio for input, then we want to use getc()
240
+ * instead of fread(), to make sure we stop fetching input after
241
+ * each newline.
242
+ */
243
+ int yy_is_interactive;
244
+
245
+ /* Whether we're considered to be at the beginning of a line.
246
+ * If so, '^' rules will be active on the next match, otherwise
247
+ * not.
248
+ */
249
+ int yy_at_bol;
250
+
251
+ int yy_bs_lineno; /**< The line count. */
252
+ int yy_bs_column; /**< The column count. */
253
+
254
+ /* Whether to try to fill the input buffer when we reach the
255
+ * end of it.
256
+ */
257
+ int yy_fill_buffer;
258
+
259
+ int yy_buffer_status;
260
+
261
+ #define YY_BUFFER_NEW 0
262
+ #define YY_BUFFER_NORMAL 1
263
+ /* When an EOF's been seen but there's still some text to process
264
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
265
+ * shouldn't try reading from the input source any more. We might
266
+ * still have a bunch of tokens to match, though, because of
267
+ * possible backing-up.
268
+ *
269
+ * When we actually see the EOF, we change the status to "new"
270
+ * (via yyrestart()), so that the user can continue scanning by
271
+ * just pointing yyin at a new input file.
272
+ */
273
+ #define YY_BUFFER_EOF_PENDING 2
274
+
275
+ };
276
+ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
277
+
278
+ /* We provide macros for accessing buffer states in case in the
279
+ * future we want to put the buffer states in a more general
280
+ * "scanner state".
281
+ *
282
+ * Returns the top of the stack, or NULL.
283
+ */
284
+ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
285
+ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
286
+ : NULL)
287
+
288
+ /* Same as previous macro, but useful when we know that the buffer stack is not
289
+ * NULL or when we need an lvalue. For internal use only.
290
+ */
291
+ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
292
+
293
+ void yyrestart (FILE *input_file ,yyscan_t yyscanner );
294
+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
295
+ YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
296
+ void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
297
+ void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
298
+ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
299
+ void yypop_buffer_state (yyscan_t yyscanner );
300
+
301
+ static void yyensure_buffer_stack (yyscan_t yyscanner );
302
+ static void yy_load_buffer_state (yyscan_t yyscanner );
303
+ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
304
+
305
+ #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
306
+
307
+ YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
308
+ YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
309
+ YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
310
+
311
+ void *yyalloc (yy_size_t ,yyscan_t yyscanner );
312
+ void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
313
+ void yyfree (void * ,yyscan_t yyscanner );
314
+
315
+ #define yy_new_buffer yy_create_buffer
316
+
317
+ #define yy_set_interactive(is_interactive) \
318
+ { \
319
+ if ( ! YY_CURRENT_BUFFER ){ \
320
+ yyensure_buffer_stack (yyscanner); \
321
+ YY_CURRENT_BUFFER_LVALUE = \
322
+ yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
323
+ } \
324
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
325
+ }
326
+
327
+ #define yy_set_bol(at_bol) \
328
+ { \
329
+ if ( ! YY_CURRENT_BUFFER ){\
330
+ yyensure_buffer_stack (yyscanner); \
331
+ YY_CURRENT_BUFFER_LVALUE = \
332
+ yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
333
+ } \
334
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
335
+ }
336
+
337
+ #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
338
+
339
+ /* Begin user sect3 */
340
+
341
+ #define yywrap(n) 1
342
+ #define YY_SKIP_YYWRAP
343
+
344
+ typedef unsigned char YY_CHAR;
345
+
346
+ typedef int yy_state_type;
347
+
348
+ #define yytext_ptr yytext_r
349
+
350
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
351
+ static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
352
+ static int yy_get_next_buffer (yyscan_t yyscanner );
353
+ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
354
+
355
+ /* Done after the current pattern has been matched and before the
356
+ * corresponding action - sets up yytext.
357
+ */
358
+ #define YY_DO_BEFORE_ACTION \
359
+ yyg->yytext_ptr = yy_bp; \
360
+ yyleng = (size_t) (yy_cp - yy_bp); \
361
+ yyg->yy_hold_char = *yy_cp; \
362
+ *yy_cp = '\0'; \
363
+ yyg->yy_c_buf_p = yy_cp;
364
+
365
+ #define YY_NUM_RULES 56
366
+ #define YY_END_OF_BUFFER 57
367
+ /* This struct is not used in this scanner,
368
+ but its presence is necessary. */
369
+ struct yy_trans_info
370
+ {
371
+ flex_int32_t yy_verify;
372
+ flex_int32_t yy_nxt;
373
+ };
374
+ static yyconst flex_int16_t yy_accept[221] =
375
+ { 0,
376
+ 0, 0, 57, 55, 2, 1, 55, 3, 12, 55,
377
+ 12, 6, 6, 12, 52, 55, 52, 52, 52, 52,
378
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
379
+ 52, 52, 0, 54, 3, 6, 6, 13, 0, 0,
380
+ 0, 0, 14, 52, 53, 0, 52, 52, 52, 52,
381
+ 52, 52, 52, 52, 52, 52, 52, 28, 52, 52,
382
+ 52, 52, 34, 52, 52, 52, 52, 52, 52, 52,
383
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 9,
384
+ 0, 11, 8, 7, 53, 52, 16, 52, 52, 52,
385
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 30,
386
+
387
+ 31, 52, 52, 52, 37, 52, 52, 52, 40, 52,
388
+ 52, 52, 52, 52, 52, 52, 52, 49, 52, 0,
389
+ 52, 52, 18, 19, 52, 52, 22, 52, 25, 52,
390
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 42,
391
+ 52, 52, 45, 46, 4, 52, 48, 52, 52, 0,
392
+ 10, 52, 17, 52, 52, 52, 24, 5, 26, 52,
393
+ 52, 52, 52, 52, 52, 52, 52, 52, 43, 52,
394
+ 47, 52, 51, 52, 52, 52, 23, 52, 52, 52,
395
+ 52, 36, 52, 39, 52, 52, 44, 52, 52, 52,
396
+ 21, 52, 29, 52, 52, 52, 35, 52, 52, 52,
397
+
398
+ 52, 27, 32, 33, 52, 52, 52, 52, 52, 38,
399
+ 41, 52, 15, 20, 52, 52, 52, 52, 50, 0
400
+ } ;
401
+
402
+ static yyconst flex_int32_t yy_ec[256] =
403
+ { 0,
404
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
405
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
406
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
407
+ 1, 2, 1, 4, 1, 1, 5, 1, 1, 6,
408
+ 6, 1, 7, 6, 8, 9, 1, 10, 11, 11,
409
+ 11, 11, 11, 11, 11, 12, 12, 13, 6, 1,
410
+ 6, 1, 1, 1, 14, 14, 14, 14, 15, 14,
411
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
412
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
413
+ 6, 1, 6, 1, 17, 1, 18, 19, 20, 21,
414
+
415
+ 22, 23, 24, 25, 26, 16, 16, 27, 28, 29,
416
+ 30, 31, 16, 32, 33, 34, 35, 36, 37, 38,
417
+ 39, 40, 6, 1, 6, 1, 1, 1, 1, 1,
418
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
419
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
420
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
421
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
422
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
423
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425
+
426
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431
+ 1, 1, 1, 1, 1
432
+ } ;
433
+
434
+ static yyconst flex_int32_t yy_meta[41] =
435
+ { 0,
436
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 3,
437
+ 3, 3, 1, 4, 4, 5, 5, 4, 4, 4,
438
+ 4, 4, 4, 5, 5, 5, 5, 5, 5, 5,
439
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
440
+ } ;
441
+
442
+ static yyconst flex_int16_t yy_base[227] =
443
+ { 0,
444
+ 0, 0, 276, 277, 277, 277, 271, 0, 277, 31,
445
+ 265, 35, 18, 260, 0, 255, 20, 241, 33, 248,
446
+ 26, 40, 31, 247, 43, 36, 44, 246, 52, 56,
447
+ 249, 241, 261, 277, 0, 0, 0, 277, 73, 82,
448
+ 69, 0, 277, 0, 0, 247, 58, 231, 232, 228,
449
+ 231, 236, 225, 75, 230, 226, 226, 0, 78, 220,
450
+ 215, 223, 0, 217, 218, 227, 228, 213, 212, 215,
451
+ 217, 211, 209, 219, 205, 208, 207, 205, 214, 89,
452
+ 95, 103, 92, 0, 0, 205, 0, 216, 206, 210,
453
+ 198, 212, 207, 202, 199, 193, 207, 204, 196, 0,
454
+
455
+ 0, 196, 195, 189, 0, 198, 188, 191, 0, 179,
456
+ 179, 188, 179, 183, 189, 183, 187, 182, 175, 109,
457
+ 172, 166, 0, 0, 170, 168, 176, 178, 0, 178,
458
+ 165, 164, 162, 168, 167, 159, 167, 160, 158, 173,
459
+ 167, 159, 0, 0, 0, 165, 0, 168, 163, 112,
460
+ 115, 166, 0, 151, 155, 158, 0, 0, 0, 154,
461
+ 158, 152, 151, 142, 155, 153, 150, 152, 0, 147,
462
+ 0, 141, 0, 135, 150, 133, 0, 136, 143, 124,
463
+ 123, 0, 144, 0, 122, 130, 0, 125, 132, 131,
464
+ 0, 127, 0, 133, 132, 119, 0, 123, 134, 120,
465
+
466
+ 120, 0, 0, 0, 126, 113, 97, 89, 75, 0,
467
+ 0, 86, 0, 0, 52, 38, 34, 43, 0, 277,
468
+ 127, 132, 135, 137, 140, 142
469
+ } ;
470
+
471
+ static yyconst flex_int16_t yy_def[227] =
472
+ { 0,
473
+ 220, 1, 220, 220, 220, 220, 221, 222, 220, 220,
474
+ 220, 220, 12, 220, 223, 224, 223, 223, 223, 223,
475
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
476
+ 223, 223, 221, 220, 222, 12, 13, 220, 220, 220,
477
+ 220, 225, 220, 223, 226, 224, 223, 223, 223, 223,
478
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
479
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
480
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 220,
481
+ 220, 220, 220, 225, 226, 223, 223, 223, 223, 223,
482
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
483
+
484
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
485
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 220,
486
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
487
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
488
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 220,
489
+ 220, 223, 223, 223, 223, 223, 223, 223, 223, 223,
490
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
491
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
492
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
493
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
494
+
495
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
496
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 0,
497
+ 220, 220, 220, 220, 220, 220
498
+ } ;
499
+
500
+ static yyconst flex_int16_t yy_nxt[318] =
501
+ { 0,
502
+ 4, 5, 6, 7, 8, 9, 4, 10, 11, 12,
503
+ 13, 13, 14, 15, 15, 15, 16, 17, 18, 19,
504
+ 20, 21, 22, 15, 15, 23, 24, 25, 15, 26,
505
+ 27, 28, 29, 30, 15, 31, 32, 15, 15, 15,
506
+ 36, 37, 37, 39, 37, 37, 37, 220, 47, 40,
507
+ 50, 48, 53, 58, 54, 220, 40, 55, 63, 59,
508
+ 61, 65, 51, 219, 41, 218, 56, 217, 62, 68,
509
+ 64, 216, 42, 69, 57, 66, 70, 73, 83, 83,
510
+ 74, 71, 80, 80, 80, 72, 86, 75, 81, 81,
511
+ 76, 82, 82, 82, 77, 94, 87, 99, 80, 80,
512
+
513
+ 80, 83, 83, 120, 82, 82, 82, 215, 214, 95,
514
+ 120, 100, 82, 82, 82, 150, 150, 213, 151, 151,
515
+ 151, 151, 151, 151, 151, 151, 151, 33, 212, 33,
516
+ 33, 33, 35, 211, 35, 35, 35, 44, 44, 44,
517
+ 45, 45, 84, 84, 85, 85, 85, 210, 209, 208,
518
+ 207, 206, 205, 204, 203, 202, 201, 200, 199, 198,
519
+ 197, 196, 195, 194, 193, 192, 191, 190, 189, 188,
520
+ 187, 186, 185, 184, 183, 182, 181, 180, 179, 178,
521
+ 177, 176, 175, 174, 173, 172, 171, 170, 169, 168,
522
+ 167, 166, 165, 164, 163, 162, 161, 160, 159, 158,
523
+
524
+ 157, 156, 155, 154, 153, 152, 149, 148, 147, 146,
525
+ 145, 144, 143, 142, 141, 140, 139, 138, 137, 136,
526
+ 135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
527
+ 125, 124, 123, 122, 121, 119, 118, 117, 116, 115,
528
+ 114, 113, 112, 111, 110, 109, 108, 107, 106, 105,
529
+ 104, 103, 102, 101, 98, 97, 96, 93, 92, 91,
530
+ 90, 89, 88, 46, 34, 79, 78, 67, 60, 52,
531
+ 49, 46, 43, 38, 34, 220, 3, 220, 220, 220,
532
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
533
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
534
+
535
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
536
+ 220, 220, 220, 220, 220, 220, 220
537
+ } ;
538
+
539
+ static yyconst flex_int16_t yy_chk[318] =
540
+ { 0,
541
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
542
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
545
+ 10, 10, 10, 12, 12, 12, 12, 13, 17, 12,
546
+ 19, 17, 21, 23, 21, 13, 12, 22, 26, 23,
547
+ 25, 27, 19, 218, 12, 217, 22, 216, 25, 29,
548
+ 26, 215, 12, 29, 22, 27, 29, 30, 41, 41,
549
+ 30, 29, 39, 39, 39, 29, 47, 30, 40, 40,
550
+ 30, 40, 40, 40, 30, 54, 47, 59, 80, 80,
551
+
552
+ 80, 83, 83, 80, 81, 81, 81, 212, 209, 54,
553
+ 80, 59, 82, 82, 82, 120, 120, 208, 120, 120,
554
+ 120, 150, 150, 150, 151, 151, 151, 221, 207, 221,
555
+ 221, 221, 222, 206, 222, 222, 222, 223, 223, 223,
556
+ 224, 224, 225, 225, 226, 226, 226, 205, 201, 200,
557
+ 199, 198, 196, 195, 194, 192, 190, 189, 188, 186,
558
+ 185, 183, 181, 180, 179, 178, 176, 175, 174, 172,
559
+ 170, 168, 167, 166, 165, 164, 163, 162, 161, 160,
560
+ 156, 155, 154, 152, 149, 148, 146, 142, 141, 140,
561
+ 139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
562
+
563
+ 128, 127, 126, 125, 122, 121, 119, 118, 117, 116,
564
+ 115, 114, 113, 112, 111, 110, 108, 107, 106, 104,
565
+ 103, 102, 99, 98, 97, 96, 95, 94, 93, 92,
566
+ 91, 90, 89, 88, 86, 79, 78, 77, 76, 75,
567
+ 74, 73, 72, 71, 70, 69, 68, 67, 66, 65,
568
+ 64, 62, 61, 60, 57, 56, 55, 53, 52, 51,
569
+ 50, 49, 48, 46, 33, 32, 31, 28, 24, 20,
570
+ 18, 16, 14, 11, 7, 3, 220, 220, 220, 220,
571
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
572
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
573
+
574
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
575
+ 220, 220, 220, 220, 220, 220, 220
576
+ } ;
577
+
578
+ /* Table of booleans, true if rule could match eol. */
579
+ static yyconst flex_int32_t yy_rule_can_match_eol[57] =
580
+ { 0,
581
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
583
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
584
+
585
+ /* The intent behind this definition is that it'll catch
586
+ * any uses of REJECT which flex missed.
587
+ */
588
+ #define REJECT reject_used_but_not_detected
589
+ #define yymore() yymore_used_but_not_detected
590
+ #define YY_MORE_ADJ 0
591
+ #define YY_RESTORE_YY_MORE_OFFSET
592
+ #line 1 "./gecode/flatzinc/lexer.lxx"
593
+ /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
594
+ /*
595
+ * Main authors:
596
+ * Guido Tack <tack@gecode.org>
597
+ *
598
+ * Copyright:
599
+ * Guido Tack, 2007
600
+ *
601
+ * Last modified:
602
+ * $Date: 2012-03-21 16:25:08 +1100 (Wed, 21 Mar 2012) $ by $Author: tack $
603
+ * $Revision: 12605 $
604
+ *
605
+ * This file is part of Gecode, the generic constraint
606
+ * development environment:
607
+ * http://www.gecode.org
608
+ *
609
+ * Permission is hereby granted, free of charge, to any person obtaining
610
+ * a copy of this software and associated documentation files (the
611
+ * "Software"), to deal in the Software without restriction, including
612
+ * without limitation the rights to use, copy, modify, merge, publish,
613
+ * distribute, sublicense, and/or sell copies of the Software, and to
614
+ * permit persons to whom the Software is furnished to do so, subject to
615
+ * the following conditions:
616
+ *
617
+ * The above copyright notice and this permission notice shall be
618
+ * included in all copies or substantial portions of the Software.
619
+ *
620
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
621
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
622
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
623
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
624
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
625
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
626
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
627
+ *
628
+ */
629
+ #line 44 "./gecode/flatzinc/lexer.lxx"
630
+ #if defined __GNUC__
631
+ #pragma GCC diagnostic ignored "-Wunused-function"
632
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
633
+ #pragma GCC diagnostic ignored "-Wsign-compare"
634
+ #elif defined _MSC_VER
635
+ #pragma warning(push, 1)
636
+ #endif
637
+
638
+ void yyerror(void*, const char*);
639
+ #define yyerror(s) yyerror(yyextra, s)
640
+
641
+ #include <gecode/flatzinc/parser.hh>
642
+
643
+ const char* stringbuf;
644
+ int stringbuflen;
645
+ int stringbufpos;
646
+
647
+ int yy_input_proc(char* buf, int size, yyscan_t yyscanner);
648
+ #define YY_INPUT(buf, result, max_size) \
649
+ result = yy_input_proc(buf, max_size, yyscanner);
650
+ #line 651 "gecode/flatzinc/lexer.yy.cpp"
651
+
652
+ #define INITIAL 0
653
+
654
+ #ifndef YY_NO_UNISTD_H
655
+ /* Special case for "unistd.h", since it is non-ANSI. We include it way
656
+ * down here because we want the user's section 1 to have been scanned first.
657
+ * The user has a chance to override it with an option.
658
+ */
659
+ #include <unistd.h>
660
+ #endif
661
+
662
+ #ifndef YY_EXTRA_TYPE
663
+ #define YY_EXTRA_TYPE void *
664
+ #endif
665
+
666
+ /* Holds the entire state of the reentrant scanner. */
667
+ struct yyguts_t
668
+ {
669
+
670
+ /* User-defined. Not touched by flex. */
671
+ YY_EXTRA_TYPE yyextra_r;
672
+
673
+ /* The rest are the same as the globals declared in the non-reentrant scanner. */
674
+ FILE *yyin_r, *yyout_r;
675
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
676
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
677
+ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
678
+ char yy_hold_char;
679
+ int yy_n_chars;
680
+ int yyleng_r;
681
+ char *yy_c_buf_p;
682
+ int yy_init;
683
+ int yy_start;
684
+ int yy_did_buffer_switch_on_eof;
685
+ int yy_start_stack_ptr;
686
+ int yy_start_stack_depth;
687
+ int *yy_start_stack;
688
+ yy_state_type yy_last_accepting_state;
689
+ char* yy_last_accepting_cpos;
690
+
691
+ int yylineno_r;
692
+ int yy_flex_debug_r;
693
+
694
+ char *yytext_r;
695
+ int yy_more_flag;
696
+ int yy_more_len;
697
+
698
+ YYSTYPE * yylval_r;
699
+
700
+ }; /* end struct yyguts_t */
701
+
702
+ static int yy_init_globals (yyscan_t yyscanner );
703
+
704
+ /* This must go here because YYSTYPE and YYLTYPE are included
705
+ * from bison output in section 1.*/
706
+ # define yylval yyg->yylval_r
707
+
708
+ int yylex_init (yyscan_t* scanner);
709
+
710
+ int yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
711
+
712
+ /* Accessor methods to globals.
713
+ These are made visible to non-reentrant scanners for convenience. */
714
+
715
+ int yylex_destroy (yyscan_t yyscanner );
716
+
717
+ int yyget_debug (yyscan_t yyscanner );
718
+
719
+ void yyset_debug (int debug_flag ,yyscan_t yyscanner );
720
+
721
+ YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner );
722
+
723
+ void yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
724
+
725
+ FILE *yyget_in (yyscan_t yyscanner );
726
+
727
+ void yyset_in (FILE * in_str ,yyscan_t yyscanner );
728
+
729
+ FILE *yyget_out (yyscan_t yyscanner );
730
+
731
+ void yyset_out (FILE * out_str ,yyscan_t yyscanner );
732
+
733
+ int yyget_leng (yyscan_t yyscanner );
734
+
735
+ char *yyget_text (yyscan_t yyscanner );
736
+
737
+ int yyget_lineno (yyscan_t yyscanner );
738
+
739
+ void yyset_lineno (int line_number ,yyscan_t yyscanner );
740
+
741
+ YYSTYPE * yyget_lval (yyscan_t yyscanner );
742
+
743
+ void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
744
+
745
+ /* Macros after this point can all be overridden by user definitions in
746
+ * section 1.
747
+ */
748
+
749
+ #ifndef YY_SKIP_YYWRAP
750
+ #ifdef __cplusplus
751
+ extern "C" int yywrap (yyscan_t yyscanner );
752
+ #else
753
+ extern int yywrap (yyscan_t yyscanner );
754
+ #endif
755
+ #endif
756
+
757
+ static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
758
+
759
+ #ifndef yytext_ptr
760
+ static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
761
+ #endif
762
+
763
+ #ifdef YY_NEED_STRLEN
764
+ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
765
+ #endif
766
+
767
+ #ifndef YY_NO_INPUT
768
+
769
+ #ifdef __cplusplus
770
+ static int yyinput (yyscan_t yyscanner );
771
+ #else
772
+ static int input (yyscan_t yyscanner );
773
+ #endif
774
+
775
+ #endif
776
+
777
+ /* Amount of stuff to slurp up with each read. */
778
+ #ifndef YY_READ_BUF_SIZE
779
+ #define YY_READ_BUF_SIZE 8192
780
+ #endif
781
+
782
+ /* Copy whatever the last rule matched to the standard output. */
783
+ #ifndef ECHO
784
+ /* This used to be an fputs(), but since the string might contain NUL's,
785
+ * we now use fwrite().
786
+ */
787
+ #define ECHO fwrite( yytext, yyleng, 1, yyout )
788
+ #endif
789
+
790
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
791
+ * is returned in "result".
792
+ */
793
+ #ifndef YY_INPUT
794
+ #define YY_INPUT(buf,result,max_size) \
795
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
796
+ { \
797
+ int c = '*'; \
798
+ yy_size_t n; \
799
+ for ( n = 0; n < max_size && \
800
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
801
+ buf[n] = (char) c; \
802
+ if ( c == '\n' ) \
803
+ buf[n++] = (char) c; \
804
+ if ( c == EOF && ferror( yyin ) ) \
805
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
806
+ result = n; \
807
+ } \
808
+ else \
809
+ { \
810
+ errno=0; \
811
+ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
812
+ { \
813
+ if( errno != EINTR) \
814
+ { \
815
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
816
+ break; \
817
+ } \
818
+ errno=0; \
819
+ clearerr(yyin); \
820
+ } \
821
+ }\
822
+ \
823
+
824
+ #endif
825
+
826
+ /* No semi-colon after return; correct usage is to write "yyterminate();" -
827
+ * we don't want an extra ';' after the "return" because that will cause
828
+ * some compilers to complain about unreachable statements.
829
+ */
830
+ #ifndef yyterminate
831
+ #define yyterminate() return YY_NULL
832
+ #endif
833
+
834
+ /* Number of entries by which start-condition stack grows. */
835
+ #ifndef YY_START_STACK_INCR
836
+ #define YY_START_STACK_INCR 25
837
+ #endif
838
+
839
+ /* Report a fatal error. */
840
+ #ifndef YY_FATAL_ERROR
841
+ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
842
+ #endif
843
+
844
+ /* end tables serialization structures and prototypes */
845
+
846
+ /* Default declaration of generated scanner - a define so the user can
847
+ * easily add parameters.
848
+ */
849
+ #ifndef YY_DECL
850
+ #define YY_DECL_IS_OURS 1
851
+
852
+ extern int yylex \
853
+ (YYSTYPE * yylval_param ,yyscan_t yyscanner);
854
+
855
+ #define YY_DECL int yylex \
856
+ (YYSTYPE * yylval_param , yyscan_t yyscanner)
857
+ #endif /* !YY_DECL */
858
+
859
+ /* Code executed at the beginning of each rule, after yytext and yyleng
860
+ * have been set up.
861
+ */
862
+ #ifndef YY_USER_ACTION
863
+ #define YY_USER_ACTION
864
+ #endif
865
+
866
+ /* Code executed at the end of each rule. */
867
+ #ifndef YY_BREAK
868
+ #define YY_BREAK break;
869
+ #endif
870
+
871
+ #define YY_RULE_SETUP \
872
+ YY_USER_ACTION
873
+
874
+ /** The main scanner function which does all the work.
875
+ */
876
+ YY_DECL
877
+ {
878
+ register yy_state_type yy_current_state;
879
+ register char *yy_cp, *yy_bp;
880
+ register int yy_act;
881
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
882
+
883
+ #line 66 "./gecode/flatzinc/lexer.lxx"
884
+
885
+
886
+ #line 887 "gecode/flatzinc/lexer.yy.cpp"
887
+
888
+ yylval = yylval_param;
889
+
890
+ if ( !yyg->yy_init )
891
+ {
892
+ yyg->yy_init = 1;
893
+
894
+ #ifdef YY_USER_INIT
895
+ YY_USER_INIT;
896
+ #endif
897
+
898
+ if ( ! yyg->yy_start )
899
+ yyg->yy_start = 1; /* first start state */
900
+
901
+ if ( ! yyin )
902
+ yyin = stdin;
903
+
904
+ if ( ! yyout )
905
+ yyout = stdout;
906
+
907
+ if ( ! YY_CURRENT_BUFFER ) {
908
+ yyensure_buffer_stack (yyscanner);
909
+ YY_CURRENT_BUFFER_LVALUE =
910
+ yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
911
+ }
912
+
913
+ yy_load_buffer_state(yyscanner );
914
+ }
915
+
916
+ while ( 1 ) /* loops until end-of-file is reached */
917
+ {
918
+ yy_cp = yyg->yy_c_buf_p;
919
+
920
+ /* Support of yytext. */
921
+ *yy_cp = yyg->yy_hold_char;
922
+
923
+ /* yy_bp points to the position in yy_ch_buf of the start of
924
+ * the current run.
925
+ */
926
+ yy_bp = yy_cp;
927
+
928
+ yy_current_state = yyg->yy_start;
929
+ yy_match:
930
+ do
931
+ {
932
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
933
+ if ( yy_accept[yy_current_state] )
934
+ {
935
+ yyg->yy_last_accepting_state = yy_current_state;
936
+ yyg->yy_last_accepting_cpos = yy_cp;
937
+ }
938
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
939
+ {
940
+ yy_current_state = (int) yy_def[yy_current_state];
941
+ if ( yy_current_state >= 221 )
942
+ yy_c = yy_meta[(unsigned int) yy_c];
943
+ }
944
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
945
+ ++yy_cp;
946
+ }
947
+ while ( yy_base[yy_current_state] != 277 );
948
+
949
+ yy_find_action:
950
+ yy_act = yy_accept[yy_current_state];
951
+ if ( yy_act == 0 )
952
+ { /* have to back up */
953
+ yy_cp = yyg->yy_last_accepting_cpos;
954
+ yy_current_state = yyg->yy_last_accepting_state;
955
+ yy_act = yy_accept[yy_current_state];
956
+ }
957
+
958
+ YY_DO_BEFORE_ACTION;
959
+
960
+ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
961
+ {
962
+ yy_size_t yyl;
963
+ for ( yyl = 0; yyl < yyleng; ++yyl )
964
+ if ( yytext[yyl] == '\n' )
965
+
966
+ do{ yylineno++;
967
+ yycolumn=0;
968
+ }while(0)
969
+ ;
970
+ }
971
+
972
+ do_action: /* This label is used only to access EOF actions. */
973
+
974
+ switch ( yy_act )
975
+ { /* beginning of action switch */
976
+ case 0: /* must back up */
977
+ /* undo the effects of YY_DO_BEFORE_ACTION */
978
+ *yy_cp = yyg->yy_hold_char;
979
+ yy_cp = yyg->yy_last_accepting_cpos;
980
+ yy_current_state = yyg->yy_last_accepting_state;
981
+ goto yy_find_action;
982
+
983
+ case 1:
984
+ /* rule 1 can match eol */
985
+ YY_RULE_SETUP
986
+ #line 68 "./gecode/flatzinc/lexer.lxx"
987
+ { /*yylineno++;*/ /* ignore EOL */ }
988
+ YY_BREAK
989
+ case 2:
990
+ YY_RULE_SETUP
991
+ #line 69 "./gecode/flatzinc/lexer.lxx"
992
+ { /* ignore whitespace */ }
993
+ YY_BREAK
994
+ case 3:
995
+ YY_RULE_SETUP
996
+ #line 70 "./gecode/flatzinc/lexer.lxx"
997
+ { /* ignore comments */ }
998
+ YY_BREAK
999
+ case 4:
1000
+ YY_RULE_SETUP
1001
+ #line 72 "./gecode/flatzinc/lexer.lxx"
1002
+ { yylval->iValue = 1; return FZ_BOOL_LIT; }
1003
+ YY_BREAK
1004
+ case 5:
1005
+ YY_RULE_SETUP
1006
+ #line 73 "./gecode/flatzinc/lexer.lxx"
1007
+ { yylval->iValue = 0; return FZ_BOOL_LIT; }
1008
+ YY_BREAK
1009
+ case 6:
1010
+ YY_RULE_SETUP
1011
+ #line 74 "./gecode/flatzinc/lexer.lxx"
1012
+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
1013
+ YY_BREAK
1014
+ case 7:
1015
+ YY_RULE_SETUP
1016
+ #line 75 "./gecode/flatzinc/lexer.lxx"
1017
+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
1018
+ YY_BREAK
1019
+ case 8:
1020
+ YY_RULE_SETUP
1021
+ #line 76 "./gecode/flatzinc/lexer.lxx"
1022
+ { yylval->iValue = atoi(yytext); return FZ_INT_LIT; }
1023
+ YY_BREAK
1024
+ case 9:
1025
+ YY_RULE_SETUP
1026
+ #line 77 "./gecode/flatzinc/lexer.lxx"
1027
+ { yylval->dValue = strtod(yytext,NULL);
1028
+ return FZ_FLOAT_LIT; }
1029
+ YY_BREAK
1030
+ case 10:
1031
+ YY_RULE_SETUP
1032
+ #line 79 "./gecode/flatzinc/lexer.lxx"
1033
+ { yylval->dValue = strtod(yytext,NULL);
1034
+ return FZ_FLOAT_LIT; }
1035
+ YY_BREAK
1036
+ case 11:
1037
+ YY_RULE_SETUP
1038
+ #line 81 "./gecode/flatzinc/lexer.lxx"
1039
+ { yylval->dValue = strtod(yytext,NULL);
1040
+ return FZ_FLOAT_LIT; }
1041
+ YY_BREAK
1042
+ case 12:
1043
+ YY_RULE_SETUP
1044
+ #line 83 "./gecode/flatzinc/lexer.lxx"
1045
+ { return *yytext; }
1046
+ YY_BREAK
1047
+ case 13:
1048
+ YY_RULE_SETUP
1049
+ #line 84 "./gecode/flatzinc/lexer.lxx"
1050
+ { return FZ_DOTDOT; }
1051
+ YY_BREAK
1052
+ case 14:
1053
+ YY_RULE_SETUP
1054
+ #line 85 "./gecode/flatzinc/lexer.lxx"
1055
+ { return FZ_COLONCOLON; }
1056
+ YY_BREAK
1057
+ case 15:
1058
+ YY_RULE_SETUP
1059
+ #line 86 "./gecode/flatzinc/lexer.lxx"
1060
+ { return FZ_ANNOTATION; }
1061
+ YY_BREAK
1062
+ case 16:
1063
+ YY_RULE_SETUP
1064
+ #line 87 "./gecode/flatzinc/lexer.lxx"
1065
+ { return FZ_ANY; }
1066
+ YY_BREAK
1067
+ case 17:
1068
+ YY_RULE_SETUP
1069
+ #line 88 "./gecode/flatzinc/lexer.lxx"
1070
+ { return FZ_ARRAY; }
1071
+ YY_BREAK
1072
+ case 18:
1073
+ YY_RULE_SETUP
1074
+ #line 89 "./gecode/flatzinc/lexer.lxx"
1075
+ { return FZ_BOOL; }
1076
+ YY_BREAK
1077
+ case 19:
1078
+ YY_RULE_SETUP
1079
+ #line 90 "./gecode/flatzinc/lexer.lxx"
1080
+ { return FZ_CASE; }
1081
+ YY_BREAK
1082
+ case 20:
1083
+ YY_RULE_SETUP
1084
+ #line 91 "./gecode/flatzinc/lexer.lxx"
1085
+ { return FZ_CONSTRAINT; }
1086
+ YY_BREAK
1087
+ case 21:
1088
+ YY_RULE_SETUP
1089
+ #line 92 "./gecode/flatzinc/lexer.lxx"
1090
+ { return FZ_DEFAULT; }
1091
+ YY_BREAK
1092
+ case 22:
1093
+ YY_RULE_SETUP
1094
+ #line 93 "./gecode/flatzinc/lexer.lxx"
1095
+ { return FZ_ELSE; }
1096
+ YY_BREAK
1097
+ case 23:
1098
+ YY_RULE_SETUP
1099
+ #line 94 "./gecode/flatzinc/lexer.lxx"
1100
+ { return FZ_ELSEIF; }
1101
+ YY_BREAK
1102
+ case 24:
1103
+ YY_RULE_SETUP
1104
+ #line 95 "./gecode/flatzinc/lexer.lxx"
1105
+ { return FZ_ENDIF; }
1106
+ YY_BREAK
1107
+ case 25:
1108
+ YY_RULE_SETUP
1109
+ #line 96 "./gecode/flatzinc/lexer.lxx"
1110
+ { return FZ_ENUM; }
1111
+ YY_BREAK
1112
+ case 26:
1113
+ YY_RULE_SETUP
1114
+ #line 97 "./gecode/flatzinc/lexer.lxx"
1115
+ { return FZ_FLOAT; }
1116
+ YY_BREAK
1117
+ case 27:
1118
+ YY_RULE_SETUP
1119
+ #line 98 "./gecode/flatzinc/lexer.lxx"
1120
+ { return FZ_FUNCTION; }
1121
+ YY_BREAK
1122
+ case 28:
1123
+ YY_RULE_SETUP
1124
+ #line 99 "./gecode/flatzinc/lexer.lxx"
1125
+ { return FZ_IF; }
1126
+ YY_BREAK
1127
+ case 29:
1128
+ YY_RULE_SETUP
1129
+ #line 100 "./gecode/flatzinc/lexer.lxx"
1130
+ { return FZ_INCLUDE; }
1131
+ YY_BREAK
1132
+ case 30:
1133
+ YY_RULE_SETUP
1134
+ #line 101 "./gecode/flatzinc/lexer.lxx"
1135
+ { return FZ_INT; }
1136
+ YY_BREAK
1137
+ case 31:
1138
+ YY_RULE_SETUP
1139
+ #line 102 "./gecode/flatzinc/lexer.lxx"
1140
+ { return FZ_LET; }
1141
+ YY_BREAK
1142
+ case 32:
1143
+ YY_RULE_SETUP
1144
+ #line 103 "./gecode/flatzinc/lexer.lxx"
1145
+ { yylval->bValue = false; return FZ_MAXIMIZE; }
1146
+ YY_BREAK
1147
+ case 33:
1148
+ YY_RULE_SETUP
1149
+ #line 104 "./gecode/flatzinc/lexer.lxx"
1150
+ { yylval->bValue = true; return FZ_MINIMIZE; }
1151
+ YY_BREAK
1152
+ case 34:
1153
+ YY_RULE_SETUP
1154
+ #line 105 "./gecode/flatzinc/lexer.lxx"
1155
+ { return FZ_OF; }
1156
+ YY_BREAK
1157
+ case 35:
1158
+ YY_RULE_SETUP
1159
+ #line 106 "./gecode/flatzinc/lexer.lxx"
1160
+ { return FZ_SATISFY; }
1161
+ YY_BREAK
1162
+ case 36:
1163
+ YY_RULE_SETUP
1164
+ #line 107 "./gecode/flatzinc/lexer.lxx"
1165
+ { return FZ_OUTPUT; }
1166
+ YY_BREAK
1167
+ case 37:
1168
+ YY_RULE_SETUP
1169
+ #line 108 "./gecode/flatzinc/lexer.lxx"
1170
+ { yylval->bValue = false; return FZ_PAR; }
1171
+ YY_BREAK
1172
+ case 38:
1173
+ YY_RULE_SETUP
1174
+ #line 109 "./gecode/flatzinc/lexer.lxx"
1175
+ { return FZ_PREDICATE; }
1176
+ YY_BREAK
1177
+ case 39:
1178
+ YY_RULE_SETUP
1179
+ #line 110 "./gecode/flatzinc/lexer.lxx"
1180
+ { return FZ_RECORD; }
1181
+ YY_BREAK
1182
+ case 40:
1183
+ YY_RULE_SETUP
1184
+ #line 111 "./gecode/flatzinc/lexer.lxx"
1185
+ { return FZ_SET; }
1186
+ YY_BREAK
1187
+ case 41:
1188
+ YY_RULE_SETUP
1189
+ #line 112 "./gecode/flatzinc/lexer.lxx"
1190
+ { return FZ_SHOWCOND; }
1191
+ YY_BREAK
1192
+ case 42:
1193
+ YY_RULE_SETUP
1194
+ #line 113 "./gecode/flatzinc/lexer.lxx"
1195
+ { return FZ_SHOW; }
1196
+ YY_BREAK
1197
+ case 43:
1198
+ YY_RULE_SETUP
1199
+ #line 114 "./gecode/flatzinc/lexer.lxx"
1200
+ { return FZ_SOLVE; }
1201
+ YY_BREAK
1202
+ case 44:
1203
+ YY_RULE_SETUP
1204
+ #line 115 "./gecode/flatzinc/lexer.lxx"
1205
+ { return FZ_STRING; }
1206
+ YY_BREAK
1207
+ case 45:
1208
+ YY_RULE_SETUP
1209
+ #line 116 "./gecode/flatzinc/lexer.lxx"
1210
+ { return FZ_TEST; }
1211
+ YY_BREAK
1212
+ case 46:
1213
+ YY_RULE_SETUP
1214
+ #line 117 "./gecode/flatzinc/lexer.lxx"
1215
+ { return FZ_THEN; }
1216
+ YY_BREAK
1217
+ case 47:
1218
+ YY_RULE_SETUP
1219
+ #line 118 "./gecode/flatzinc/lexer.lxx"
1220
+ { return FZ_TUPLE; }
1221
+ YY_BREAK
1222
+ case 48:
1223
+ YY_RULE_SETUP
1224
+ #line 119 "./gecode/flatzinc/lexer.lxx"
1225
+ { return FZ_TYPE; }
1226
+ YY_BREAK
1227
+ case 49:
1228
+ YY_RULE_SETUP
1229
+ #line 120 "./gecode/flatzinc/lexer.lxx"
1230
+ { yylval->bValue = true; return FZ_VAR; }
1231
+ YY_BREAK
1232
+ case 50:
1233
+ YY_RULE_SETUP
1234
+ #line 121 "./gecode/flatzinc/lexer.lxx"
1235
+ { return FZ_VARIANT_RECORD; }
1236
+ YY_BREAK
1237
+ case 51:
1238
+ YY_RULE_SETUP
1239
+ #line 122 "./gecode/flatzinc/lexer.lxx"
1240
+ { return FZ_WHERE; }
1241
+ YY_BREAK
1242
+ case 52:
1243
+ YY_RULE_SETUP
1244
+ #line 123 "./gecode/flatzinc/lexer.lxx"
1245
+ { yylval->sValue = strdup(yytext); return FZ_ID; }
1246
+ YY_BREAK
1247
+ case 53:
1248
+ YY_RULE_SETUP
1249
+ #line 124 "./gecode/flatzinc/lexer.lxx"
1250
+ { yylval->sValue = strdup(yytext); return FZ_U_ID; }
1251
+ YY_BREAK
1252
+ case 54:
1253
+ YY_RULE_SETUP
1254
+ #line 125 "./gecode/flatzinc/lexer.lxx"
1255
+ {
1256
+ yylval->sValue = strdup(yytext+1);
1257
+ yylval->sValue[strlen(yytext)-2] = 0;
1258
+ return FZ_STRING_LIT; }
1259
+ YY_BREAK
1260
+ case 55:
1261
+ YY_RULE_SETUP
1262
+ #line 129 "./gecode/flatzinc/lexer.lxx"
1263
+ { yyerror("Unknown character"); }
1264
+ YY_BREAK
1265
+ case 56:
1266
+ YY_RULE_SETUP
1267
+ #line 130 "./gecode/flatzinc/lexer.lxx"
1268
+ ECHO;
1269
+ YY_BREAK
1270
+ #line 1271 "gecode/flatzinc/lexer.yy.cpp"
1271
+ case YY_STATE_EOF(INITIAL):
1272
+ yyterminate();
1273
+
1274
+ case YY_END_OF_BUFFER:
1275
+ {
1276
+ /* Amount of text matched not including the EOB char. */
1277
+ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1278
+
1279
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
1280
+ *yy_cp = yyg->yy_hold_char;
1281
+ YY_RESTORE_YY_MORE_OFFSET
1282
+
1283
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1284
+ {
1285
+ /* We're scanning a new file or input source. It's
1286
+ * possible that this happened because the user
1287
+ * just pointed yyin at a new source and called
1288
+ * yylex(). If so, then we have to assure
1289
+ * consistency between YY_CURRENT_BUFFER and our
1290
+ * globals. Here is the right place to do so, because
1291
+ * this is the first action (other than possibly a
1292
+ * back-up) that will match for the new input source.
1293
+ */
1294
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1295
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1296
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1297
+ }
1298
+
1299
+ /* Note that here we test for yy_c_buf_p "<=" to the position
1300
+ * of the first EOB in the buffer, since yy_c_buf_p will
1301
+ * already have been incremented past the NUL character
1302
+ * (since all states make transitions on EOB to the
1303
+ * end-of-buffer state). Contrast this with the test
1304
+ * in input().
1305
+ */
1306
+ if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1307
+ { /* This was really a NUL. */
1308
+ yy_state_type yy_next_state;
1309
+
1310
+ yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1311
+
1312
+ yy_current_state = yy_get_previous_state( yyscanner );
1313
+
1314
+ /* Okay, we're now positioned to make the NUL
1315
+ * transition. We couldn't have
1316
+ * yy_get_previous_state() go ahead and do it
1317
+ * for us because it doesn't know how to deal
1318
+ * with the possibility of jamming (and we don't
1319
+ * want to build jamming into it because then it
1320
+ * will run more slowly).
1321
+ */
1322
+
1323
+ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1324
+
1325
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1326
+
1327
+ if ( yy_next_state )
1328
+ {
1329
+ /* Consume the NUL. */
1330
+ yy_cp = ++yyg->yy_c_buf_p;
1331
+ yy_current_state = yy_next_state;
1332
+ goto yy_match;
1333
+ }
1334
+
1335
+ else
1336
+ {
1337
+ yy_cp = yyg->yy_c_buf_p;
1338
+ goto yy_find_action;
1339
+ }
1340
+ }
1341
+
1342
+ else switch ( yy_get_next_buffer( yyscanner ) )
1343
+ {
1344
+ case EOB_ACT_END_OF_FILE:
1345
+ {
1346
+ yyg->yy_did_buffer_switch_on_eof = 0;
1347
+
1348
+ if ( yywrap(yyscanner ) )
1349
+ {
1350
+ /* Note: because we've taken care in
1351
+ * yy_get_next_buffer() to have set up
1352
+ * yytext, we can now set up
1353
+ * yy_c_buf_p so that if some total
1354
+ * hoser (like flex itself) wants to
1355
+ * call the scanner after we return the
1356
+ * YY_NULL, it'll still work - another
1357
+ * YY_NULL will get returned.
1358
+ */
1359
+ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1360
+
1361
+ yy_act = YY_STATE_EOF(YY_START);
1362
+ goto do_action;
1363
+ }
1364
+
1365
+ else
1366
+ {
1367
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
1368
+ YY_NEW_FILE;
1369
+ }
1370
+ break;
1371
+ }
1372
+
1373
+ case EOB_ACT_CONTINUE_SCAN:
1374
+ yyg->yy_c_buf_p =
1375
+ yyg->yytext_ptr + yy_amount_of_matched_text;
1376
+
1377
+ yy_current_state = yy_get_previous_state( yyscanner );
1378
+
1379
+ yy_cp = yyg->yy_c_buf_p;
1380
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1381
+ goto yy_match;
1382
+
1383
+ case EOB_ACT_LAST_MATCH:
1384
+ yyg->yy_c_buf_p =
1385
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1386
+
1387
+ yy_current_state = yy_get_previous_state( yyscanner );
1388
+
1389
+ yy_cp = yyg->yy_c_buf_p;
1390
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1391
+ goto yy_find_action;
1392
+ }
1393
+ break;
1394
+ }
1395
+
1396
+ default:
1397
+ YY_FATAL_ERROR(
1398
+ "fatal flex scanner internal error--no action found" );
1399
+ } /* end of action switch */
1400
+ } /* end of scanning one token */
1401
+ } /* end of yylex */
1402
+
1403
+ /* yy_get_next_buffer - try to read in a new buffer
1404
+ *
1405
+ * Returns a code representing an action:
1406
+ * EOB_ACT_LAST_MATCH -
1407
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1408
+ * EOB_ACT_END_OF_FILE - end of file
1409
+ */
1410
+ static int yy_get_next_buffer (yyscan_t yyscanner)
1411
+ {
1412
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1413
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1414
+ register char *source = yyg->yytext_ptr;
1415
+ register int number_to_move, i;
1416
+ int ret_val;
1417
+
1418
+ if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1419
+ YY_FATAL_ERROR(
1420
+ "fatal flex scanner internal error--end of buffer missed" );
1421
+
1422
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1423
+ { /* Don't try to fill the buffer, so this is an EOF. */
1424
+ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1425
+ {
1426
+ /* We matched a single character, the EOB, so
1427
+ * treat this as a final EOF.
1428
+ */
1429
+ return EOB_ACT_END_OF_FILE;
1430
+ }
1431
+
1432
+ else
1433
+ {
1434
+ /* We matched some text prior to the EOB, first
1435
+ * process it.
1436
+ */
1437
+ return EOB_ACT_LAST_MATCH;
1438
+ }
1439
+ }
1440
+
1441
+ /* Try to read more data. */
1442
+
1443
+ /* First move last chars to start of buffer. */
1444
+ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1445
+
1446
+ for ( i = 0; i < number_to_move; ++i )
1447
+ *(dest++) = *(source++);
1448
+
1449
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1450
+ /* don't do the read, it's not guaranteed to return an EOF,
1451
+ * just force an EOF
1452
+ */
1453
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1454
+
1455
+ else
1456
+ {
1457
+ int num_to_read =
1458
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1459
+
1460
+ while ( num_to_read <= 0 )
1461
+ { /* Not enough room in the buffer - grow it. */
1462
+
1463
+ /* just a shorter name for the current buffer */
1464
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1465
+
1466
+ int yy_c_buf_p_offset =
1467
+ (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1468
+
1469
+ if ( b->yy_is_our_buffer )
1470
+ {
1471
+ int new_size = b->yy_buf_size * 2;
1472
+
1473
+ if ( new_size <= 0 )
1474
+ b->yy_buf_size += b->yy_buf_size / 8;
1475
+ else
1476
+ b->yy_buf_size *= 2;
1477
+
1478
+ b->yy_ch_buf = (char *)
1479
+ /* Include room in for 2 EOB chars. */
1480
+ yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1481
+ }
1482
+ else
1483
+ /* Can't grow it, we don't own it. */
1484
+ b->yy_ch_buf = 0;
1485
+
1486
+ if ( ! b->yy_ch_buf )
1487
+ YY_FATAL_ERROR(
1488
+ "fatal error - scanner input buffer overflow" );
1489
+
1490
+ yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1491
+
1492
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1493
+ number_to_move - 1;
1494
+
1495
+ }
1496
+
1497
+ if ( num_to_read > YY_READ_BUF_SIZE )
1498
+ num_to_read = YY_READ_BUF_SIZE;
1499
+
1500
+ /* Read in more data. */
1501
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1502
+ yyg->yy_n_chars, (size_t) num_to_read );
1503
+
1504
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1505
+ }
1506
+
1507
+ if ( yyg->yy_n_chars == 0 )
1508
+ {
1509
+ if ( number_to_move == YY_MORE_ADJ )
1510
+ {
1511
+ ret_val = EOB_ACT_END_OF_FILE;
1512
+ yyrestart(yyin ,yyscanner);
1513
+ }
1514
+
1515
+ else
1516
+ {
1517
+ ret_val = EOB_ACT_LAST_MATCH;
1518
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1519
+ YY_BUFFER_EOF_PENDING;
1520
+ }
1521
+ }
1522
+
1523
+ else
1524
+ ret_val = EOB_ACT_CONTINUE_SCAN;
1525
+
1526
+ if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1527
+ /* Extend the array by 50%, plus the number we really need. */
1528
+ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1529
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
1530
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1531
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1532
+ }
1533
+
1534
+ yyg->yy_n_chars += number_to_move;
1535
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1536
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1537
+
1538
+ yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1539
+
1540
+ return ret_val;
1541
+ }
1542
+
1543
+ /* yy_get_previous_state - get the state just before the EOB char was reached */
1544
+
1545
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1546
+ {
1547
+ register yy_state_type yy_current_state;
1548
+ register char *yy_cp;
1549
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1550
+
1551
+ yy_current_state = yyg->yy_start;
1552
+
1553
+ for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1554
+ {
1555
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1556
+ if ( yy_accept[yy_current_state] )
1557
+ {
1558
+ yyg->yy_last_accepting_state = yy_current_state;
1559
+ yyg->yy_last_accepting_cpos = yy_cp;
1560
+ }
1561
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1562
+ {
1563
+ yy_current_state = (int) yy_def[yy_current_state];
1564
+ if ( yy_current_state >= 221 )
1565
+ yy_c = yy_meta[(unsigned int) yy_c];
1566
+ }
1567
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1568
+ }
1569
+
1570
+ return yy_current_state;
1571
+ }
1572
+
1573
+ /* yy_try_NUL_trans - try to make a transition on the NUL character
1574
+ *
1575
+ * synopsis
1576
+ * next_state = yy_try_NUL_trans( current_state );
1577
+ */
1578
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1579
+ {
1580
+ register int yy_is_jam;
1581
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
1582
+ register char *yy_cp = yyg->yy_c_buf_p;
1583
+
1584
+ register YY_CHAR yy_c = 1;
1585
+ if ( yy_accept[yy_current_state] )
1586
+ {
1587
+ yyg->yy_last_accepting_state = yy_current_state;
1588
+ yyg->yy_last_accepting_cpos = yy_cp;
1589
+ }
1590
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1591
+ {
1592
+ yy_current_state = (int) yy_def[yy_current_state];
1593
+ if ( yy_current_state >= 221 )
1594
+ yy_c = yy_meta[(unsigned int) yy_c];
1595
+ }
1596
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1597
+ yy_is_jam = (yy_current_state == 220);
1598
+
1599
+ return yy_is_jam ? 0 : yy_current_state;
1600
+ }
1601
+
1602
+ static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
1603
+ {
1604
+ register char *yy_cp;
1605
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1606
+
1607
+ yy_cp = yyg->yy_c_buf_p;
1608
+
1609
+ /* undo effects of setting up yytext */
1610
+ *yy_cp = yyg->yy_hold_char;
1611
+
1612
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1613
+ { /* need to shift things up to make room */
1614
+ /* +2 for EOB chars. */
1615
+ register int number_to_move = yyg->yy_n_chars + 2;
1616
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1617
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1618
+ register char *source =
1619
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1620
+
1621
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1622
+ *--dest = *--source;
1623
+
1624
+ yy_cp += (int) (dest - source);
1625
+ yy_bp += (int) (dest - source);
1626
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1627
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1628
+
1629
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1630
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
1631
+ }
1632
+
1633
+ *--yy_cp = (char) c;
1634
+
1635
+ if ( c == '\n' ){
1636
+ --yylineno;
1637
+ }
1638
+
1639
+ yyg->yytext_ptr = yy_bp;
1640
+ yyg->yy_hold_char = *yy_cp;
1641
+ yyg->yy_c_buf_p = yy_cp;
1642
+ }
1643
+
1644
+ #ifndef YY_NO_INPUT
1645
+ #ifdef __cplusplus
1646
+ static int yyinput (yyscan_t yyscanner)
1647
+ #else
1648
+ static int input (yyscan_t yyscanner)
1649
+ #endif
1650
+
1651
+ {
1652
+ int c;
1653
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1654
+
1655
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
1656
+
1657
+ if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1658
+ {
1659
+ /* yy_c_buf_p now points to the character we want to return.
1660
+ * If this occurs *before* the EOB characters, then it's a
1661
+ * valid NUL; if not, then we've hit the end of the buffer.
1662
+ */
1663
+ if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1664
+ /* This was really a NUL. */
1665
+ *yyg->yy_c_buf_p = '\0';
1666
+
1667
+ else
1668
+ { /* need more input */
1669
+ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1670
+ ++yyg->yy_c_buf_p;
1671
+
1672
+ switch ( yy_get_next_buffer( yyscanner ) )
1673
+ {
1674
+ case EOB_ACT_LAST_MATCH:
1675
+ /* This happens because yy_g_n_b()
1676
+ * sees that we've accumulated a
1677
+ * token and flags that we need to
1678
+ * try matching the token before
1679
+ * proceeding. But for input(),
1680
+ * there's no matching to consider.
1681
+ * So convert the EOB_ACT_LAST_MATCH
1682
+ * to EOB_ACT_END_OF_FILE.
1683
+ */
1684
+
1685
+ /* Reset buffer status. */
1686
+ yyrestart(yyin ,yyscanner);
1687
+
1688
+ /*FALLTHROUGH*/
1689
+
1690
+ case EOB_ACT_END_OF_FILE:
1691
+ {
1692
+ if ( yywrap(yyscanner ) )
1693
+ return EOF;
1694
+
1695
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
1696
+ YY_NEW_FILE;
1697
+ #ifdef __cplusplus
1698
+ return yyinput(yyscanner);
1699
+ #else
1700
+ return input(yyscanner);
1701
+ #endif
1702
+ }
1703
+
1704
+ case EOB_ACT_CONTINUE_SCAN:
1705
+ yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1706
+ break;
1707
+ }
1708
+ }
1709
+ }
1710
+
1711
+ c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
1712
+ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
1713
+ yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1714
+
1715
+ if ( c == '\n' )
1716
+
1717
+ do{ yylineno++;
1718
+ yycolumn=0;
1719
+ }while(0)
1720
+ ;
1721
+
1722
+ return c;
1723
+ }
1724
+ #endif /* ifndef YY_NO_INPUT */
1725
+
1726
+ /** Immediately switch to a different input stream.
1727
+ * @param input_file A readable stream.
1728
+ * @param yyscanner The scanner object.
1729
+ * @note This function does not reset the start condition to @c INITIAL .
1730
+ */
1731
+ void yyrestart (FILE * input_file , yyscan_t yyscanner)
1732
+ {
1733
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1734
+
1735
+ if ( ! YY_CURRENT_BUFFER ){
1736
+ yyensure_buffer_stack (yyscanner);
1737
+ YY_CURRENT_BUFFER_LVALUE =
1738
+ yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1739
+ }
1740
+
1741
+ yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1742
+ yy_load_buffer_state(yyscanner );
1743
+ }
1744
+
1745
+ /** Switch to a different input buffer.
1746
+ * @param new_buffer The new input buffer.
1747
+ * @param yyscanner The scanner object.
1748
+ */
1749
+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1750
+ {
1751
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1752
+
1753
+ /* TODO. We should be able to replace this entire function body
1754
+ * with
1755
+ * yypop_buffer_state();
1756
+ * yypush_buffer_state(new_buffer);
1757
+ */
1758
+ yyensure_buffer_stack (yyscanner);
1759
+ if ( YY_CURRENT_BUFFER == new_buffer )
1760
+ return;
1761
+
1762
+ if ( YY_CURRENT_BUFFER )
1763
+ {
1764
+ /* Flush out information for old buffer. */
1765
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
1766
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1767
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1768
+ }
1769
+
1770
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
1771
+ yy_load_buffer_state(yyscanner );
1772
+
1773
+ /* We don't actually know whether we did this switch during
1774
+ * EOF (yywrap()) processing, but the only time this flag
1775
+ * is looked at is after yywrap() is called, so it's safe
1776
+ * to go ahead and always set it.
1777
+ */
1778
+ yyg->yy_did_buffer_switch_on_eof = 1;
1779
+ }
1780
+
1781
+ static void yy_load_buffer_state (yyscan_t yyscanner)
1782
+ {
1783
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1784
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1785
+ yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1786
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1787
+ yyg->yy_hold_char = *yyg->yy_c_buf_p;
1788
+ }
1789
+
1790
+ /** Allocate and initialize an input buffer state.
1791
+ * @param file A readable stream.
1792
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1793
+ * @param yyscanner The scanner object.
1794
+ * @return the allocated buffer state.
1795
+ */
1796
+ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
1797
+ {
1798
+ YY_BUFFER_STATE b;
1799
+
1800
+ b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
1801
+ if ( ! b )
1802
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1803
+
1804
+ b->yy_buf_size = size;
1805
+
1806
+ /* yy_ch_buf has to be 2 characters longer than the size given because
1807
+ * we need to put in 2 end-of-buffer characters.
1808
+ */
1809
+ b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ,yyscanner );
1810
+ if ( ! b->yy_ch_buf )
1811
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1812
+
1813
+ b->yy_is_our_buffer = 1;
1814
+
1815
+ yy_init_buffer(b,file ,yyscanner);
1816
+
1817
+ return b;
1818
+ }
1819
+
1820
+ /** Destroy the buffer.
1821
+ * @param b a buffer created with yy_create_buffer()
1822
+ * @param yyscanner The scanner object.
1823
+ */
1824
+ void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1825
+ {
1826
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1827
+
1828
+ if ( ! b )
1829
+ return;
1830
+
1831
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1832
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1833
+
1834
+ if ( b->yy_is_our_buffer )
1835
+ yyfree((void *) b->yy_ch_buf ,yyscanner );
1836
+
1837
+ yyfree((void *) b ,yyscanner );
1838
+ }
1839
+
1840
+ #ifndef __cplusplus
1841
+ extern int isatty (int );
1842
+ #endif /* __cplusplus */
1843
+
1844
+ /* Initializes or reinitializes a buffer.
1845
+ * This function is sometimes called more than once on the same buffer,
1846
+ * such as during a yyrestart() or at EOF.
1847
+ */
1848
+ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
1849
+
1850
+ {
1851
+ int oerrno = errno;
1852
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1853
+
1854
+ yy_flush_buffer(b ,yyscanner);
1855
+
1856
+ b->yy_input_file = file;
1857
+ b->yy_fill_buffer = 1;
1858
+
1859
+ /* If b is the current buffer, then yy_init_buffer was _probably_
1860
+ * called from yyrestart() or through yy_get_next_buffer.
1861
+ * In that case, we don't want to reset the lineno or column.
1862
+ */
1863
+ if (b != YY_CURRENT_BUFFER){
1864
+ b->yy_bs_lineno = 1;
1865
+ b->yy_bs_column = 0;
1866
+ }
1867
+
1868
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1869
+
1870
+ errno = oerrno;
1871
+ }
1872
+
1873
+ /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1874
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1875
+ * @param yyscanner The scanner object.
1876
+ */
1877
+ void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1878
+ {
1879
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1880
+ if ( ! b )
1881
+ return;
1882
+
1883
+ b->yy_n_chars = 0;
1884
+
1885
+ /* We always need two end-of-buffer characters. The first causes
1886
+ * a transition to the end-of-buffer state. The second causes
1887
+ * a jam in that state.
1888
+ */
1889
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1890
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1891
+
1892
+ b->yy_buf_pos = &b->yy_ch_buf[0];
1893
+
1894
+ b->yy_at_bol = 1;
1895
+ b->yy_buffer_status = YY_BUFFER_NEW;
1896
+
1897
+ if ( b == YY_CURRENT_BUFFER )
1898
+ yy_load_buffer_state(yyscanner );
1899
+ }
1900
+
1901
+ /** Pushes the new state onto the stack. The new state becomes
1902
+ * the current state. This function will allocate the stack
1903
+ * if necessary.
1904
+ * @param new_buffer The new state.
1905
+ * @param yyscanner The scanner object.
1906
+ */
1907
+ void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1908
+ {
1909
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1910
+ if (new_buffer == NULL)
1911
+ return;
1912
+
1913
+ yyensure_buffer_stack(yyscanner);
1914
+
1915
+ /* This block is copied from yy_switch_to_buffer. */
1916
+ if ( YY_CURRENT_BUFFER )
1917
+ {
1918
+ /* Flush out information for old buffer. */
1919
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
1920
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1921
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1922
+ }
1923
+
1924
+ /* Only push if top exists. Otherwise, replace top. */
1925
+ if (YY_CURRENT_BUFFER)
1926
+ yyg->yy_buffer_stack_top++;
1927
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
1928
+
1929
+ /* copied from yy_switch_to_buffer. */
1930
+ yy_load_buffer_state(yyscanner );
1931
+ yyg->yy_did_buffer_switch_on_eof = 1;
1932
+ }
1933
+
1934
+ /** Removes and deletes the top of the stack, if present.
1935
+ * The next element becomes the new top.
1936
+ * @param yyscanner The scanner object.
1937
+ */
1938
+ void yypop_buffer_state (yyscan_t yyscanner)
1939
+ {
1940
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1941
+ if (!YY_CURRENT_BUFFER)
1942
+ return;
1943
+
1944
+ yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
1945
+ YY_CURRENT_BUFFER_LVALUE = NULL;
1946
+ if (yyg->yy_buffer_stack_top > 0)
1947
+ --yyg->yy_buffer_stack_top;
1948
+
1949
+ if (YY_CURRENT_BUFFER) {
1950
+ yy_load_buffer_state(yyscanner );
1951
+ yyg->yy_did_buffer_switch_on_eof = 1;
1952
+ }
1953
+ }
1954
+
1955
+ /* Allocates the stack if it does not exist.
1956
+ * Guarantees space for at least one push.
1957
+ */
1958
+ static void yyensure_buffer_stack (yyscan_t yyscanner)
1959
+ {
1960
+ int num_to_alloc;
1961
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1962
+
1963
+ if (!yyg->yy_buffer_stack) {
1964
+
1965
+ /* First allocation is just for 2 elements, since we don't know if this
1966
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
1967
+ * immediate realloc on the next call.
1968
+ */
1969
+ num_to_alloc = 1;
1970
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
1971
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
1972
+ , yyscanner);
1973
+ if ( ! yyg->yy_buffer_stack )
1974
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1975
+
1976
+ memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1977
+
1978
+ yyg->yy_buffer_stack_max = num_to_alloc;
1979
+ yyg->yy_buffer_stack_top = 0;
1980
+ return;
1981
+ }
1982
+
1983
+ if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
1984
+
1985
+ /* Increase the buffer to prepare for a possible push. */
1986
+ int grow_size = 8 /* arbitrary grow size */;
1987
+
1988
+ num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
1989
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
1990
+ (yyg->yy_buffer_stack,
1991
+ num_to_alloc * sizeof(struct yy_buffer_state*)
1992
+ , yyscanner);
1993
+ if ( ! yyg->yy_buffer_stack )
1994
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1995
+
1996
+ /* zero only the new slots.*/
1997
+ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
1998
+ yyg->yy_buffer_stack_max = num_to_alloc;
1999
+ }
2000
+ }
2001
+
2002
+ /** Setup the input buffer state to scan directly from a user-specified character buffer.
2003
+ * @param base the character buffer
2004
+ * @param size the size in bytes of the character buffer
2005
+ * @param yyscanner The scanner object.
2006
+ * @return the newly allocated buffer state object.
2007
+ */
2008
+ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2009
+ {
2010
+ YY_BUFFER_STATE b;
2011
+
2012
+ if ( size < 2 ||
2013
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
2014
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
2015
+ /* They forgot to leave room for the EOB's. */
2016
+ return 0;
2017
+
2018
+ b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2019
+ if ( ! b )
2020
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2021
+
2022
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2023
+ b->yy_buf_pos = b->yy_ch_buf = base;
2024
+ b->yy_is_our_buffer = 0;
2025
+ b->yy_input_file = 0;
2026
+ b->yy_n_chars = b->yy_buf_size;
2027
+ b->yy_is_interactive = 0;
2028
+ b->yy_at_bol = 1;
2029
+ b->yy_fill_buffer = 0;
2030
+ b->yy_buffer_status = YY_BUFFER_NEW;
2031
+
2032
+ yy_switch_to_buffer(b ,yyscanner );
2033
+
2034
+ return b;
2035
+ }
2036
+
2037
+ /** Setup the input buffer state to scan a string. The next call to yylex() will
2038
+ * scan from a @e copy of @a str.
2039
+ * @param yystr a NUL-terminated string to scan
2040
+ * @param yyscanner The scanner object.
2041
+ * @return the newly allocated buffer state object.
2042
+ * @note If you want to scan bytes that may contain NUL values, then use
2043
+ * yy_scan_bytes() instead.
2044
+ */
2045
+ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
2046
+ {
2047
+
2048
+ return yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
2049
+ }
2050
+
2051
+ /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2052
+ * scan from a @e copy of @a bytes.
2053
+ * @param bytes the byte buffer to scan
2054
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
2055
+ * @param yyscanner The scanner object.
2056
+ * @return the newly allocated buffer state object.
2057
+ */
2058
+ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
2059
+ {
2060
+ YY_BUFFER_STATE b;
2061
+ char *buf;
2062
+ yy_size_t n;
2063
+ int i;
2064
+
2065
+ /* Get memory for full buffer, including space for trailing EOB's. */
2066
+ n = _yybytes_len + 2;
2067
+ buf = (char *) yyalloc(n ,yyscanner );
2068
+ if ( ! buf )
2069
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2070
+
2071
+ for ( i = 0; i < _yybytes_len; ++i )
2072
+ buf[i] = yybytes[i];
2073
+
2074
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2075
+
2076
+ b = yy_scan_buffer(buf,n ,yyscanner);
2077
+ if ( ! b )
2078
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2079
+
2080
+ /* It's okay to grow etc. this buffer, and we should throw it
2081
+ * away when we're done.
2082
+ */
2083
+ b->yy_is_our_buffer = 1;
2084
+
2085
+ return b;
2086
+ }
2087
+
2088
+ #ifndef YY_EXIT_FAILURE
2089
+ #define YY_EXIT_FAILURE 2
2090
+ #endif
2091
+
2092
+ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2093
+ {
2094
+ (void) fprintf( stderr, "%s\n", msg );
2095
+ exit( YY_EXIT_FAILURE );
2096
+ }
2097
+
2098
+ /* Redefine yyless() so it works in section 3 code. */
2099
+
2100
+ #undef yyless
2101
+ #define yyless(n) \
2102
+ do \
2103
+ { \
2104
+ /* Undo effects of setting up yytext. */ \
2105
+ int yyless_macro_arg = (n); \
2106
+ YY_LESS_LINENO(yyless_macro_arg);\
2107
+ yytext[yyleng] = yyg->yy_hold_char; \
2108
+ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2109
+ yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2110
+ *yyg->yy_c_buf_p = '\0'; \
2111
+ yyleng = yyless_macro_arg; \
2112
+ } \
2113
+ while ( 0 )
2114
+
2115
+ /* Accessor methods (get/set functions) to struct members. */
2116
+
2117
+ /** Get the user-defined data for this scanner.
2118
+ * @param yyscanner The scanner object.
2119
+ */
2120
+ YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner)
2121
+ {
2122
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2123
+ return yyextra;
2124
+ }
2125
+
2126
+ /** Get the current line number.
2127
+ * @param yyscanner The scanner object.
2128
+ */
2129
+ int yyget_lineno (yyscan_t yyscanner)
2130
+ {
2131
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2132
+
2133
+ if (! YY_CURRENT_BUFFER)
2134
+ return 0;
2135
+
2136
+ return yylineno;
2137
+ }
2138
+
2139
+ /** Get the current column number.
2140
+ * @param yyscanner The scanner object.
2141
+ */
2142
+ int yyget_column (yyscan_t yyscanner)
2143
+ {
2144
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2145
+
2146
+ if (! YY_CURRENT_BUFFER)
2147
+ return 0;
2148
+
2149
+ return yycolumn;
2150
+ }
2151
+
2152
+ /** Get the input stream.
2153
+ * @param yyscanner The scanner object.
2154
+ */
2155
+ FILE *yyget_in (yyscan_t yyscanner)
2156
+ {
2157
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2158
+ return yyin;
2159
+ }
2160
+
2161
+ /** Get the output stream.
2162
+ * @param yyscanner The scanner object.
2163
+ */
2164
+ FILE *yyget_out (yyscan_t yyscanner)
2165
+ {
2166
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2167
+ return yyout;
2168
+ }
2169
+
2170
+ /** Get the length of the current token.
2171
+ * @param yyscanner The scanner object.
2172
+ */
2173
+ int yyget_leng (yyscan_t yyscanner)
2174
+ {
2175
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2176
+ return yyleng;
2177
+ }
2178
+
2179
+ /** Get the current token.
2180
+ * @param yyscanner The scanner object.
2181
+ */
2182
+
2183
+ char *yyget_text (yyscan_t yyscanner)
2184
+ {
2185
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2186
+ return yytext;
2187
+ }
2188
+
2189
+ /** Set the user-defined data. This data is never touched by the scanner.
2190
+ * @param user_defined The data to be associated with this scanner.
2191
+ * @param yyscanner The scanner object.
2192
+ */
2193
+ void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2194
+ {
2195
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2196
+ yyextra = user_defined ;
2197
+ }
2198
+
2199
+ /** Set the current line number.
2200
+ * @param line_number
2201
+ * @param yyscanner The scanner object.
2202
+ */
2203
+ void yyset_lineno (int line_number , yyscan_t yyscanner)
2204
+ {
2205
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2206
+
2207
+ /* lineno is only valid if an input buffer exists. */
2208
+ if (! YY_CURRENT_BUFFER )
2209
+ yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner);
2210
+
2211
+ yylineno = line_number;
2212
+ }
2213
+
2214
+ /** Set the current column.
2215
+ * @param line_number
2216
+ * @param yyscanner The scanner object.
2217
+ */
2218
+ void yyset_column (int column_no , yyscan_t yyscanner)
2219
+ {
2220
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2221
+
2222
+ /* column is only valid if an input buffer exists. */
2223
+ if (! YY_CURRENT_BUFFER )
2224
+ yy_fatal_error( "yyset_column called with no buffer" , yyscanner);
2225
+
2226
+ yycolumn = column_no;
2227
+ }
2228
+
2229
+ /** Set the input stream. This does not discard the current
2230
+ * input buffer.
2231
+ * @param in_str A readable stream.
2232
+ * @param yyscanner The scanner object.
2233
+ * @see yy_switch_to_buffer
2234
+ */
2235
+ void yyset_in (FILE * in_str , yyscan_t yyscanner)
2236
+ {
2237
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2238
+ yyin = in_str ;
2239
+ }
2240
+
2241
+ void yyset_out (FILE * out_str , yyscan_t yyscanner)
2242
+ {
2243
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2244
+ yyout = out_str ;
2245
+ }
2246
+
2247
+ int yyget_debug (yyscan_t yyscanner)
2248
+ {
2249
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2250
+ return yy_flex_debug;
2251
+ }
2252
+
2253
+ void yyset_debug (int bdebug , yyscan_t yyscanner)
2254
+ {
2255
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2256
+ yy_flex_debug = bdebug ;
2257
+ }
2258
+
2259
+ /* Accessor methods for yylval and yylloc */
2260
+
2261
+ YYSTYPE * yyget_lval (yyscan_t yyscanner)
2262
+ {
2263
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2264
+ return yylval;
2265
+ }
2266
+
2267
+ void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2268
+ {
2269
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2270
+ yylval = yylval_param;
2271
+ }
2272
+
2273
+ /* User-visible API */
2274
+
2275
+ /* yylex_init is special because it creates the scanner itself, so it is
2276
+ * the ONLY reentrant function that doesn't take the scanner as the last argument.
2277
+ * That's why we explicitly handle the declaration, instead of using our macros.
2278
+ */
2279
+
2280
+ int yylex_init(yyscan_t* ptr_yy_globals)
2281
+
2282
+ {
2283
+ if (ptr_yy_globals == NULL){
2284
+ errno = EINVAL;
2285
+ return 1;
2286
+ }
2287
+
2288
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
2289
+
2290
+ if (*ptr_yy_globals == NULL){
2291
+ errno = ENOMEM;
2292
+ return 1;
2293
+ }
2294
+
2295
+ /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2296
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2297
+
2298
+ return yy_init_globals ( *ptr_yy_globals );
2299
+ }
2300
+
2301
+ /* yylex_init_extra has the same functionality as yylex_init, but follows the
2302
+ * convention of taking the scanner as the last argument. Note however, that
2303
+ * this is a *pointer* to a scanner, as it will be allocated by this call (and
2304
+ * is the reason, too, why this function also must handle its own declaration).
2305
+ * The user defined value in the first argument will be available to yyalloc in
2306
+ * the yyextra field.
2307
+ */
2308
+
2309
+ int yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2310
+
2311
+ {
2312
+ struct yyguts_t dummy_yyguts;
2313
+
2314
+ yyset_extra (yy_user_defined, &dummy_yyguts);
2315
+
2316
+ if (ptr_yy_globals == NULL){
2317
+ errno = EINVAL;
2318
+ return 1;
2319
+ }
2320
+
2321
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2322
+
2323
+ if (*ptr_yy_globals == NULL){
2324
+ errno = ENOMEM;
2325
+ return 1;
2326
+ }
2327
+
2328
+ /* By setting to 0xAA, we expose bugs in
2329
+ yy_init_globals. Leave at 0x00 for releases. */
2330
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2331
+
2332
+ yyset_extra (yy_user_defined, *ptr_yy_globals);
2333
+
2334
+ return yy_init_globals ( *ptr_yy_globals );
2335
+ }
2336
+
2337
+ static int yy_init_globals (yyscan_t yyscanner)
2338
+ {
2339
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2340
+ /* Initialization is the same as for the non-reentrant scanner.
2341
+ * This function is called from yylex_destroy(), so don't allocate here.
2342
+ */
2343
+
2344
+ yyg->yy_buffer_stack = 0;
2345
+ yyg->yy_buffer_stack_top = 0;
2346
+ yyg->yy_buffer_stack_max = 0;
2347
+ yyg->yy_c_buf_p = (char *) 0;
2348
+ yyg->yy_init = 0;
2349
+ yyg->yy_start = 0;
2350
+
2351
+ yyg->yy_start_stack_ptr = 0;
2352
+ yyg->yy_start_stack_depth = 0;
2353
+ yyg->yy_start_stack = NULL;
2354
+
2355
+ /* Defined in main.c */
2356
+ #ifdef YY_STDINIT
2357
+ yyin = stdin;
2358
+ yyout = stdout;
2359
+ #else
2360
+ yyin = (FILE *) 0;
2361
+ yyout = (FILE *) 0;
2362
+ #endif
2363
+
2364
+ /* For future reference: Set errno on error, since we are called by
2365
+ * yylex_init()
2366
+ */
2367
+ return 0;
2368
+ }
2369
+
2370
+ /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2371
+ int yylex_destroy (yyscan_t yyscanner)
2372
+ {
2373
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2374
+
2375
+ /* Pop the buffer stack, destroying each element. */
2376
+ while(YY_CURRENT_BUFFER){
2377
+ yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2378
+ YY_CURRENT_BUFFER_LVALUE = NULL;
2379
+ yypop_buffer_state(yyscanner);
2380
+ }
2381
+
2382
+ /* Destroy the stack itself. */
2383
+ yyfree(yyg->yy_buffer_stack ,yyscanner);
2384
+ yyg->yy_buffer_stack = NULL;
2385
+
2386
+ /* Destroy the start condition stack. */
2387
+ yyfree(yyg->yy_start_stack ,yyscanner );
2388
+ yyg->yy_start_stack = NULL;
2389
+
2390
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
2391
+ * yylex() is called, initialization will occur. */
2392
+ yy_init_globals( yyscanner);
2393
+
2394
+ /* Destroy the main struct (reentrant only). */
2395
+ yyfree ( yyscanner , yyscanner );
2396
+ yyscanner = NULL;
2397
+ return 0;
2398
+ }
2399
+
2400
+ /*
2401
+ * Internal utility routines.
2402
+ */
2403
+
2404
+ #ifndef yytext_ptr
2405
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
2406
+ {
2407
+ register int i;
2408
+ for ( i = 0; i < n; ++i )
2409
+ s1[i] = s2[i];
2410
+ }
2411
+ #endif
2412
+
2413
+ #ifdef YY_NEED_STRLEN
2414
+ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
2415
+ {
2416
+ register int n;
2417
+ for ( n = 0; s[n]; ++n )
2418
+ ;
2419
+
2420
+ return n;
2421
+ }
2422
+ #endif
2423
+
2424
+ void *yyalloc (yy_size_t size , yyscan_t yyscanner)
2425
+ {
2426
+ return (void *) malloc( size );
2427
+ }
2428
+
2429
+ void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
2430
+ {
2431
+ /* The cast to (char *) in the following accommodates both
2432
+ * implementations that use char* generic pointers, and those
2433
+ * that use void* generic pointers. It works with the latter
2434
+ * because both ANSI C and C++ allow castless assignment from
2435
+ * any pointer type to void*, and deal with argument conversions
2436
+ * as though doing an assignment.
2437
+ */
2438
+ return (void *) realloc( (char *) ptr, size );
2439
+ }
2440
+
2441
+ void yyfree (void * ptr , yyscan_t yyscanner)
2442
+ {
2443
+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2444
+ }
2445
+
2446
+ #define YYTABLES_NAME "yytables"
2447
+
2448
+ #line 130 "./gecode/flatzinc/lexer.lxx"
2449
+
2450
+
2451
+ int yy_input_proc(char* buf, int size, yyscan_t yyscanner) {
2452
+ Gecode::FlatZinc::ParserState* parm =
2453
+ static_cast<Gecode::FlatZinc::ParserState*>(yyget_extra(yyscanner));
2454
+ return parm->fillBuffer(buf, size);
2455
+ // work around warning that yyunput is unused
2456
+ yyunput (0,buf,yyscanner);
2457
+ }
2458
+