rattler 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. data/README.rdoc +2 -2
  2. data/bin/rtlr.compiled.rbc +201 -0
  3. data/features/command_line/dest_option.feature +1 -0
  4. data/features/command_line/lib_option.feature +2 -0
  5. data/features/command_line/output_option.feature +2 -0
  6. data/features/command_line/parser_generator.feature +3 -0
  7. data/features/step_definitions/cli_steps.rbc +149 -0
  8. data/features/step_definitions/grammar_steps.rbc +1211 -0
  9. data/features/support/env.rb +4 -0
  10. data/features/support/env.rbc +389 -0
  11. data/lib/rattler.rbc +1231 -0
  12. data/lib/rattler/back_end.rbc +286 -0
  13. data/lib/rattler/back_end/compiler.rbc +1394 -0
  14. data/lib/rattler/back_end/optimizer.rbc +2000 -0
  15. data/lib/rattler/back_end/optimizer/composite_reducing.rbc +337 -0
  16. data/lib/rattler/back_end/optimizer/flatten_choice.rbc +443 -0
  17. data/lib/rattler/back_end/optimizer/flatten_sequence.rbc +827 -0
  18. data/lib/rattler/back_end/optimizer/flattening.rbc +570 -0
  19. data/lib/rattler/back_end/optimizer/inline_regular_rules.rbc +691 -0
  20. data/lib/rattler/back_end/optimizer/join_match_capturing_sequence.rbc +1299 -0
  21. data/lib/rattler/back_end/optimizer/join_match_choice.rbc +523 -0
  22. data/lib/rattler/back_end/optimizer/join_match_matching_sequence.rbc +619 -0
  23. data/lib/rattler/back_end/optimizer/join_match_sequence.rbc +174 -0
  24. data/lib/rattler/back_end/optimizer/join_predicate_bare_match.rbc +1505 -0
  25. data/lib/rattler/back_end/optimizer/join_predicate_match.rbc +174 -0
  26. data/lib/rattler/back_end/optimizer/join_predicate_nested_match.rbc +620 -0
  27. data/lib/rattler/back_end/optimizer/join_predicate_or_bare_match.rbc +1502 -0
  28. data/lib/rattler/back_end/optimizer/join_predicate_or_match.rbc +174 -0
  29. data/lib/rattler/back_end/optimizer/join_predicate_or_nested_match.rbc +616 -0
  30. data/lib/rattler/back_end/optimizer/match_joining.rbc +1454 -0
  31. data/lib/rattler/back_end/optimizer/optimization.rbc +1366 -0
  32. data/lib/rattler/back_end/optimizer/optimization_context.rbc +1386 -0
  33. data/lib/rattler/back_end/optimizer/optimization_sequence.rbc +520 -0
  34. data/lib/rattler/back_end/optimizer/optimize_children.rbc +793 -0
  35. data/lib/rattler/back_end/optimizer/reduce_repeat_match.rbc +788 -0
  36. data/lib/rattler/back_end/optimizer/remove_meaningless_wrapper.rbc +508 -0
  37. data/lib/rattler/back_end/optimizer/simplify_redundant_repeat.rbc +807 -0
  38. data/lib/rattler/back_end/optimizer/simplify_token_match.rbc +561 -0
  39. data/lib/rattler/back_end/parser_generator.rbc +1326 -0
  40. data/lib/rattler/back_end/parser_generator/apply_generator.rb +30 -37
  41. data/lib/rattler/back_end/parser_generator/apply_generator.rbc +2148 -0
  42. data/lib/rattler/back_end/parser_generator/assert_generator.rb +8 -24
  43. data/lib/rattler/back_end/parser_generator/assert_generator.rbc +1967 -0
  44. data/lib/rattler/back_end/parser_generator/back_reference_generator.rb +15 -39
  45. data/lib/rattler/back_end/parser_generator/back_reference_generator.rbc +1665 -0
  46. data/lib/rattler/back_end/parser_generator/choice_generator.rb +28 -40
  47. data/lib/rattler/back_end/parser_generator/choice_generator.rbc +2793 -0
  48. data/lib/rattler/back_end/parser_generator/direct_action_generator.rb +6 -20
  49. data/lib/rattler/back_end/parser_generator/direct_action_generator.rbc +1071 -0
  50. data/lib/rattler/back_end/parser_generator/disallow_generator.rb +8 -24
  51. data/lib/rattler/back_end/parser_generator/disallow_generator.rbc +1967 -0
  52. data/lib/rattler/back_end/parser_generator/dispatch_action_generator.rb +6 -20
  53. data/lib/rattler/back_end/parser_generator/dispatch_action_generator.rbc +1071 -0
  54. data/lib/rattler/back_end/parser_generator/expr_generator.rb +33 -65
  55. data/lib/rattler/back_end/parser_generator/expr_generator.rbc +2295 -0
  56. data/lib/rattler/back_end/parser_generator/fail_generator.rb +10 -30
  57. data/lib/rattler/back_end/parser_generator/fail_generator.rbc +1216 -0
  58. data/lib/rattler/back_end/parser_generator/gen_method_names.rbc +296 -0
  59. data/lib/rattler/back_end/parser_generator/group_match.rbc +612 -0
  60. data/lib/rattler/back_end/parser_generator/group_match_generator.rb +11 -18
  61. data/lib/rattler/back_end/parser_generator/group_match_generator.rbc +1647 -0
  62. data/lib/rattler/back_end/parser_generator/label_generator.rb +7 -10
  63. data/lib/rattler/back_end/parser_generator/label_generator.rbc +1401 -0
  64. data/lib/rattler/back_end/parser_generator/list1_generator.rb +8 -15
  65. data/lib/rattler/back_end/parser_generator/list1_generator.rbc +1237 -0
  66. data/lib/rattler/back_end/parser_generator/list_generating.rb +28 -27
  67. data/lib/rattler/back_end/parser_generator/list_generating.rbc +1900 -0
  68. data/lib/rattler/back_end/parser_generator/list_generator.rb +5 -11
  69. data/lib/rattler/back_end/parser_generator/list_generator.rbc +1068 -0
  70. data/lib/rattler/back_end/parser_generator/match_generator.rb +15 -39
  71. data/lib/rattler/back_end/parser_generator/match_generator.rbc +1743 -0
  72. data/lib/rattler/back_end/parser_generator/nested.rb +11 -5
  73. data/lib/rattler/back_end/parser_generator/nested.rbc +496 -0
  74. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rb +10 -8
  75. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rbc +1277 -0
  76. data/lib/rattler/back_end/parser_generator/optional_generator.rb +29 -49
  77. data/lib/rattler/back_end/parser_generator/optional_generator.rbc +2025 -0
  78. data/lib/rattler/back_end/parser_generator/predicate_propogating.rbc +648 -0
  79. data/lib/rattler/back_end/parser_generator/repeat_generating.rb +26 -36
  80. data/lib/rattler/back_end/parser_generator/repeat_generating.rbc +1549 -0
  81. data/lib/rattler/back_end/parser_generator/rule_generator.rbc +1239 -0
  82. data/lib/rattler/back_end/parser_generator/rule_set_generator.rbc +2641 -0
  83. data/lib/rattler/back_end/parser_generator/sequence_generator.rb +37 -61
  84. data/lib/rattler/back_end/parser_generator/sequence_generator.rbc +4867 -0
  85. data/lib/rattler/back_end/parser_generator/skip_generator.rb +10 -14
  86. data/lib/rattler/back_end/parser_generator/skip_generator.rbc +1278 -0
  87. data/lib/rattler/back_end/parser_generator/skip_propogating.rbc +432 -0
  88. data/lib/rattler/back_end/parser_generator/sub_generating.rb +52 -33
  89. data/lib/rattler/back_end/parser_generator/sub_generating.rbc +2785 -0
  90. data/lib/rattler/back_end/parser_generator/token_generator.rb +0 -19
  91. data/lib/rattler/back_end/parser_generator/token_generator.rbc +755 -0
  92. data/lib/rattler/back_end/parser_generator/token_propogating.rbc +324 -0
  93. data/lib/rattler/back_end/parser_generator/top_level.rb +8 -6
  94. data/lib/rattler/back_end/parser_generator/top_level.rbc +352 -0
  95. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rb +7 -5
  96. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rbc +1111 -0
  97. data/lib/rattler/back_end/ruby_generator.rbc +1841 -0
  98. data/lib/rattler/grammar.rbc +557 -0
  99. data/lib/rattler/grammar/analysis.rbc +1944 -0
  100. data/lib/rattler/grammar/grammar.rbc +1090 -0
  101. data/lib/rattler/grammar/grammar_dsl.rbc +1401 -0
  102. data/lib/rattler/grammar/grammar_parser.rbc +2096 -0
  103. data/lib/rattler/grammar/metagrammar.rb +1 -1
  104. data/lib/rattler/grammar/metagrammar.rbc +11014 -0
  105. data/lib/rattler/grammar/rattler.rtlr +1 -1
  106. data/lib/rattler/parsers.rb +1 -1
  107. data/lib/rattler/parsers.rbc +1006 -0
  108. data/lib/rattler/parsers/action_code.rb +20 -26
  109. data/lib/rattler/parsers/action_code.rbc +1577 -0
  110. data/lib/rattler/parsers/apply.rbc +562 -0
  111. data/lib/rattler/parsers/assert.rbc +378 -0
  112. data/lib/rattler/parsers/back_reference.rbc +871 -0
  113. data/lib/rattler/parsers/choice.rbc +607 -0
  114. data/lib/rattler/parsers/combinator_parser.rbc +612 -0
  115. data/lib/rattler/parsers/combining.rbc +570 -0
  116. data/lib/rattler/parsers/direct_action.rbc +1472 -0
  117. data/lib/rattler/parsers/disallow.rbc +379 -0
  118. data/lib/rattler/parsers/dispatch_action.rbc +2078 -0
  119. data/lib/rattler/parsers/eof.rbc +567 -0
  120. data/lib/rattler/parsers/fail.rbc +745 -0
  121. data/lib/rattler/parsers/label.rbc +749 -0
  122. data/lib/rattler/parsers/list.rbc +292 -0
  123. data/lib/rattler/parsers/{list.rb → list0.rb} +3 -3
  124. data/lib/rattler/parsers/list0.rbc +292 -0
  125. data/lib/rattler/parsers/list1.rbc +305 -0
  126. data/lib/rattler/parsers/list_parser.rbc +886 -0
  127. data/lib/rattler/parsers/match.rbc +621 -0
  128. data/lib/rattler/parsers/node_code.rbc +1064 -0
  129. data/lib/rattler/parsers/one_or_more.rbc +475 -0
  130. data/lib/rattler/parsers/optional.rbc +450 -0
  131. data/lib/rattler/parsers/parser.rbc +994 -0
  132. data/lib/rattler/parsers/parser_dsl.rb +6 -4
  133. data/lib/rattler/parsers/parser_dsl.rbc +4765 -0
  134. data/lib/rattler/parsers/predicate.rbc +490 -0
  135. data/lib/rattler/parsers/rule.rbc +777 -0
  136. data/lib/rattler/parsers/rule_set.rbc +1438 -0
  137. data/lib/rattler/parsers/sequence.rbc +1040 -0
  138. data/lib/rattler/parsers/skip.rbc +613 -0
  139. data/lib/rattler/parsers/token.rbc +457 -0
  140. data/lib/rattler/parsers/zero_or_more.rbc +462 -0
  141. data/lib/rattler/runner.rbc +3813 -0
  142. data/lib/rattler/runtime.rbc +370 -0
  143. data/lib/rattler/runtime/extended_packrat_parser.rbc +2351 -0
  144. data/lib/rattler/runtime/packrat_parser.rbc +1390 -0
  145. data/lib/rattler/runtime/parse_failure.rbc +909 -0
  146. data/lib/rattler/runtime/parse_node.rbc +1007 -0
  147. data/lib/rattler/runtime/parser.rbc +2267 -0
  148. data/lib/rattler/runtime/parser_helper.rbc +337 -0
  149. data/lib/rattler/runtime/recursive_descent_parser.rbc +942 -0
  150. data/lib/rattler/util.rbc +286 -0
  151. data/lib/rattler/util/graphviz.rbc +327 -0
  152. data/lib/rattler/util/graphviz/node_builder.rbc +2207 -0
  153. data/lib/rattler/util/line_counter.rbc +988 -0
  154. data/lib/rattler/util/node.rbc +2393 -0
  155. data/lib/rattler/util/parser_spec_helper.rbc +2533 -0
  156. data/spec/rattler/back_end/compiler_spec.rbc +1187 -0
  157. data/spec/rattler/back_end/optimizer/flatten_choice_spec.rbc +2093 -0
  158. data/spec/rattler/back_end/optimizer/flatten_sequence_spec.rbc +4055 -0
  159. data/spec/rattler/back_end/optimizer/inline_regular_rules_spec.rbc +2345 -0
  160. data/spec/rattler/back_end/optimizer/join_match_capturing_sequence_spec.rbc +7006 -0
  161. data/spec/rattler/back_end/optimizer/join_match_choice_spec.rbc +3252 -0
  162. data/spec/rattler/back_end/optimizer/join_match_matching_sequence_spec.rbc +3681 -0
  163. data/spec/rattler/back_end/optimizer/join_predicate_bare_match_spec.rbc +5603 -0
  164. data/spec/rattler/back_end/optimizer/join_predicate_nested_match_spec.rbc +5232 -0
  165. data/spec/rattler/back_end/optimizer/join_predicate_or_bare_match_spec.rbc +4272 -0
  166. data/spec/rattler/back_end/optimizer/join_predicate_or_nested_match_spec.rbc +4342 -0
  167. data/spec/rattler/back_end/optimizer/reduce_repeat_match_spec.rbc +2960 -0
  168. data/spec/rattler/back_end/optimizer/simplify_redundant_repeat_spec.rbc +6929 -0
  169. data/spec/rattler/back_end/optimizer/simplify_token_match_spec.rbc +2327 -0
  170. data/spec/rattler/back_end/optimizer_spec.rbc +372 -0
  171. data/spec/rattler/back_end/parser_generator/apply_generator_spec.rbc +4710 -0
  172. data/spec/rattler/back_end/parser_generator/assert_generator_spec.rbc +4697 -0
  173. data/spec/rattler/back_end/parser_generator/back_reference_generator_spec.rbc +4855 -0
  174. data/spec/rattler/back_end/parser_generator/choice_generator_spec.rbc +5350 -0
  175. data/spec/rattler/back_end/parser_generator/direct_action_generator_spec.rbc +4737 -0
  176. data/spec/rattler/back_end/parser_generator/disallow_generator_spec.rbc +4697 -0
  177. data/spec/rattler/back_end/parser_generator/dispatch_action_generator_spec.rbc +4731 -0
  178. data/spec/rattler/back_end/parser_generator/fail_generator_spec.rbc +2115 -0
  179. data/spec/rattler/back_end/parser_generator/group_match_generator_spec.rbc +4195 -0
  180. data/spec/rattler/back_end/parser_generator/group_match_spec.rbc +1414 -0
  181. data/spec/rattler/back_end/parser_generator/label_generator_spec.rbc +4696 -0
  182. data/spec/rattler/back_end/parser_generator/list1_generator_spec.rbc +5213 -0
  183. data/spec/rattler/back_end/parser_generator/list_generator_spec.rb +3 -3
  184. data/spec/rattler/back_end/parser_generator/list_generator_spec.rbc +5179 -0
  185. data/spec/rattler/back_end/parser_generator/match_generator_spec.rbc +4681 -0
  186. data/spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rbc +4957 -0
  187. data/spec/rattler/back_end/parser_generator/optional_generator_spec.rbc +4704 -0
  188. data/spec/rattler/back_end/parser_generator/rule_generator_spec.rbc +545 -0
  189. data/spec/rattler/back_end/parser_generator/rule_set_generator_spec.rbc +1110 -0
  190. data/spec/rattler/back_end/parser_generator/sequence_generator_spec.rbc +5453 -0
  191. data/spec/rattler/back_end/parser_generator/skip_generator_spec.rbc +4691 -0
  192. data/spec/rattler/back_end/parser_generator/token_generator_spec.rbc +4691 -0
  193. data/spec/rattler/back_end/parser_generator/zero_or_more_generator_spec.rbc +4924 -0
  194. data/spec/rattler/back_end/ruby_generator_spec.rbc +2460 -0
  195. data/spec/rattler/back_end/shared_compiler_examples.rbc +41886 -0
  196. data/spec/rattler/grammar/analysis_spec.rbc +4365 -0
  197. data/spec/rattler/grammar/grammar_parser_spec.rbc +10344 -0
  198. data/spec/rattler/grammar/grammar_spec.rbc +1701 -0
  199. data/spec/rattler/parsers/action_code_spec.rb +0 -29
  200. data/spec/rattler/parsers/action_code_spec.rbc +4674 -0
  201. data/spec/rattler/parsers/apply_spec.rbc +851 -0
  202. data/spec/rattler/parsers/assert_spec.rbc +752 -0
  203. data/spec/rattler/parsers/back_reference_spec.rbc +1002 -0
  204. data/spec/rattler/parsers/choice_spec.rbc +1696 -0
  205. data/spec/rattler/parsers/combinator_parser_spec.rbc +361 -0
  206. data/spec/rattler/parsers/direct_action_spec.rbc +5222 -0
  207. data/spec/rattler/parsers/disallow_spec.rbc +752 -0
  208. data/spec/rattler/parsers/dispatch_action_spec.rbc +3033 -0
  209. data/spec/rattler/parsers/eof_spec.rbc +728 -0
  210. data/spec/rattler/parsers/fail_spec.rbc +548 -0
  211. data/spec/rattler/parsers/label_spec.rbc +1091 -0
  212. data/spec/rattler/parsers/{list_spec.rb → list0_spec.rb} +5 -5
  213. data/spec/rattler/parsers/list0_spec.rbc +2308 -0
  214. data/spec/rattler/parsers/list1_spec.rbc +2287 -0
  215. data/spec/rattler/parsers/list_spec.rbc +2308 -0
  216. data/spec/rattler/parsers/match_spec.rbc +780 -0
  217. data/spec/rattler/parsers/node_code_spec.rbc +1754 -0
  218. data/spec/rattler/parsers/one_or_more_spec.rbc +1698 -0
  219. data/spec/rattler/parsers/optional_spec.rbc +1717 -0
  220. data/spec/rattler/parsers/parser_dsl_spec.rb +2 -2
  221. data/spec/rattler/parsers/parser_dsl_spec.rbc +10150 -0
  222. data/spec/rattler/parsers/rule_set_spec.rbc +1060 -0
  223. data/spec/rattler/parsers/sequence_spec.rbc +2899 -0
  224. data/spec/rattler/parsers/skip_spec.rbc +753 -0
  225. data/spec/rattler/parsers/token_spec.rbc +1511 -0
  226. data/spec/rattler/parsers/zero_or_more_spec.rbc +1719 -0
  227. data/spec/rattler/runtime/extended_packrat_parser_spec.rbc +1341 -0
  228. data/spec/rattler/runtime/packrat_parser_spec.rbc +210 -0
  229. data/spec/rattler/runtime/parse_failure_spec.rbc +2244 -0
  230. data/spec/rattler/runtime/parse_node_spec.rbc +2008 -0
  231. data/spec/rattler/runtime/parser_spec.rbc +2757 -0
  232. data/spec/rattler/runtime/recursive_descent_parser_spec.rbc +210 -0
  233. data/spec/rattler/runtime/shared_parser_examples.rbc +2567 -0
  234. data/spec/rattler/util/graphviz/node_builder_spec.rbc +3439 -0
  235. data/spec/rattler/util/line_counter_spec.rbc +2272 -0
  236. data/spec/rattler/util/node_spec.rbc +15023 -0
  237. data/spec/rattler_spec.rbc +1591 -0
  238. data/spec/spec_helper.rbc +336 -0
  239. data/spec/support/combinator_parser_spec_helper.rbc +1284 -0
  240. data/spec/support/compiler_spec_helper.rbc +1941 -0
  241. data/spec/support/parser_generator_spec_helper.rbc +718 -0
  242. data/spec/support/runtime_parser_spec_helper.rbc +313 -0
  243. metadata +421 -82
@@ -6,18 +6,16 @@ module Rattler::BackEnd::ParserGenerator
6
6
  class OptionalGenerator < ExprGenerator #:nodoc:
7
7
  include NestedSubGenerating
8
8
 
9
- def gen_basic_nested(optional, scope={})
10
- atomic_expr { gen_basic_top_level optional, scope }
11
- end
12
-
13
- def gen_basic_top_level(optional, scope={})
9
+ def gen_basic(optional, scope={})
14
10
  if optional.capturing?
15
- @g.surround("(#{result_name} = ", ')') do
16
- generate optional.child, :basic, scope
11
+ expr do
12
+ @g.surround("(#{result_name} = ", ')') do
13
+ generate optional.child, :basic, scope
14
+ end
15
+ @g << " ? [#{result_name}] : []"
17
16
  end
18
- @g << " ? [#{result_name}] : []"
19
17
  else
20
- gen_skip_top_level optional, scope
18
+ gen_skip optional, scope
21
19
  end
22
20
  end
23
21
 
@@ -29,52 +27,34 @@ module Rattler::BackEnd::ParserGenerator
29
27
  @g << 'false'
30
28
  end
31
29
 
32
- def gen_dispatch_action_nested(optional, code, scope={})
33
- atomic_block { gen_dispatch_action_top_level optional, code, scope }
34
- end
35
-
36
- def gen_dispatch_action_top_level(optional, code, scope={})
37
- @g << "#{result_name} = "
38
- generate optional.child, :basic, scope
39
- @g.newline << code.bind(scope, "#{result_name} ? [#{result_name}] : []")
40
- end
41
-
42
- def gen_direct_action_nested(optional, code, scope={})
43
- atomic_block { gen_direct_action_top_level optional, code, scope }
44
- end
45
-
46
- def gen_direct_action_top_level(optional, code, scope={})
47
- @g << "#{result_name} = "
48
- generate optional.child, :basic, scope
49
- @g.newline <<
50
- '(' << code.bind(scope, ["(#{result_name} ? [#{result_name}] : [])"]) << ')'
51
- end
52
-
53
- def gen_token_nested(optional, scope={})
54
- atomic_block { gen_token_top_level optional, scope }
55
- end
56
-
57
- def gen_token_top_level(optional, scope={})
58
- generate optional.child, :token, scope
59
- @g << " || ''"
30
+ def gen_dispatch_action(optional, code, scope={})
31
+ expr :block do
32
+ @g << "#{result_name} = "
33
+ generate optional.child, :basic, scope
34
+ @g.newline << code.bind(scope, "#{result_name} ? [#{result_name}] : []")
35
+ end
60
36
  end
61
37
 
62
- def gen_skip_nested(optional, scope={})
63
- atomic_block { gen_skip_top_level optional, scope }
38
+ def gen_direct_action(optional, code, scope={})
39
+ expr :block do
40
+ @g << "#{result_name} = "
41
+ generate optional.child, :basic, scope
42
+ @g.newline <<
43
+ '(' << code.bind(scope, ["(#{result_name} ? [#{result_name}] : [])"]) << ')'
44
+ end
64
45
  end
65
46
 
66
- def gen_skip_top_level(optional, scope={})
67
- generate optional.child, :intermediate_skip, scope
68
- @g.newline << 'true'
47
+ def gen_token(optional, scope={})
48
+ expr :block do
49
+ generate optional.child, :token, scope
50
+ @g << " || ''"
51
+ end
69
52
  end
70
53
 
71
- private
72
-
73
- def gen_capturing(optional, scope={})
74
- if optional.capturing?
75
- yield
76
- else
77
- gen_skip_top_level optional, scope
54
+ def gen_skip(optional, scope={})
55
+ expr :block do
56
+ generate optional.child, :intermediate_skip, scope
57
+ @g.newline << 'true'
78
58
  end
79
59
  end
80
60
 
@@ -0,0 +1,2025 @@
1
+ !RBIX
2
+ 3105615304195158506
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 41
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
+ 43
29
+ 5
30
+ 49
31
+ 6
32
+ 2
33
+ 13
34
+ 99
35
+ 12
36
+ 7
37
+ 7
38
+ 12
39
+ 7
40
+ 8
41
+ 12
42
+ 65
43
+ 12
44
+ 49
45
+ 9
46
+ 4
47
+ 15
48
+ 49
49
+ 7
50
+ 0
51
+ 15
52
+ 2
53
+ 11
54
+ I
55
+ 6
56
+ I
57
+ 0
58
+ I
59
+ 0
60
+ I
61
+ 0
62
+ n
63
+ p
64
+ 10
65
+ s
66
+ 33
67
+ rattler/back_end/parser_generator
68
+ x
69
+ 7
70
+ require
71
+ x
72
+ 15
73
+ ParserGenerator
74
+ x
75
+ 7
76
+ Rattler
77
+ n
78
+ x
79
+ 7
80
+ BackEnd
81
+ x
82
+ 17
83
+ open_module_under
84
+ x
85
+ 15
86
+ __module_init__
87
+ M
88
+ 1
89
+ n
90
+ n
91
+ x
92
+ 15
93
+ ParserGenerator
94
+ i
95
+ 115
96
+ 5
97
+ 66
98
+ 99
99
+ 7
100
+ 0
101
+ 45
102
+ 1
103
+ 2
104
+ 65
105
+ 49
106
+ 3
107
+ 3
108
+ 13
109
+ 99
110
+ 12
111
+ 7
112
+ 4
113
+ 12
114
+ 7
115
+ 5
116
+ 12
117
+ 65
118
+ 12
119
+ 49
120
+ 6
121
+ 4
122
+ 15
123
+ 49
124
+ 4
125
+ 0
126
+ 15
127
+ 99
128
+ 7
129
+ 7
130
+ 45
131
+ 0
132
+ 8
133
+ 65
134
+ 49
135
+ 3
136
+ 3
137
+ 13
138
+ 99
139
+ 12
140
+ 7
141
+ 4
142
+ 12
143
+ 7
144
+ 9
145
+ 12
146
+ 65
147
+ 12
148
+ 49
149
+ 6
150
+ 4
151
+ 15
152
+ 49
153
+ 4
154
+ 0
155
+ 15
156
+ 99
157
+ 7
158
+ 10
159
+ 7
160
+ 11
161
+ 65
162
+ 45
163
+ 0
164
+ 12
165
+ 49
166
+ 6
167
+ 4
168
+ 15
169
+ 99
170
+ 7
171
+ 13
172
+ 45
173
+ 0
174
+ 14
175
+ 65
176
+ 49
177
+ 3
178
+ 3
179
+ 13
180
+ 99
181
+ 12
182
+ 7
183
+ 4
184
+ 12
185
+ 7
186
+ 15
187
+ 12
188
+ 65
189
+ 12
190
+ 49
191
+ 6
192
+ 4
193
+ 15
194
+ 49
195
+ 4
196
+ 0
197
+ 15
198
+ 99
199
+ 7
200
+ 16
201
+ 7
202
+ 17
203
+ 65
204
+ 45
205
+ 0
206
+ 18
207
+ 49
208
+ 6
209
+ 4
210
+ 11
211
+ I
212
+ 6
213
+ I
214
+ 0
215
+ I
216
+ 0
217
+ I
218
+ 0
219
+ n
220
+ p
221
+ 19
222
+ x
223
+ 17
224
+ OptionalGenerator
225
+ x
226
+ 13
227
+ ExprGenerator
228
+ n
229
+ x
230
+ 10
231
+ open_class
232
+ x
233
+ 14
234
+ __class_init__
235
+ M
236
+ 1
237
+ n
238
+ n
239
+ x
240
+ 17
241
+ OptionalGenerator
242
+ i
243
+ 109
244
+ 5
245
+ 66
246
+ 5
247
+ 45
248
+ 0
249
+ 1
250
+ 47
251
+ 49
252
+ 2
253
+ 1
254
+ 15
255
+ 99
256
+ 7
257
+ 3
258
+ 7
259
+ 4
260
+ 65
261
+ 67
262
+ 49
263
+ 5
264
+ 0
265
+ 49
266
+ 6
267
+ 4
268
+ 15
269
+ 99
270
+ 7
271
+ 7
272
+ 7
273
+ 8
274
+ 65
275
+ 67
276
+ 49
277
+ 5
278
+ 0
279
+ 49
280
+ 6
281
+ 4
282
+ 15
283
+ 99
284
+ 7
285
+ 9
286
+ 7
287
+ 10
288
+ 65
289
+ 67
290
+ 49
291
+ 5
292
+ 0
293
+ 49
294
+ 6
295
+ 4
296
+ 15
297
+ 99
298
+ 7
299
+ 11
300
+ 7
301
+ 12
302
+ 65
303
+ 67
304
+ 49
305
+ 5
306
+ 0
307
+ 49
308
+ 6
309
+ 4
310
+ 15
311
+ 99
312
+ 7
313
+ 13
314
+ 7
315
+ 14
316
+ 65
317
+ 67
318
+ 49
319
+ 5
320
+ 0
321
+ 49
322
+ 6
323
+ 4
324
+ 15
325
+ 99
326
+ 7
327
+ 15
328
+ 7
329
+ 16
330
+ 65
331
+ 67
332
+ 49
333
+ 5
334
+ 0
335
+ 49
336
+ 6
337
+ 4
338
+ 15
339
+ 99
340
+ 7
341
+ 17
342
+ 7
343
+ 18
344
+ 65
345
+ 67
346
+ 49
347
+ 5
348
+ 0
349
+ 49
350
+ 6
351
+ 4
352
+ 11
353
+ I
354
+ 5
355
+ I
356
+ 0
357
+ I
358
+ 0
359
+ I
360
+ 0
361
+ n
362
+ p
363
+ 19
364
+ x
365
+ 19
366
+ NestedSubGenerating
367
+ n
368
+ x
369
+ 7
370
+ include
371
+ x
372
+ 9
373
+ gen_basic
374
+ M
375
+ 1
376
+ n
377
+ n
378
+ x
379
+ 9
380
+ gen_basic
381
+ i
382
+ 40
383
+ 23
384
+ 1
385
+ 10
386
+ 14
387
+ 44
388
+ 43
389
+ 0
390
+ 78
391
+ 49
392
+ 1
393
+ 1
394
+ 19
395
+ 1
396
+ 15
397
+ 20
398
+ 0
399
+ 49
400
+ 2
401
+ 0
402
+ 9
403
+ 30
404
+ 5
405
+ 56
406
+ 3
407
+ 47
408
+ 50
409
+ 4
410
+ 0
411
+ 8
412
+ 39
413
+ 5
414
+ 20
415
+ 0
416
+ 20
417
+ 1
418
+ 47
419
+ 49
420
+ 5
421
+ 2
422
+ 11
423
+ I
424
+ 5
425
+ I
426
+ 2
427
+ I
428
+ 1
429
+ I
430
+ 2
431
+ n
432
+ p
433
+ 6
434
+ x
435
+ 4
436
+ Hash
437
+ x
438
+ 16
439
+ new_from_literal
440
+ x
441
+ 10
442
+ capturing?
443
+ M
444
+ 1
445
+ p
446
+ 2
447
+ x
448
+ 9
449
+ for_block
450
+ t
451
+ n
452
+ x
453
+ 9
454
+ gen_basic
455
+ i
456
+ 41
457
+ 39
458
+ 0
459
+ 7
460
+ 1
461
+ 5
462
+ 48
463
+ 2
464
+ 47
465
+ 101
466
+ 3
467
+ 7
468
+ 4
469
+ 63
470
+ 3
471
+ 7
472
+ 5
473
+ 64
474
+ 56
475
+ 6
476
+ 50
477
+ 7
478
+ 2
479
+ 15
480
+ 39
481
+ 0
482
+ 7
483
+ 8
484
+ 5
485
+ 48
486
+ 2
487
+ 47
488
+ 101
489
+ 3
490
+ 7
491
+ 9
492
+ 63
493
+ 3
494
+ 49
495
+ 10
496
+ 1
497
+ 11
498
+ I
499
+ 5
500
+ I
501
+ 0
502
+ I
503
+ 0
504
+ I
505
+ 0
506
+ I
507
+ -2
508
+ p
509
+ 11
510
+ x
511
+ 2
512
+ @g
513
+ s
514
+ 1
515
+ (
516
+ x
517
+ 11
518
+ result_name
519
+ x
520
+ 4
521
+ to_s
522
+ s
523
+ 3
524
+ =
525
+ s
526
+ 1
527
+ )
528
+ M
529
+ 1
530
+ p
531
+ 2
532
+ x
533
+ 9
534
+ for_block
535
+ t
536
+ n
537
+ x
538
+ 9
539
+ gen_basic
540
+ i
541
+ 17
542
+ 5
543
+ 21
544
+ 2
545
+ 0
546
+ 49
547
+ 0
548
+ 0
549
+ 7
550
+ 1
551
+ 21
552
+ 2
553
+ 1
554
+ 47
555
+ 49
556
+ 2
557
+ 3
558
+ 11
559
+ I
560
+ 5
561
+ I
562
+ 0
563
+ I
564
+ 0
565
+ I
566
+ 0
567
+ I
568
+ -2
569
+ p
570
+ 3
571
+ x
572
+ 5
573
+ child
574
+ x
575
+ 5
576
+ basic
577
+ x
578
+ 8
579
+ generate
580
+ p
581
+ 3
582
+ I
583
+ 0
584
+ I
585
+ d
586
+ I
587
+ 11
588
+ x
589
+ 105
590
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
591
+ p
592
+ 0
593
+ x
594
+ 8
595
+ surround
596
+ s
597
+ 4
598
+ ? [
599
+ s
600
+ 6
601
+ ] : []
602
+ x
603
+ 2
604
+ <<
605
+ p
606
+ 5
607
+ I
608
+ 0
609
+ I
610
+ c
611
+ I
612
+ 17
613
+ I
614
+ f
615
+ I
616
+ 29
617
+ x
618
+ 105
619
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
620
+ p
621
+ 0
622
+ x
623
+ 4
624
+ expr
625
+ x
626
+ 8
627
+ gen_skip
628
+ p
629
+ 9
630
+ I
631
+ -1
632
+ I
633
+ 9
634
+ I
635
+ e
636
+ I
637
+ a
638
+ I
639
+ 15
640
+ I
641
+ b
642
+ I
643
+ 1e
644
+ I
645
+ 12
646
+ I
647
+ 28
648
+ x
649
+ 105
650
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
651
+ p
652
+ 2
653
+ x
654
+ 8
655
+ optional
656
+ x
657
+ 5
658
+ scope
659
+ x
660
+ 17
661
+ method_visibility
662
+ x
663
+ 15
664
+ add_defn_method
665
+ x
666
+ 10
667
+ gen_assert
668
+ M
669
+ 1
670
+ n
671
+ n
672
+ x
673
+ 10
674
+ gen_assert
675
+ i
676
+ 23
677
+ 23
678
+ 1
679
+ 10
680
+ 14
681
+ 44
682
+ 43
683
+ 0
684
+ 78
685
+ 49
686
+ 1
687
+ 1
688
+ 19
689
+ 1
690
+ 15
691
+ 39
692
+ 2
693
+ 7
694
+ 3
695
+ 64
696
+ 49
697
+ 4
698
+ 1
699
+ 11
700
+ I
701
+ 4
702
+ I
703
+ 2
704
+ I
705
+ 1
706
+ I
707
+ 2
708
+ n
709
+ p
710
+ 5
711
+ x
712
+ 4
713
+ Hash
714
+ x
715
+ 16
716
+ new_from_literal
717
+ x
718
+ 2
719
+ @g
720
+ s
721
+ 4
722
+ true
723
+ x
724
+ 2
725
+ <<
726
+ p
727
+ 5
728
+ I
729
+ -1
730
+ I
731
+ 16
732
+ I
733
+ e
734
+ I
735
+ 17
736
+ I
737
+ 17
738
+ x
739
+ 105
740
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
741
+ p
742
+ 2
743
+ x
744
+ 8
745
+ optional
746
+ x
747
+ 5
748
+ scope
749
+ x
750
+ 12
751
+ gen_disallow
752
+ M
753
+ 1
754
+ n
755
+ n
756
+ x
757
+ 12
758
+ gen_disallow
759
+ i
760
+ 23
761
+ 23
762
+ 1
763
+ 10
764
+ 14
765
+ 44
766
+ 43
767
+ 0
768
+ 78
769
+ 49
770
+ 1
771
+ 1
772
+ 19
773
+ 1
774
+ 15
775
+ 39
776
+ 2
777
+ 7
778
+ 3
779
+ 64
780
+ 49
781
+ 4
782
+ 1
783
+ 11
784
+ I
785
+ 4
786
+ I
787
+ 2
788
+ I
789
+ 1
790
+ I
791
+ 2
792
+ n
793
+ p
794
+ 5
795
+ x
796
+ 4
797
+ Hash
798
+ x
799
+ 16
800
+ new_from_literal
801
+ x
802
+ 2
803
+ @g
804
+ s
805
+ 5
806
+ false
807
+ x
808
+ 2
809
+ <<
810
+ p
811
+ 5
812
+ I
813
+ -1
814
+ I
815
+ 1a
816
+ I
817
+ e
818
+ I
819
+ 1b
820
+ I
821
+ 17
822
+ x
823
+ 105
824
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
825
+ p
826
+ 2
827
+ x
828
+ 8
829
+ optional
830
+ x
831
+ 5
832
+ scope
833
+ x
834
+ 19
835
+ gen_dispatch_action
836
+ M
837
+ 1
838
+ n
839
+ n
840
+ x
841
+ 19
842
+ gen_dispatch_action
843
+ i
844
+ 24
845
+ 23
846
+ 2
847
+ 10
848
+ 14
849
+ 44
850
+ 43
851
+ 0
852
+ 78
853
+ 49
854
+ 1
855
+ 1
856
+ 19
857
+ 2
858
+ 15
859
+ 5
860
+ 7
861
+ 2
862
+ 56
863
+ 3
864
+ 47
865
+ 50
866
+ 4
867
+ 1
868
+ 11
869
+ I
870
+ 6
871
+ I
872
+ 3
873
+ I
874
+ 2
875
+ I
876
+ 3
877
+ n
878
+ p
879
+ 5
880
+ x
881
+ 4
882
+ Hash
883
+ x
884
+ 16
885
+ new_from_literal
886
+ x
887
+ 5
888
+ block
889
+ M
890
+ 1
891
+ p
892
+ 2
893
+ x
894
+ 9
895
+ for_block
896
+ t
897
+ n
898
+ x
899
+ 19
900
+ gen_dispatch_action
901
+ i
902
+ 69
903
+ 39
904
+ 0
905
+ 5
906
+ 48
907
+ 1
908
+ 47
909
+ 101
910
+ 2
911
+ 7
912
+ 3
913
+ 63
914
+ 2
915
+ 49
916
+ 4
917
+ 1
918
+ 15
919
+ 5
920
+ 21
921
+ 1
922
+ 0
923
+ 49
924
+ 5
925
+ 0
926
+ 7
927
+ 6
928
+ 21
929
+ 1
930
+ 2
931
+ 47
932
+ 49
933
+ 7
934
+ 3
935
+ 15
936
+ 39
937
+ 0
938
+ 49
939
+ 8
940
+ 0
941
+ 21
942
+ 1
943
+ 1
944
+ 21
945
+ 1
946
+ 2
947
+ 5
948
+ 48
949
+ 1
950
+ 47
951
+ 101
952
+ 2
953
+ 7
954
+ 9
955
+ 5
956
+ 48
957
+ 1
958
+ 47
959
+ 101
960
+ 2
961
+ 7
962
+ 10
963
+ 63
964
+ 4
965
+ 49
966
+ 11
967
+ 2
968
+ 49
969
+ 4
970
+ 1
971
+ 11
972
+ I
973
+ 8
974
+ I
975
+ 0
976
+ I
977
+ 0
978
+ I
979
+ 0
980
+ I
981
+ -2
982
+ p
983
+ 12
984
+ x
985
+ 2
986
+ @g
987
+ x
988
+ 11
989
+ result_name
990
+ x
991
+ 4
992
+ to_s
993
+ s
994
+ 3
995
+ =
996
+ x
997
+ 2
998
+ <<
999
+ x
1000
+ 5
1001
+ child
1002
+ x
1003
+ 5
1004
+ basic
1005
+ x
1006
+ 8
1007
+ generate
1008
+ x
1009
+ 7
1010
+ newline
1011
+ s
1012
+ 4
1013
+ ? [
1014
+ s
1015
+ 6
1016
+ ] : []
1017
+ x
1018
+ 4
1019
+ bind
1020
+ p
1021
+ 7
1022
+ I
1023
+ 0
1024
+ I
1025
+ 20
1026
+ I
1027
+ 10
1028
+ I
1029
+ 21
1030
+ I
1031
+ 21
1032
+ I
1033
+ 22
1034
+ I
1035
+ 45
1036
+ x
1037
+ 105
1038
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1039
+ p
1040
+ 0
1041
+ x
1042
+ 4
1043
+ expr
1044
+ p
1045
+ 5
1046
+ I
1047
+ -1
1048
+ I
1049
+ 1e
1050
+ I
1051
+ e
1052
+ I
1053
+ 1f
1054
+ I
1055
+ 18
1056
+ x
1057
+ 105
1058
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1059
+ p
1060
+ 3
1061
+ x
1062
+ 8
1063
+ optional
1064
+ x
1065
+ 4
1066
+ code
1067
+ x
1068
+ 5
1069
+ scope
1070
+ x
1071
+ 17
1072
+ gen_direct_action
1073
+ M
1074
+ 1
1075
+ n
1076
+ n
1077
+ x
1078
+ 17
1079
+ gen_direct_action
1080
+ i
1081
+ 24
1082
+ 23
1083
+ 2
1084
+ 10
1085
+ 14
1086
+ 44
1087
+ 43
1088
+ 0
1089
+ 78
1090
+ 49
1091
+ 1
1092
+ 1
1093
+ 19
1094
+ 2
1095
+ 15
1096
+ 5
1097
+ 7
1098
+ 2
1099
+ 56
1100
+ 3
1101
+ 47
1102
+ 50
1103
+ 4
1104
+ 1
1105
+ 11
1106
+ I
1107
+ 6
1108
+ I
1109
+ 3
1110
+ I
1111
+ 2
1112
+ I
1113
+ 3
1114
+ n
1115
+ p
1116
+ 5
1117
+ x
1118
+ 4
1119
+ Hash
1120
+ x
1121
+ 16
1122
+ new_from_literal
1123
+ x
1124
+ 5
1125
+ block
1126
+ M
1127
+ 1
1128
+ p
1129
+ 2
1130
+ x
1131
+ 9
1132
+ for_block
1133
+ t
1134
+ n
1135
+ x
1136
+ 17
1137
+ gen_direct_action
1138
+ i
1139
+ 85
1140
+ 39
1141
+ 0
1142
+ 5
1143
+ 48
1144
+ 1
1145
+ 47
1146
+ 101
1147
+ 2
1148
+ 7
1149
+ 3
1150
+ 63
1151
+ 2
1152
+ 49
1153
+ 4
1154
+ 1
1155
+ 15
1156
+ 5
1157
+ 21
1158
+ 1
1159
+ 0
1160
+ 49
1161
+ 5
1162
+ 0
1163
+ 7
1164
+ 6
1165
+ 21
1166
+ 1
1167
+ 2
1168
+ 47
1169
+ 49
1170
+ 7
1171
+ 3
1172
+ 15
1173
+ 39
1174
+ 0
1175
+ 49
1176
+ 8
1177
+ 0
1178
+ 7
1179
+ 9
1180
+ 64
1181
+ 49
1182
+ 4
1183
+ 1
1184
+ 21
1185
+ 1
1186
+ 1
1187
+ 21
1188
+ 1
1189
+ 2
1190
+ 7
1191
+ 9
1192
+ 5
1193
+ 48
1194
+ 1
1195
+ 47
1196
+ 101
1197
+ 2
1198
+ 7
1199
+ 10
1200
+ 5
1201
+ 48
1202
+ 1
1203
+ 47
1204
+ 101
1205
+ 2
1206
+ 7
1207
+ 11
1208
+ 63
1209
+ 5
1210
+ 35
1211
+ 1
1212
+ 49
1213
+ 12
1214
+ 2
1215
+ 49
1216
+ 4
1217
+ 1
1218
+ 7
1219
+ 13
1220
+ 64
1221
+ 49
1222
+ 4
1223
+ 1
1224
+ 11
1225
+ I
1226
+ 9
1227
+ I
1228
+ 0
1229
+ I
1230
+ 0
1231
+ I
1232
+ 0
1233
+ I
1234
+ -2
1235
+ p
1236
+ 14
1237
+ x
1238
+ 2
1239
+ @g
1240
+ x
1241
+ 11
1242
+ result_name
1243
+ x
1244
+ 4
1245
+ to_s
1246
+ s
1247
+ 3
1248
+ =
1249
+ x
1250
+ 2
1251
+ <<
1252
+ x
1253
+ 5
1254
+ child
1255
+ x
1256
+ 5
1257
+ basic
1258
+ x
1259
+ 8
1260
+ generate
1261
+ x
1262
+ 7
1263
+ newline
1264
+ s
1265
+ 1
1266
+ (
1267
+ s
1268
+ 4
1269
+ ? [
1270
+ s
1271
+ 7
1272
+ ] : [])
1273
+ x
1274
+ 4
1275
+ bind
1276
+ s
1277
+ 1
1278
+ )
1279
+ p
1280
+ 19
1281
+ I
1282
+ 0
1283
+ I
1284
+ 28
1285
+ I
1286
+ 10
1287
+ I
1288
+ 29
1289
+ I
1290
+ 21
1291
+ I
1292
+ 2a
1293
+ I
1294
+ 26
1295
+ I
1296
+ 2b
1297
+ I
1298
+ 29
1299
+ I
1300
+ 2a
1301
+ I
1302
+ 2c
1303
+ I
1304
+ 2b
1305
+ I
1306
+ 4b
1307
+ I
1308
+ 2a
1309
+ I
1310
+ 4e
1311
+ I
1312
+ 2b
1313
+ I
1314
+ 51
1315
+ I
1316
+ 2a
1317
+ I
1318
+ 55
1319
+ x
1320
+ 105
1321
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1322
+ p
1323
+ 0
1324
+ x
1325
+ 4
1326
+ expr
1327
+ p
1328
+ 5
1329
+ I
1330
+ -1
1331
+ I
1332
+ 26
1333
+ I
1334
+ e
1335
+ I
1336
+ 27
1337
+ I
1338
+ 18
1339
+ x
1340
+ 105
1341
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1342
+ p
1343
+ 3
1344
+ x
1345
+ 8
1346
+ optional
1347
+ x
1348
+ 4
1349
+ code
1350
+ x
1351
+ 5
1352
+ scope
1353
+ x
1354
+ 9
1355
+ gen_token
1356
+ M
1357
+ 1
1358
+ n
1359
+ n
1360
+ x
1361
+ 9
1362
+ gen_token
1363
+ i
1364
+ 24
1365
+ 23
1366
+ 1
1367
+ 10
1368
+ 14
1369
+ 44
1370
+ 43
1371
+ 0
1372
+ 78
1373
+ 49
1374
+ 1
1375
+ 1
1376
+ 19
1377
+ 1
1378
+ 15
1379
+ 5
1380
+ 7
1381
+ 2
1382
+ 56
1383
+ 3
1384
+ 47
1385
+ 50
1386
+ 4
1387
+ 1
1388
+ 11
1389
+ I
1390
+ 5
1391
+ I
1392
+ 2
1393
+ I
1394
+ 1
1395
+ I
1396
+ 2
1397
+ n
1398
+ p
1399
+ 5
1400
+ x
1401
+ 4
1402
+ Hash
1403
+ x
1404
+ 16
1405
+ new_from_literal
1406
+ x
1407
+ 5
1408
+ block
1409
+ M
1410
+ 1
1411
+ p
1412
+ 2
1413
+ x
1414
+ 9
1415
+ for_block
1416
+ t
1417
+ n
1418
+ x
1419
+ 9
1420
+ gen_token
1421
+ i
1422
+ 26
1423
+ 5
1424
+ 21
1425
+ 1
1426
+ 0
1427
+ 49
1428
+ 0
1429
+ 0
1430
+ 7
1431
+ 1
1432
+ 21
1433
+ 1
1434
+ 1
1435
+ 47
1436
+ 49
1437
+ 2
1438
+ 3
1439
+ 15
1440
+ 39
1441
+ 3
1442
+ 7
1443
+ 4
1444
+ 64
1445
+ 49
1446
+ 5
1447
+ 1
1448
+ 11
1449
+ I
1450
+ 5
1451
+ I
1452
+ 0
1453
+ I
1454
+ 0
1455
+ I
1456
+ 0
1457
+ I
1458
+ -2
1459
+ p
1460
+ 6
1461
+ x
1462
+ 5
1463
+ child
1464
+ x
1465
+ 5
1466
+ token
1467
+ x
1468
+ 8
1469
+ generate
1470
+ x
1471
+ 2
1472
+ @g
1473
+ s
1474
+ 6
1475
+ || ''
1476
+ x
1477
+ 2
1478
+ <<
1479
+ p
1480
+ 5
1481
+ I
1482
+ 0
1483
+ I
1484
+ 31
1485
+ I
1486
+ 11
1487
+ I
1488
+ 32
1489
+ I
1490
+ 1a
1491
+ x
1492
+ 105
1493
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1494
+ p
1495
+ 0
1496
+ x
1497
+ 4
1498
+ expr
1499
+ p
1500
+ 5
1501
+ I
1502
+ -1
1503
+ I
1504
+ 2f
1505
+ I
1506
+ e
1507
+ I
1508
+ 30
1509
+ I
1510
+ 18
1511
+ x
1512
+ 105
1513
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1514
+ p
1515
+ 2
1516
+ x
1517
+ 8
1518
+ optional
1519
+ x
1520
+ 5
1521
+ scope
1522
+ x
1523
+ 8
1524
+ gen_skip
1525
+ M
1526
+ 1
1527
+ n
1528
+ n
1529
+ x
1530
+ 8
1531
+ gen_skip
1532
+ i
1533
+ 24
1534
+ 23
1535
+ 1
1536
+ 10
1537
+ 14
1538
+ 44
1539
+ 43
1540
+ 0
1541
+ 78
1542
+ 49
1543
+ 1
1544
+ 1
1545
+ 19
1546
+ 1
1547
+ 15
1548
+ 5
1549
+ 7
1550
+ 2
1551
+ 56
1552
+ 3
1553
+ 47
1554
+ 50
1555
+ 4
1556
+ 1
1557
+ 11
1558
+ I
1559
+ 5
1560
+ I
1561
+ 2
1562
+ I
1563
+ 1
1564
+ I
1565
+ 2
1566
+ n
1567
+ p
1568
+ 5
1569
+ x
1570
+ 4
1571
+ Hash
1572
+ x
1573
+ 16
1574
+ new_from_literal
1575
+ x
1576
+ 5
1577
+ block
1578
+ M
1579
+ 1
1580
+ p
1581
+ 2
1582
+ x
1583
+ 9
1584
+ for_block
1585
+ t
1586
+ n
1587
+ x
1588
+ 8
1589
+ gen_skip
1590
+ i
1591
+ 29
1592
+ 5
1593
+ 21
1594
+ 1
1595
+ 0
1596
+ 49
1597
+ 0
1598
+ 0
1599
+ 7
1600
+ 1
1601
+ 21
1602
+ 1
1603
+ 1
1604
+ 47
1605
+ 49
1606
+ 2
1607
+ 3
1608
+ 15
1609
+ 39
1610
+ 3
1611
+ 49
1612
+ 4
1613
+ 0
1614
+ 7
1615
+ 5
1616
+ 64
1617
+ 49
1618
+ 6
1619
+ 1
1620
+ 11
1621
+ I
1622
+ 5
1623
+ I
1624
+ 0
1625
+ I
1626
+ 0
1627
+ I
1628
+ 0
1629
+ I
1630
+ -2
1631
+ p
1632
+ 7
1633
+ x
1634
+ 5
1635
+ child
1636
+ x
1637
+ 17
1638
+ intermediate_skip
1639
+ x
1640
+ 8
1641
+ generate
1642
+ x
1643
+ 2
1644
+ @g
1645
+ x
1646
+ 7
1647
+ newline
1648
+ s
1649
+ 4
1650
+ true
1651
+ x
1652
+ 2
1653
+ <<
1654
+ p
1655
+ 5
1656
+ I
1657
+ 0
1658
+ I
1659
+ 38
1660
+ I
1661
+ 11
1662
+ I
1663
+ 39
1664
+ I
1665
+ 1d
1666
+ x
1667
+ 105
1668
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1669
+ p
1670
+ 0
1671
+ x
1672
+ 4
1673
+ expr
1674
+ p
1675
+ 5
1676
+ I
1677
+ -1
1678
+ I
1679
+ 36
1680
+ I
1681
+ e
1682
+ I
1683
+ 37
1684
+ I
1685
+ 18
1686
+ x
1687
+ 105
1688
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1689
+ p
1690
+ 2
1691
+ x
1692
+ 8
1693
+ optional
1694
+ x
1695
+ 5
1696
+ scope
1697
+ p
1698
+ 17
1699
+ I
1700
+ 2
1701
+ I
1702
+ 7
1703
+ I
1704
+ b
1705
+ I
1706
+ 9
1707
+ I
1708
+ 19
1709
+ I
1710
+ 16
1711
+ I
1712
+ 27
1713
+ I
1714
+ 1a
1715
+ I
1716
+ 35
1717
+ I
1718
+ 1e
1719
+ I
1720
+ 43
1721
+ I
1722
+ 26
1723
+ I
1724
+ 51
1725
+ I
1726
+ 2f
1727
+ I
1728
+ 5f
1729
+ I
1730
+ 36
1731
+ I
1732
+ 6d
1733
+ x
1734
+ 105
1735
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1736
+ p
1737
+ 0
1738
+ x
1739
+ 13
1740
+ attach_method
1741
+ x
1742
+ 23
1743
+ NestedOptionalGenerator
1744
+ n
1745
+ M
1746
+ 1
1747
+ n
1748
+ n
1749
+ x
1750
+ 23
1751
+ NestedOptionalGenerator
1752
+ i
1753
+ 11
1754
+ 5
1755
+ 66
1756
+ 5
1757
+ 45
1758
+ 0
1759
+ 1
1760
+ 47
1761
+ 49
1762
+ 2
1763
+ 1
1764
+ 11
1765
+ I
1766
+ 2
1767
+ I
1768
+ 0
1769
+ I
1770
+ 0
1771
+ I
1772
+ 0
1773
+ n
1774
+ p
1775
+ 3
1776
+ x
1777
+ 6
1778
+ Nested
1779
+ n
1780
+ x
1781
+ 7
1782
+ include
1783
+ p
1784
+ 3
1785
+ I
1786
+ 2
1787
+ I
1788
+ 41
1789
+ I
1790
+ b
1791
+ x
1792
+ 105
1793
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1794
+ p
1795
+ 0
1796
+ x
1797
+ 6
1798
+ nested
1799
+ M
1800
+ 1
1801
+ n
1802
+ n
1803
+ x
1804
+ 6
1805
+ nested
1806
+ i
1807
+ 11
1808
+ 45
1809
+ 0
1810
+ 1
1811
+ 20
1812
+ 0
1813
+ 36
1814
+ 1
1815
+ 51
1816
+ 2
1817
+ 0
1818
+ 11
1819
+ I
1820
+ 4
1821
+ I
1822
+ 1
1823
+ I
1824
+ 0
1825
+ I
1826
+ 0
1827
+ I
1828
+ 0
1829
+ p
1830
+ 3
1831
+ x
1832
+ 23
1833
+ NestedOptionalGenerator
1834
+ n
1835
+ x
1836
+ 3
1837
+ new
1838
+ p
1839
+ 5
1840
+ I
1841
+ -1
1842
+ I
1843
+ 44
1844
+ I
1845
+ 0
1846
+ I
1847
+ 45
1848
+ I
1849
+ b
1850
+ x
1851
+ 105
1852
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1853
+ p
1854
+ 1
1855
+ x
1856
+ 4
1857
+ args
1858
+ n
1859
+ x
1860
+ 25
1861
+ TopLevelOptionalGenerator
1862
+ n
1863
+ M
1864
+ 1
1865
+ n
1866
+ n
1867
+ x
1868
+ 25
1869
+ TopLevelOptionalGenerator
1870
+ i
1871
+ 11
1872
+ 5
1873
+ 66
1874
+ 5
1875
+ 45
1876
+ 0
1877
+ 1
1878
+ 47
1879
+ 49
1880
+ 2
1881
+ 1
1882
+ 11
1883
+ I
1884
+ 2
1885
+ I
1886
+ 0
1887
+ I
1888
+ 0
1889
+ I
1890
+ 0
1891
+ n
1892
+ p
1893
+ 3
1894
+ x
1895
+ 8
1896
+ TopLevel
1897
+ n
1898
+ x
1899
+ 7
1900
+ include
1901
+ p
1902
+ 3
1903
+ I
1904
+ 2
1905
+ I
1906
+ 4a
1907
+ I
1908
+ b
1909
+ x
1910
+ 105
1911
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1912
+ p
1913
+ 0
1914
+ x
1915
+ 9
1916
+ top_level
1917
+ M
1918
+ 1
1919
+ n
1920
+ n
1921
+ x
1922
+ 9
1923
+ top_level
1924
+ i
1925
+ 11
1926
+ 45
1927
+ 0
1928
+ 1
1929
+ 20
1930
+ 0
1931
+ 36
1932
+ 1
1933
+ 51
1934
+ 2
1935
+ 0
1936
+ 11
1937
+ I
1938
+ 4
1939
+ I
1940
+ 1
1941
+ I
1942
+ 0
1943
+ I
1944
+ 0
1945
+ I
1946
+ 0
1947
+ p
1948
+ 3
1949
+ x
1950
+ 25
1951
+ TopLevelOptionalGenerator
1952
+ n
1953
+ x
1954
+ 3
1955
+ new
1956
+ p
1957
+ 5
1958
+ I
1959
+ -1
1960
+ I
1961
+ 4d
1962
+ I
1963
+ 0
1964
+ I
1965
+ 4e
1966
+ I
1967
+ b
1968
+ x
1969
+ 105
1970
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
1971
+ p
1972
+ 1
1973
+ x
1974
+ 4
1975
+ args
1976
+ n
1977
+ p
1978
+ 11
1979
+ I
1980
+ 2
1981
+ I
1982
+ 6
1983
+ I
1984
+ 1f
1985
+ I
1986
+ 40
1987
+ I
1988
+ 3c
1989
+ I
1990
+ 44
1991
+ I
1992
+ 49
1993
+ I
1994
+ 49
1995
+ I
1996
+ 66
1997
+ I
1998
+ 4d
1999
+ I
2000
+ 73
2001
+ x
2002
+ 105
2003
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
2004
+ p
2005
+ 0
2006
+ x
2007
+ 13
2008
+ attach_method
2009
+ p
2010
+ 5
2011
+ I
2012
+ 0
2013
+ I
2014
+ 1
2015
+ I
2016
+ 9
2017
+ I
2018
+ 3
2019
+ I
2020
+ 29
2021
+ x
2022
+ 105
2023
+ /home/jarhart/Dropbox/Workspaces/Ruby/rattler/lib/rattler/back_end/parser_generator/optional_generator.rb
2024
+ p
2025
+ 0