rattler 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. data/README.rdoc +9 -3
  2. data/features/command_line/dest_option.feature +1 -1
  3. data/features/command_line/lib_option.feature +2 -2
  4. data/features/command_line/output_option.feature +2 -2
  5. data/features/command_line/parser_generator.feature +3 -3
  6. data/features/grammar/any_character.feature +0 -4
  7. data/features/grammar/back_reference.feature +0 -4
  8. data/features/grammar/character_class.feature +0 -4
  9. data/features/grammar/comments.feature +0 -4
  10. data/features/grammar/e_symbol.feature +18 -0
  11. data/features/grammar/eof.feature +0 -4
  12. data/features/grammar/fail.feature +0 -4
  13. data/features/grammar/list_matching.feature +52 -3
  14. data/features/grammar/literal.feature +0 -4
  15. data/features/grammar/negative_lookahead.feature +0 -4
  16. data/features/grammar/negative_semantic_predicate.feature +99 -0
  17. data/features/grammar/node_action.feature +17 -4
  18. data/features/grammar/nonterminal.feature +3 -7
  19. data/features/grammar/one_or_more.feature +0 -4
  20. data/features/grammar/optional.feature +0 -4
  21. data/features/grammar/ordered_choice.feature +0 -4
  22. data/features/grammar/positive_lookahead.feature +0 -4
  23. data/features/grammar/positive_semantic_predicate.feature +99 -0
  24. data/features/grammar/posix_class.feature +3 -6
  25. data/features/grammar/repeat.feature +50 -0
  26. data/features/grammar/sequence.feature +0 -4
  27. data/features/grammar/side_effect.feature +81 -0
  28. data/features/grammar/skip_operator.feature +2 -5
  29. data/features/grammar/start_rule.feature +1 -5
  30. data/features/grammar/symantic_action.feature +9 -4
  31. data/features/grammar/token.feature +0 -4
  32. data/features/grammar/whitespace.feature +0 -4
  33. data/features/grammar/word_literal.feature +0 -4
  34. data/features/grammar/zero_or_more.feature +0 -4
  35. data/features/step_definitions/grammar_steps.rb +5 -1
  36. data/lib/rattler/back_end/optimizer.rb +1 -0
  37. data/lib/rattler/back_end/optimizer/reduce_repeat_match.rb +20 -8
  38. data/lib/rattler/back_end/optimizer/simplify_redundant_repeat.rb +10 -7
  39. data/lib/rattler/back_end/optimizer/specialize_repeat.rb +40 -0
  40. data/lib/rattler/back_end/parser_generator.rb +11 -6
  41. data/lib/rattler/back_end/parser_generator/delegating_generator.rb +20 -0
  42. data/lib/rattler/back_end/parser_generator/e_symbol_generator.rb +52 -0
  43. data/lib/rattler/back_end/parser_generator/eof_generator.rb +58 -0
  44. data/lib/rattler/back_end/parser_generator/expr_generator.rb +6 -2
  45. data/lib/rattler/back_end/parser_generator/gen_method_names.rb +15 -5
  46. data/lib/rattler/back_end/parser_generator/general_list_generator.rb +194 -0
  47. data/lib/rattler/back_end/parser_generator/general_repeat_generator.rb +177 -0
  48. data/lib/rattler/back_end/parser_generator/label_generator.rb +4 -1
  49. data/lib/rattler/back_end/parser_generator/list0_generating.rb +36 -0
  50. data/lib/rattler/back_end/parser_generator/list1_generating.rb +30 -0
  51. data/lib/rattler/back_end/parser_generator/list_generator.rb +16 -20
  52. data/lib/rattler/back_end/parser_generator/one_or_more_generating.rb +25 -0
  53. data/lib/rattler/back_end/parser_generator/{optional_generator.rb → optional_generating.rb} +66 -81
  54. data/lib/rattler/back_end/parser_generator/predicate_propogating.rb +4 -4
  55. data/lib/rattler/back_end/parser_generator/repeat_generator.rb +53 -0
  56. data/lib/rattler/back_end/parser_generator/skip_propogating.rb +2 -2
  57. data/lib/rattler/back_end/parser_generator/sub_generating.rb +16 -18
  58. data/lib/rattler/back_end/parser_generator/token_propogating.rb +1 -1
  59. data/lib/rattler/back_end/parser_generator/zero_or_more_generating.rb +31 -0
  60. data/lib/rattler/grammar/grammar_parser.rb +20 -0
  61. data/lib/rattler/grammar/metagrammar.rb +131 -13
  62. data/lib/rattler/grammar/rattler.rtlr +25 -12
  63. data/lib/rattler/parsers.rb +9 -5
  64. data/lib/rattler/parsers/assert_code.rb +31 -0
  65. data/lib/rattler/parsers/atomic.rb +19 -0
  66. data/lib/rattler/parsers/direct_action.rb +12 -4
  67. data/lib/rattler/parsers/disallow_code.rb +31 -0
  68. data/lib/rattler/parsers/dispatch_action.rb +3 -2
  69. data/lib/rattler/parsers/e_symbol.rb +47 -0
  70. data/lib/rattler/parsers/effect_code.rb +31 -0
  71. data/lib/rattler/parsers/eof.rb +6 -13
  72. data/lib/rattler/parsers/list_parser.rb +33 -14
  73. data/lib/rattler/parsers/match.rb +1 -6
  74. data/lib/rattler/parsers/parser_dsl.rb +78 -35
  75. data/lib/rattler/parsers/predicate.rb +1 -4
  76. data/lib/rattler/parsers/repeat.rb +76 -0
  77. data/lib/rattler/parsers/semantic_assert.rb +19 -0
  78. data/lib/rattler/parsers/semantic_disallow.rb +19 -0
  79. data/lib/rattler/parsers/side_effect.rb +19 -0
  80. data/lib/rattler/parsers/skip.rb +1 -9
  81. data/lib/rattler/parsers/token.rb +1 -6
  82. data/lib/rattler/util/graphviz/node_builder.rb +6 -3
  83. data/spec/rattler/back_end/assert_compiler_examples.rb +187 -0
  84. data/spec/rattler/back_end/direct_action_compiler_examples.rb +227 -0
  85. data/spec/rattler/back_end/disallow_compiler_examples.rb +187 -0
  86. data/spec/rattler/back_end/dispatch_action_compiler_examples.rb +225 -0
  87. data/spec/rattler/back_end/optimizer/reduce_repeat_match_spec.rb +45 -33
  88. data/spec/rattler/back_end/optimizer/simplify_redundant_repeat_spec.rb +32 -172
  89. data/spec/rattler/back_end/parser_generator/e_symbol_generator_spec.rb +149 -0
  90. data/spec/rattler/back_end/parser_generator/eof_generator_spec.rb +152 -0
  91. data/spec/rattler/back_end/parser_generator/label_generator_spec.rb +4 -4
  92. data/spec/rattler/back_end/parser_generator/list0_generator_examples.rb +322 -0
  93. data/spec/rattler/back_end/parser_generator/list1_generator_examples.rb +343 -0
  94. data/spec/rattler/back_end/parser_generator/list_generator_spec.rb +597 -140
  95. data/spec/rattler/back_end/parser_generator/one_or_more_generator_examples.rb +292 -0
  96. data/spec/rattler/back_end/parser_generator/optional_generator_examples.rb +233 -0
  97. data/spec/rattler/back_end/parser_generator/repeat_generator_spec.rb +281 -0
  98. data/spec/rattler/back_end/parser_generator/zero_or_more_generator_examples.rb +277 -0
  99. data/spec/rattler/back_end/semantic_assert_compiler_examples.rb +152 -0
  100. data/spec/rattler/back_end/semantic_disallow_compiler_examples.rb +152 -0
  101. data/spec/rattler/back_end/shared_compiler_examples.rb +106 -651
  102. data/spec/rattler/back_end/side_effect_compiler_examples.rb +227 -0
  103. data/spec/rattler/back_end/skip_compiler_examples.rb +161 -0
  104. data/spec/rattler/back_end/token_compiler_examples.rb +262 -0
  105. data/spec/rattler/grammar/grammar_parser_spec.rb +302 -23
  106. data/spec/rattler/parsers/apply_spec.rb +6 -0
  107. data/spec/rattler/parsers/assert_spec.rb +18 -7
  108. data/spec/rattler/parsers/back_reference_spec.rb +9 -0
  109. data/spec/rattler/parsers/choice_spec.rb +36 -21
  110. data/spec/rattler/parsers/direct_action_spec.rb +76 -36
  111. data/spec/rattler/parsers/disallow_spec.rb +18 -7
  112. data/spec/rattler/parsers/dispatch_action_spec.rb +128 -22
  113. data/spec/rattler/parsers/e_symbol_spec.rb +30 -0
  114. data/spec/rattler/parsers/eof_spec.rb +15 -6
  115. data/spec/rattler/parsers/label_spec.rb +15 -2
  116. data/spec/rattler/parsers/list_parser_spec.rb +187 -0
  117. data/spec/rattler/parsers/match_spec.rb +16 -7
  118. data/spec/rattler/parsers/parser_dsl_spec.rb +82 -23
  119. data/spec/rattler/parsers/repeat_spec.rb +233 -0
  120. data/spec/rattler/parsers/semantic_assert_spec.rb +83 -0
  121. data/spec/rattler/parsers/semantic_disallow_spec.rb +83 -0
  122. data/spec/rattler/parsers/sequence_spec.rb +34 -20
  123. data/spec/rattler/parsers/side_effect_spec.rb +214 -0
  124. data/spec/rattler/parsers/skip_spec.rb +17 -6
  125. data/spec/rattler_spec.rb +2 -0
  126. data/spec/support/compiler_spec_helper.rb +8 -0
  127. metadata +156 -447
  128. data/bin/rtlr.compiled.rbc +0 -201
  129. data/features/step_definitions/cli_steps.rbc +0 -149
  130. data/features/step_definitions/grammar_steps.rbc +0 -1211
  131. data/features/support/env.rbc +0 -389
  132. data/lib/rattler.rbc +0 -1231
  133. data/lib/rattler/back_end.rbc +0 -286
  134. data/lib/rattler/back_end/compiler.rbc +0 -1394
  135. data/lib/rattler/back_end/optimizer.rbc +0 -2000
  136. data/lib/rattler/back_end/optimizer/composite_reducing.rbc +0 -337
  137. data/lib/rattler/back_end/optimizer/flatten_choice.rbc +0 -443
  138. data/lib/rattler/back_end/optimizer/flatten_sequence.rbc +0 -827
  139. data/lib/rattler/back_end/optimizer/flattening.rbc +0 -570
  140. data/lib/rattler/back_end/optimizer/inline_regular_rules.rbc +0 -691
  141. data/lib/rattler/back_end/optimizer/join_match_capturing_sequence.rbc +0 -1299
  142. data/lib/rattler/back_end/optimizer/join_match_choice.rbc +0 -523
  143. data/lib/rattler/back_end/optimizer/join_match_matching_sequence.rbc +0 -619
  144. data/lib/rattler/back_end/optimizer/join_match_sequence.rbc +0 -174
  145. data/lib/rattler/back_end/optimizer/join_predicate_bare_match.rbc +0 -1505
  146. data/lib/rattler/back_end/optimizer/join_predicate_match.rbc +0 -174
  147. data/lib/rattler/back_end/optimizer/join_predicate_nested_match.rbc +0 -620
  148. data/lib/rattler/back_end/optimizer/join_predicate_or_bare_match.rbc +0 -1502
  149. data/lib/rattler/back_end/optimizer/join_predicate_or_match.rbc +0 -174
  150. data/lib/rattler/back_end/optimizer/join_predicate_or_nested_match.rbc +0 -616
  151. data/lib/rattler/back_end/optimizer/match_joining.rbc +0 -1454
  152. data/lib/rattler/back_end/optimizer/optimization.rbc +0 -1366
  153. data/lib/rattler/back_end/optimizer/optimization_context.rbc +0 -1386
  154. data/lib/rattler/back_end/optimizer/optimization_sequence.rbc +0 -520
  155. data/lib/rattler/back_end/optimizer/optimize_children.rbc +0 -793
  156. data/lib/rattler/back_end/optimizer/reduce_repeat_match.rbc +0 -788
  157. data/lib/rattler/back_end/optimizer/remove_meaningless_wrapper.rbc +0 -508
  158. data/lib/rattler/back_end/optimizer/simplify_redundant_repeat.rbc +0 -807
  159. data/lib/rattler/back_end/optimizer/simplify_token_match.rbc +0 -561
  160. data/lib/rattler/back_end/parser_generator.rbc +0 -1326
  161. data/lib/rattler/back_end/parser_generator/apply_generator.rbc +0 -2148
  162. data/lib/rattler/back_end/parser_generator/assert_generator.rbc +0 -1967
  163. data/lib/rattler/back_end/parser_generator/back_reference_generator.rbc +0 -1665
  164. data/lib/rattler/back_end/parser_generator/choice_generator.rbc +0 -2793
  165. data/lib/rattler/back_end/parser_generator/direct_action_generator.rbc +0 -1071
  166. data/lib/rattler/back_end/parser_generator/disallow_generator.rbc +0 -1967
  167. data/lib/rattler/back_end/parser_generator/dispatch_action_generator.rbc +0 -1071
  168. data/lib/rattler/back_end/parser_generator/expr_generator.rbc +0 -2295
  169. data/lib/rattler/back_end/parser_generator/fail_generator.rbc +0 -1216
  170. data/lib/rattler/back_end/parser_generator/gen_method_names.rbc +0 -296
  171. data/lib/rattler/back_end/parser_generator/group_match.rbc +0 -612
  172. data/lib/rattler/back_end/parser_generator/group_match_generator.rbc +0 -1647
  173. data/lib/rattler/back_end/parser_generator/label_generator.rbc +0 -1401
  174. data/lib/rattler/back_end/parser_generator/list1_generator.rb +0 -54
  175. data/lib/rattler/back_end/parser_generator/list1_generator.rbc +0 -1237
  176. data/lib/rattler/back_end/parser_generator/list_generating.rb +0 -71
  177. data/lib/rattler/back_end/parser_generator/list_generating.rbc +0 -1900
  178. data/lib/rattler/back_end/parser_generator/list_generator.rbc +0 -1068
  179. data/lib/rattler/back_end/parser_generator/match_generator.rbc +0 -1743
  180. data/lib/rattler/back_end/parser_generator/nested.rbc +0 -496
  181. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rb +0 -56
  182. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rbc +0 -1277
  183. data/lib/rattler/back_end/parser_generator/optional_generator.rbc +0 -2025
  184. data/lib/rattler/back_end/parser_generator/predicate_propogating.rbc +0 -648
  185. data/lib/rattler/back_end/parser_generator/repeat_generating.rb +0 -57
  186. data/lib/rattler/back_end/parser_generator/repeat_generating.rbc +0 -1549
  187. data/lib/rattler/back_end/parser_generator/rule_generator.rbc +0 -1239
  188. data/lib/rattler/back_end/parser_generator/rule_set_generator.rbc +0 -2641
  189. data/lib/rattler/back_end/parser_generator/sequence_generator.rbc +0 -4867
  190. data/lib/rattler/back_end/parser_generator/skip_generator.rbc +0 -1278
  191. data/lib/rattler/back_end/parser_generator/skip_propogating.rbc +0 -432
  192. data/lib/rattler/back_end/parser_generator/sub_generating.rbc +0 -2785
  193. data/lib/rattler/back_end/parser_generator/token_generator.rbc +0 -755
  194. data/lib/rattler/back_end/parser_generator/token_propogating.rbc +0 -324
  195. data/lib/rattler/back_end/parser_generator/top_level.rbc +0 -352
  196. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rb +0 -53
  197. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rbc +0 -1111
  198. data/lib/rattler/back_end/ruby_generator.rbc +0 -1841
  199. data/lib/rattler/grammar.rbc +0 -557
  200. data/lib/rattler/grammar/analysis.rbc +0 -1944
  201. data/lib/rattler/grammar/grammar.rbc +0 -1090
  202. data/lib/rattler/grammar/grammar_dsl.rbc +0 -1401
  203. data/lib/rattler/grammar/grammar_parser.rbc +0 -2096
  204. data/lib/rattler/grammar/metagrammar.rbc +0 -11014
  205. data/lib/rattler/parsers.rbc +0 -1006
  206. data/lib/rattler/parsers/action_code.rbc +0 -1577
  207. data/lib/rattler/parsers/apply.rbc +0 -562
  208. data/lib/rattler/parsers/assert.rbc +0 -378
  209. data/lib/rattler/parsers/back_reference.rbc +0 -871
  210. data/lib/rattler/parsers/choice.rbc +0 -607
  211. data/lib/rattler/parsers/combinator_parser.rbc +0 -612
  212. data/lib/rattler/parsers/combining.rbc +0 -570
  213. data/lib/rattler/parsers/direct_action.rbc +0 -1472
  214. data/lib/rattler/parsers/disallow.rbc +0 -379
  215. data/lib/rattler/parsers/dispatch_action.rbc +0 -2078
  216. data/lib/rattler/parsers/eof.rbc +0 -567
  217. data/lib/rattler/parsers/fail.rbc +0 -745
  218. data/lib/rattler/parsers/label.rbc +0 -749
  219. data/lib/rattler/parsers/list.rbc +0 -292
  220. data/lib/rattler/parsers/list0.rb +0 -26
  221. data/lib/rattler/parsers/list0.rbc +0 -292
  222. data/lib/rattler/parsers/list1.rb +0 -26
  223. data/lib/rattler/parsers/list1.rbc +0 -305
  224. data/lib/rattler/parsers/list_parser.rbc +0 -886
  225. data/lib/rattler/parsers/match.rbc +0 -621
  226. data/lib/rattler/parsers/node_code.rbc +0 -1064
  227. data/lib/rattler/parsers/one_or_more.rb +0 -47
  228. data/lib/rattler/parsers/one_or_more.rbc +0 -475
  229. data/lib/rattler/parsers/optional.rb +0 -42
  230. data/lib/rattler/parsers/optional.rbc +0 -450
  231. data/lib/rattler/parsers/parser.rbc +0 -994
  232. data/lib/rattler/parsers/parser_dsl.rbc +0 -4765
  233. data/lib/rattler/parsers/predicate.rbc +0 -490
  234. data/lib/rattler/parsers/rule.rbc +0 -777
  235. data/lib/rattler/parsers/rule_set.rbc +0 -1438
  236. data/lib/rattler/parsers/sequence.rbc +0 -1040
  237. data/lib/rattler/parsers/skip.rbc +0 -613
  238. data/lib/rattler/parsers/token.rbc +0 -457
  239. data/lib/rattler/parsers/zero_or_more.rb +0 -40
  240. data/lib/rattler/parsers/zero_or_more.rbc +0 -462
  241. data/lib/rattler/runner.rbc +0 -3813
  242. data/lib/rattler/runtime.rbc +0 -370
  243. data/lib/rattler/runtime/extended_packrat_parser.rbc +0 -2351
  244. data/lib/rattler/runtime/packrat_parser.rbc +0 -1390
  245. data/lib/rattler/runtime/parse_failure.rbc +0 -909
  246. data/lib/rattler/runtime/parse_node.rbc +0 -1007
  247. data/lib/rattler/runtime/parser.rbc +0 -2267
  248. data/lib/rattler/runtime/parser_helper.rbc +0 -337
  249. data/lib/rattler/runtime/recursive_descent_parser.rbc +0 -942
  250. data/lib/rattler/util.rbc +0 -286
  251. data/lib/rattler/util/graphviz.rbc +0 -327
  252. data/lib/rattler/util/graphviz/node_builder.rbc +0 -2207
  253. data/lib/rattler/util/line_counter.rbc +0 -988
  254. data/lib/rattler/util/node.rbc +0 -2393
  255. data/lib/rattler/util/parser_spec_helper.rbc +0 -2533
  256. data/spec/rattler/back_end/compiler_spec.rbc +0 -1187
  257. data/spec/rattler/back_end/optimizer/flatten_choice_spec.rbc +0 -2093
  258. data/spec/rattler/back_end/optimizer/flatten_sequence_spec.rbc +0 -4055
  259. data/spec/rattler/back_end/optimizer/inline_regular_rules_spec.rbc +0 -2345
  260. data/spec/rattler/back_end/optimizer/join_match_capturing_sequence_spec.rbc +0 -7006
  261. data/spec/rattler/back_end/optimizer/join_match_choice_spec.rbc +0 -3252
  262. data/spec/rattler/back_end/optimizer/join_match_matching_sequence_spec.rbc +0 -3681
  263. data/spec/rattler/back_end/optimizer/join_predicate_bare_match_spec.rbc +0 -5603
  264. data/spec/rattler/back_end/optimizer/join_predicate_nested_match_spec.rbc +0 -5232
  265. data/spec/rattler/back_end/optimizer/join_predicate_or_bare_match_spec.rbc +0 -4272
  266. data/spec/rattler/back_end/optimizer/join_predicate_or_nested_match_spec.rbc +0 -4342
  267. data/spec/rattler/back_end/optimizer/reduce_repeat_match_spec.rbc +0 -2960
  268. data/spec/rattler/back_end/optimizer/simplify_redundant_repeat_spec.rbc +0 -6929
  269. data/spec/rattler/back_end/optimizer/simplify_token_match_spec.rbc +0 -2327
  270. data/spec/rattler/back_end/optimizer_spec.rbc +0 -372
  271. data/spec/rattler/back_end/parser_generator/apply_generator_spec.rbc +0 -4710
  272. data/spec/rattler/back_end/parser_generator/assert_generator_spec.rbc +0 -4697
  273. data/spec/rattler/back_end/parser_generator/back_reference_generator_spec.rbc +0 -4855
  274. data/spec/rattler/back_end/parser_generator/choice_generator_spec.rbc +0 -5350
  275. data/spec/rattler/back_end/parser_generator/direct_action_generator_spec.rbc +0 -4737
  276. data/spec/rattler/back_end/parser_generator/disallow_generator_spec.rbc +0 -4697
  277. data/spec/rattler/back_end/parser_generator/dispatch_action_generator_spec.rbc +0 -4731
  278. data/spec/rattler/back_end/parser_generator/fail_generator_spec.rbc +0 -2115
  279. data/spec/rattler/back_end/parser_generator/group_match_generator_spec.rbc +0 -4195
  280. data/spec/rattler/back_end/parser_generator/group_match_spec.rbc +0 -1414
  281. data/spec/rattler/back_end/parser_generator/label_generator_spec.rbc +0 -4696
  282. data/spec/rattler/back_end/parser_generator/list1_generator_spec.rb +0 -309
  283. data/spec/rattler/back_end/parser_generator/list1_generator_spec.rbc +0 -5213
  284. data/spec/rattler/back_end/parser_generator/list_generator_spec.rbc +0 -5179
  285. data/spec/rattler/back_end/parser_generator/match_generator_spec.rbc +0 -4681
  286. data/spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rb +0 -259
  287. data/spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rbc +0 -4957
  288. data/spec/rattler/back_end/parser_generator/optional_generator_spec.rb +0 -190
  289. data/spec/rattler/back_end/parser_generator/optional_generator_spec.rbc +0 -4704
  290. data/spec/rattler/back_end/parser_generator/rule_generator_spec.rbc +0 -545
  291. data/spec/rattler/back_end/parser_generator/rule_set_generator_spec.rbc +0 -1110
  292. data/spec/rattler/back_end/parser_generator/sequence_generator_spec.rbc +0 -5453
  293. data/spec/rattler/back_end/parser_generator/skip_generator_spec.rbc +0 -4691
  294. data/spec/rattler/back_end/parser_generator/token_generator_spec.rbc +0 -4691
  295. data/spec/rattler/back_end/parser_generator/zero_or_more_generator_spec.rb +0 -244
  296. data/spec/rattler/back_end/parser_generator/zero_or_more_generator_spec.rbc +0 -4924
  297. data/spec/rattler/back_end/ruby_generator_spec.rbc +0 -2460
  298. data/spec/rattler/back_end/shared_compiler_examples.rbc +0 -41886
  299. data/spec/rattler/grammar/analysis_spec.rbc +0 -4365
  300. data/spec/rattler/grammar/grammar_parser_spec.rbc +0 -10344
  301. data/spec/rattler/grammar/grammar_spec.rbc +0 -1701
  302. data/spec/rattler/parsers/action_code_spec.rbc +0 -4674
  303. data/spec/rattler/parsers/apply_spec.rbc +0 -851
  304. data/spec/rattler/parsers/assert_spec.rbc +0 -752
  305. data/spec/rattler/parsers/back_reference_spec.rbc +0 -1002
  306. data/spec/rattler/parsers/choice_spec.rbc +0 -1696
  307. data/spec/rattler/parsers/combinator_parser_spec.rbc +0 -361
  308. data/spec/rattler/parsers/direct_action_spec.rbc +0 -5222
  309. data/spec/rattler/parsers/disallow_spec.rbc +0 -752
  310. data/spec/rattler/parsers/dispatch_action_spec.rbc +0 -3033
  311. data/spec/rattler/parsers/eof_spec.rbc +0 -728
  312. data/spec/rattler/parsers/fail_spec.rbc +0 -548
  313. data/spec/rattler/parsers/label_spec.rbc +0 -1091
  314. data/spec/rattler/parsers/list0_spec.rb +0 -82
  315. data/spec/rattler/parsers/list0_spec.rbc +0 -2308
  316. data/spec/rattler/parsers/list1_spec.rb +0 -82
  317. data/spec/rattler/parsers/list1_spec.rbc +0 -2287
  318. data/spec/rattler/parsers/list_spec.rbc +0 -2308
  319. data/spec/rattler/parsers/match_spec.rbc +0 -780
  320. data/spec/rattler/parsers/node_code_spec.rbc +0 -1754
  321. data/spec/rattler/parsers/one_or_more_spec.rb +0 -64
  322. data/spec/rattler/parsers/one_or_more_spec.rbc +0 -1698
  323. data/spec/rattler/parsers/optional_spec.rb +0 -64
  324. data/spec/rattler/parsers/optional_spec.rbc +0 -1717
  325. data/spec/rattler/parsers/parser_dsl_spec.rbc +0 -10150
  326. data/spec/rattler/parsers/rule_set_spec.rbc +0 -1060
  327. data/spec/rattler/parsers/sequence_spec.rbc +0 -2899
  328. data/spec/rattler/parsers/skip_spec.rbc +0 -753
  329. data/spec/rattler/parsers/token_spec.rbc +0 -1511
  330. data/spec/rattler/parsers/zero_or_more_spec.rb +0 -64
  331. data/spec/rattler/parsers/zero_or_more_spec.rbc +0 -1719
  332. data/spec/rattler/runtime/extended_packrat_parser_spec.rbc +0 -1341
  333. data/spec/rattler/runtime/packrat_parser_spec.rbc +0 -210
  334. data/spec/rattler/runtime/parse_failure_spec.rbc +0 -2244
  335. data/spec/rattler/runtime/parse_node_spec.rbc +0 -2008
  336. data/spec/rattler/runtime/parser_spec.rbc +0 -2757
  337. data/spec/rattler/runtime/recursive_descent_parser_spec.rbc +0 -210
  338. data/spec/rattler/runtime/shared_parser_examples.rbc +0 -2567
  339. data/spec/rattler/util/graphviz/node_builder_spec.rbc +0 -3439
  340. data/spec/rattler/util/line_counter_spec.rbc +0 -2272
  341. data/spec/rattler/util/node_spec.rbc +0 -15023
  342. data/spec/rattler_spec.rbc +0 -1591
  343. data/spec/spec_helper.rbc +0 -336
  344. data/spec/support/combinator_parser_spec_helper.rbc +0 -1284
  345. data/spec/support/compiler_spec_helper.rbc +0 -1941
  346. data/spec/support/parser_generator_spec_helper.rbc +0 -718
  347. data/spec/support/runtime_parser_spec_helper.rbc +0 -313
@@ -1,26 +0,0 @@
1
- #
2
- # = rattler/parsers/list1.rb
3
- #
4
- # Author:: Jason Arhart
5
- # Documentation:: Author
6
- #
7
-
8
- require 'rattler/parsers'
9
-
10
- module Rattler::Parsers
11
- #
12
- # +List1+ matches terms matched by a term parser in a list with separators
13
- # matched by a separator parser. +List1+ fails unless at least one term is
14
- # matched.
15
- #
16
- # @author Jason Arhart
17
- #
18
- class List1 < ListParser
19
- protected
20
-
21
- def enough?(results)
22
- not results.empty?
23
- end
24
-
25
- end
26
- end
@@ -1,305 +0,0 @@
1
- !RBIX
2
- 3105615304195158506
3
- x
4
- M
5
- 1
6
- n
7
- n
8
- x
9
- 10
10
- __script__
11
- i
12
- 39
13
- 5
14
- 7
15
- 0
16
- 64
17
- 47
18
- 49
19
- 1
20
- 1
21
- 15
22
- 99
23
- 7
24
- 2
25
- 45
26
- 3
27
- 4
28
- 49
29
- 5
30
- 2
31
- 13
32
- 99
33
- 12
34
- 7
35
- 6
36
- 12
37
- 7
38
- 7
39
- 12
40
- 65
41
- 12
42
- 49
43
- 8
44
- 4
45
- 15
46
- 49
47
- 6
48
- 0
49
- 15
50
- 2
51
- 11
52
- I
53
- 6
54
- I
55
- 0
56
- I
57
- 0
58
- I
59
- 0
60
- n
61
- p
62
- 9
63
- s
64
- 15
65
- rattler/parsers
66
- x
67
- 7
68
- require
69
- x
70
- 7
71
- Parsers
72
- x
73
- 7
74
- Rattler
75
- n
76
- x
77
- 17
78
- open_module_under
79
- x
80
- 15
81
- __module_init__
82
- M
83
- 1
84
- n
85
- n
86
- x
87
- 7
88
- Parsers
89
- i
90
- 31
91
- 5
92
- 66
93
- 99
94
- 7
95
- 0
96
- 45
97
- 1
98
- 2
99
- 65
100
- 49
101
- 3
102
- 3
103
- 13
104
- 99
105
- 12
106
- 7
107
- 4
108
- 12
109
- 7
110
- 5
111
- 12
112
- 65
113
- 12
114
- 49
115
- 6
116
- 4
117
- 15
118
- 49
119
- 4
120
- 0
121
- 11
122
- I
123
- 6
124
- I
125
- 0
126
- I
127
- 0
128
- I
129
- 0
130
- n
131
- p
132
- 7
133
- x
134
- 5
135
- List1
136
- x
137
- 10
138
- ListParser
139
- n
140
- x
141
- 10
142
- open_class
143
- x
144
- 14
145
- __class_init__
146
- M
147
- 1
148
- n
149
- n
150
- x
151
- 5
152
- List1
153
- i
154
- 20
155
- 5
156
- 66
157
- 5
158
- 48
159
- 0
160
- 15
161
- 99
162
- 7
163
- 1
164
- 7
165
- 2
166
- 65
167
- 67
168
- 49
169
- 3
170
- 0
171
- 49
172
- 4
173
- 4
174
- 11
175
- I
176
- 5
177
- I
178
- 0
179
- I
180
- 0
181
- I
182
- 0
183
- n
184
- p
185
- 5
186
- x
187
- 9
188
- protected
189
- x
190
- 7
191
- enough?
192
- M
193
- 1
194
- n
195
- n
196
- x
197
- 7
198
- enough?
199
- i
200
- 12
201
- 20
202
- 0
203
- 49
204
- 0
205
- 0
206
- 10
207
- 10
208
- 2
209
- 8
210
- 11
211
- 3
212
- 11
213
- I
214
- 2
215
- I
216
- 1
217
- I
218
- 1
219
- I
220
- 1
221
- n
222
- p
223
- 1
224
- x
225
- 6
226
- empty?
227
- p
228
- 5
229
- I
230
- -1
231
- I
232
- 15
233
- I
234
- 0
235
- I
236
- 16
237
- I
238
- c
239
- x
240
- 74
241
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list1.rb
242
- p
243
- 1
244
- x
245
- 7
246
- results
247
- x
248
- 17
249
- method_visibility
250
- x
251
- 15
252
- add_defn_method
253
- p
254
- 5
255
- I
256
- 2
257
- I
258
- 13
259
- I
260
- 6
261
- I
262
- 15
263
- I
264
- 14
265
- x
266
- 74
267
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list1.rb
268
- p
269
- 0
270
- x
271
- 13
272
- attach_method
273
- p
274
- 3
275
- I
276
- 2
277
- I
278
- 12
279
- I
280
- 1f
281
- x
282
- 74
283
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list1.rb
284
- p
285
- 0
286
- x
287
- 13
288
- attach_method
289
- p
290
- 5
291
- I
292
- 0
293
- I
294
- 8
295
- I
296
- 9
297
- I
298
- a
299
- I
300
- 27
301
- x
302
- 74
303
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list1.rb
304
- p
305
- 0
@@ -1,886 +0,0 @@
1
- !RBIX
2
- 3105615304195158506
3
- x
4
- M
5
- 1
6
- n
7
- n
8
- x
9
- 10
10
- __script__
11
- i
12
- 39
13
- 5
14
- 7
15
- 0
16
- 64
17
- 47
18
- 49
19
- 1
20
- 1
21
- 15
22
- 99
23
- 7
24
- 2
25
- 45
26
- 3
27
- 4
28
- 49
29
- 5
30
- 2
31
- 13
32
- 99
33
- 12
34
- 7
35
- 6
36
- 12
37
- 7
38
- 7
39
- 12
40
- 65
41
- 12
42
- 49
43
- 8
44
- 4
45
- 15
46
- 49
47
- 6
48
- 0
49
- 15
50
- 2
51
- 11
52
- I
53
- 6
54
- I
55
- 0
56
- I
57
- 0
58
- I
59
- 0
60
- n
61
- p
62
- 9
63
- s
64
- 15
65
- rattler/parsers
66
- x
67
- 7
68
- require
69
- x
70
- 7
71
- Parsers
72
- x
73
- 7
74
- Rattler
75
- n
76
- x
77
- 17
78
- open_module_under
79
- x
80
- 15
81
- __module_init__
82
- M
83
- 1
84
- n
85
- n
86
- x
87
- 7
88
- Parsers
89
- i
90
- 31
91
- 5
92
- 66
93
- 99
94
- 7
95
- 0
96
- 45
97
- 1
98
- 2
99
- 65
100
- 49
101
- 3
102
- 3
103
- 13
104
- 99
105
- 12
106
- 7
107
- 4
108
- 12
109
- 7
110
- 5
111
- 12
112
- 65
113
- 12
114
- 49
115
- 6
116
- 4
117
- 15
118
- 49
119
- 4
120
- 0
121
- 11
122
- I
123
- 6
124
- I
125
- 0
126
- I
127
- 0
128
- I
129
- 0
130
- n
131
- p
132
- 7
133
- x
134
- 10
135
- ListParser
136
- x
137
- 6
138
- Parser
139
- n
140
- x
141
- 10
142
- open_class
143
- x
144
- 14
145
- __class_init__
146
- M
147
- 1
148
- n
149
- n
150
- x
151
- 10
152
- ListParser
153
- i
154
- 89
155
- 5
156
- 66
157
- 5
158
- 45
159
- 0
160
- 1
161
- 47
162
- 49
163
- 2
164
- 1
165
- 15
166
- 99
167
- 7
168
- 3
169
- 7
170
- 4
171
- 65
172
- 5
173
- 49
174
- 5
175
- 4
176
- 15
177
- 99
178
- 7
179
- 6
180
- 7
181
- 7
182
- 65
183
- 5
184
- 49
185
- 5
186
- 4
187
- 15
188
- 99
189
- 7
190
- 8
191
- 7
192
- 9
193
- 65
194
- 67
195
- 49
196
- 10
197
- 0
198
- 49
199
- 11
200
- 4
201
- 15
202
- 99
203
- 7
204
- 12
205
- 7
206
- 13
207
- 65
208
- 67
209
- 49
210
- 10
211
- 0
212
- 49
213
- 11
214
- 4
215
- 15
216
- 99
217
- 7
218
- 14
219
- 7
220
- 15
221
- 65
222
- 67
223
- 49
224
- 10
225
- 0
226
- 49
227
- 11
228
- 4
229
- 15
230
- 99
231
- 7
232
- 16
233
- 7
234
- 17
235
- 65
236
- 67
237
- 49
238
- 10
239
- 0
240
- 49
241
- 11
242
- 4
243
- 11
244
- I
245
- 5
246
- I
247
- 0
248
- I
249
- 0
250
- I
251
- 0
252
- n
253
- p
254
- 18
255
- x
256
- 9
257
- Combining
258
- n
259
- x
260
- 7
261
- include
262
- x
263
- 6
264
- parsed
265
- M
266
- 1
267
- n
268
- n
269
- x
270
- 6
271
- parsed
272
- i
273
- 10
274
- 5
275
- 20
276
- 0
277
- 36
278
- 1
279
- 47
280
- 51
281
- 0
282
- 0
283
- 11
284
- I
285
- 5
286
- I
287
- 2
288
- I
289
- 1
290
- I
291
- 1
292
- I
293
- 1
294
- p
295
- 1
296
- x
297
- 2
298
- []
299
- p
300
- 5
301
- I
302
- -1
303
- I
304
- 15
305
- I
306
- 0
307
- I
308
- 16
309
- I
310
- a
311
- x
312
- 80
313
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
314
- p
315
- 2
316
- x
317
- 7
318
- results
319
- x
320
- 1
321
- _
322
- x
323
- 13
324
- attach_method
325
- x
326
- 2
327
- []
328
- M
329
- 1
330
- n
331
- n
332
- x
333
- 2
334
- []
335
- i
336
- 37
337
- 5
338
- 13
339
- 71
340
- 0
341
- 47
342
- 9
343
- 26
344
- 47
345
- 49
346
- 1
347
- 0
348
- 13
349
- 20
350
- 0
351
- 20
352
- 1
353
- 49
354
- 2
355
- 0
356
- 47
357
- 49
358
- 3
359
- 2
360
- 15
361
- 8
362
- 36
363
- 20
364
- 0
365
- 20
366
- 1
367
- 49
368
- 2
369
- 0
370
- 49
371
- 0
372
- 2
373
- 11
374
- I
375
- 6
376
- I
377
- 2
378
- I
379
- 2
380
- I
381
- 2
382
- n
383
- p
384
- 4
385
- x
386
- 3
387
- new
388
- x
389
- 8
390
- allocate
391
- x
392
- 4
393
- skip
394
- x
395
- 10
396
- initialize
397
- p
398
- 5
399
- I
400
- -1
401
- I
402
- 1b
403
- I
404
- 0
405
- I
406
- 1c
407
- I
408
- 25
409
- x
410
- 80
411
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
412
- p
413
- 2
414
- x
415
- 11
416
- term_parser
417
- x
418
- 10
419
- sep_parser
420
- x
421
- 11
422
- term_parser
423
- M
424
- 1
425
- n
426
- n
427
- x
428
- 11
429
- term_parser
430
- i
431
- 8
432
- 5
433
- 48
434
- 0
435
- 78
436
- 49
437
- 1
438
- 1
439
- 11
440
- I
441
- 2
442
- I
443
- 0
444
- I
445
- 0
446
- I
447
- 0
448
- n
449
- p
450
- 2
451
- x
452
- 8
453
- children
454
- x
455
- 2
456
- []
457
- p
458
- 5
459
- I
460
- -1
461
- I
462
- 1f
463
- I
464
- 0
465
- I
466
- 20
467
- I
468
- 8
469
- x
470
- 80
471
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
472
- p
473
- 0
474
- x
475
- 17
476
- method_visibility
477
- x
478
- 15
479
- add_defn_method
480
- x
481
- 10
482
- sep_parser
483
- M
484
- 1
485
- n
486
- n
487
- x
488
- 10
489
- sep_parser
490
- i
491
- 8
492
- 5
493
- 48
494
- 0
495
- 79
496
- 49
497
- 1
498
- 1
499
- 11
500
- I
501
- 2
502
- I
503
- 0
504
- I
505
- 0
506
- I
507
- 0
508
- n
509
- p
510
- 2
511
- x
512
- 8
513
- children
514
- x
515
- 2
516
- []
517
- p
518
- 5
519
- I
520
- -1
521
- I
522
- 23
523
- I
524
- 0
525
- I
526
- 24
527
- I
528
- 8
529
- x
530
- 80
531
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
532
- p
533
- 0
534
- x
535
- 5
536
- parse
537
- M
538
- 1
539
- n
540
- n
541
- x
542
- 5
543
- parse
544
- i
545
- 122
546
- 23
547
- 2
548
- 10
549
- 14
550
- 44
551
- 43
552
- 0
553
- 78
554
- 49
555
- 1
556
- 1
557
- 19
558
- 2
559
- 15
560
- 35
561
- 0
562
- 19
563
- 3
564
- 15
565
- 20
566
- 0
567
- 49
568
- 2
569
- 0
570
- 19
571
- 4
572
- 15
573
- 5
574
- 48
575
- 3
576
- 20
577
- 0
578
- 20
579
- 1
580
- 20
581
- 2
582
- 49
583
- 4
584
- 3
585
- 19
586
- 5
587
- 9
588
- 83
589
- 20
590
- 0
591
- 49
592
- 2
593
- 0
594
- 19
595
- 4
596
- 15
597
- 20
598
- 3
599
- 20
600
- 5
601
- 49
602
- 5
603
- 1
604
- 15
605
- 5
606
- 48
607
- 6
608
- 20
609
- 0
610
- 20
611
- 1
612
- 20
613
- 2
614
- 49
615
- 4
616
- 3
617
- 9
618
- 76
619
- 1
620
- 8
621
- 79
622
- 1
623
- 8
624
- 84
625
- 15
626
- 68
627
- 8
628
- 27
629
- 1
630
- 15
631
- 20
632
- 0
633
- 20
634
- 4
635
- 13
636
- 18
637
- 2
638
- 49
639
- 7
640
- 1
641
- 15
642
- 15
643
- 5
644
- 20
645
- 3
646
- 47
647
- 49
648
- 8
649
- 1
650
- 9
651
- 120
652
- 5
653
- 47
654
- 49
655
- 9
656
- 0
657
- 9
658
- 117
659
- 20
660
- 3
661
- 8
662
- 118
663
- 2
664
- 8
665
- 121
666
- 1
667
- 11
668
- I
669
- a
670
- I
671
- 6
672
- I
673
- 2
674
- I
675
- 3
676
- n
677
- p
678
- 10
679
- x
680
- 4
681
- Hash
682
- x
683
- 16
684
- new_from_literal
685
- x
686
- 3
687
- pos
688
- x
689
- 11
690
- term_parser
691
- x
692
- 5
693
- parse
694
- x
695
- 2
696
- <<
697
- x
698
- 10
699
- sep_parser
700
- x
701
- 4
702
- pos=
703
- x
704
- 7
705
- enough?
706
- x
707
- 10
708
- capturing?
709
- p
710
- 19
711
- I
712
- -1
713
- I
714
- 2f
715
- I
716
- e
717
- I
718
- 30
719
- I
720
- 13
721
- I
722
- 31
723
- I
724
- 1b
725
- I
726
- 32
727
- I
728
- 2b
729
- I
730
- 33
731
- I
732
- 33
733
- I
734
- 34
735
- I
736
- 3b
737
- I
738
- 35
739
- I
740
- 55
741
- I
742
- 37
743
- I
744
- 61
745
- I
746
- 38
747
- I
748
- 7a
749
- x
750
- 80
751
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
752
- p
753
- 6
754
- x
755
- 7
756
- scanner
757
- x
758
- 5
759
- rules
760
- x
761
- 5
762
- scope
763
- x
764
- 1
765
- a
766
- x
767
- 1
768
- p
769
- x
770
- 6
771
- result
772
- x
773
- 23
774
- variable_capture_count?
775
- M
776
- 1
777
- n
778
- n
779
- x
780
- 23
781
- variable_capture_count?
782
- i
783
- 2
784
- 2
785
- 11
786
- I
787
- 1
788
- I
789
- 0
790
- I
791
- 0
792
- I
793
- 0
794
- n
795
- p
796
- 0
797
- p
798
- 5
799
- I
800
- -1
801
- I
802
- 3b
803
- I
804
- 0
805
- I
806
- 3c
807
- I
808
- 2
809
- x
810
- 80
811
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
812
- p
813
- 0
814
- p
815
- 15
816
- I
817
- 2
818
- I
819
- 12
820
- I
821
- b
822
- I
823
- 15
824
- I
825
- 16
826
- I
827
- 1b
828
- I
829
- 21
830
- I
831
- 1f
832
- I
833
- 2f
834
- I
835
- 23
836
- I
837
- 3d
838
- I
839
- 2f
840
- I
841
- 4b
842
- I
843
- 3b
844
- I
845
- 59
846
- x
847
- 80
848
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
849
- p
850
- 0
851
- x
852
- 13
853
- attach_method
854
- p
855
- 3
856
- I
857
- 2
858
- I
859
- 11
860
- I
861
- 1f
862
- x
863
- 80
864
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
865
- p
866
- 0
867
- x
868
- 13
869
- attach_method
870
- p
871
- 5
872
- I
873
- 0
874
- I
875
- 8
876
- I
877
- 9
878
- I
879
- a
880
- I
881
- 27
882
- x
883
- 80
884
- /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/parsers/list_parser.rb
885
- p
886
- 0