bel_parser 1.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +7 -0
  2. data/.gemspec +28 -0
  3. data/CHANGELOG.md +10 -0
  4. data/LICENSE +191 -0
  5. data/README.md +9 -0
  6. data/VERSION +1 -0
  7. data/bin/bel2_termcheck +39 -0
  8. data/lib/bel_parser.rb +17 -0
  9. data/lib/bel_parser/ast_filter.rb +27 -0
  10. data/lib/bel_parser/ast_generator.rb +86 -0
  11. data/lib/bel_parser/ast_validator.rb +40 -0
  12. data/lib/bel_parser/expression/parser.rb +42 -0
  13. data/lib/bel_parser/expression/term_semantics.rb +36 -0
  14. data/lib/bel_parser/language.rb +7 -0
  15. data/lib/bel_parser/language/function.rb +59 -0
  16. data/lib/bel_parser/language/quoting.rb +236 -0
  17. data/lib/bel_parser/language/semantic_ast.rb +604 -0
  18. data/lib/bel_parser/language/semantics/analyzer.rb +59 -0
  19. data/lib/bel_parser/language/signature.rb +39 -0
  20. data/lib/bel_parser/language/specification.rb +49 -0
  21. data/lib/bel_parser/language/syntax/expression/incomplete_node.rb +14 -0
  22. data/lib/bel_parser/language/syntax/expression/invalid_term_function.rb +22 -0
  23. data/lib/bel_parser/language/version1.rb +50 -0
  24. data/lib/bel_parser/language/version1/functions/abundance.rb +85 -0
  25. data/lib/bel_parser/language/version1/functions/biological_process.rb +85 -0
  26. data/lib/bel_parser/language/version1/functions/catalytic_activity.rb +110 -0
  27. data/lib/bel_parser/language/version1/functions/cell_secretion.rb +80 -0
  28. data/lib/bel_parser/language/version1/functions/cell_surface_expression.rb +80 -0
  29. data/lib/bel_parser/language/version1/functions/chaperone_activity.rb +110 -0
  30. data/lib/bel_parser/language/version1/functions/complex_abundance.rb +115 -0
  31. data/lib/bel_parser/language/version1/functions/composite_abundance.rb +80 -0
  32. data/lib/bel_parser/language/version1/functions/degradation.rb +80 -0
  33. data/lib/bel_parser/language/version1/functions/fusion.rb +302 -0
  34. data/lib/bel_parser/language/version1/functions/gene_abundance.rb +125 -0
  35. data/lib/bel_parser/language/version1/functions/gtp_bound_activity.rb +110 -0
  36. data/lib/bel_parser/language/version1/functions/kinase_activity.rb +110 -0
  37. data/lib/bel_parser/language/version1/functions/list.rb +115 -0
  38. data/lib/bel_parser/language/version1/functions/micro_rna_abundance.rb +85 -0
  39. data/lib/bel_parser/language/version1/functions/molecular_activity.rb +80 -0
  40. data/lib/bel_parser/language/version1/functions/pathology.rb +85 -0
  41. data/lib/bel_parser/language/version1/functions/peptidase_activity.rb +110 -0
  42. data/lib/bel_parser/language/version1/functions/phosphatase_activity.rb +110 -0
  43. data/lib/bel_parser/language/version1/functions/products.rb +80 -0
  44. data/lib/bel_parser/language/version1/functions/protein_abundance.rb +245 -0
  45. data/lib/bel_parser/language/version1/functions/protein_modification.rb +167 -0
  46. data/lib/bel_parser/language/version1/functions/reactants.rb +80 -0
  47. data/lib/bel_parser/language/version1/functions/reaction.rb +85 -0
  48. data/lib/bel_parser/language/version1/functions/ribosylation_activity.rb +110 -0
  49. data/lib/bel_parser/language/version1/functions/rna_abundance.rb +125 -0
  50. data/lib/bel_parser/language/version1/functions/substitution.rb +96 -0
  51. data/lib/bel_parser/language/version1/functions/transcriptional_activity.rb +110 -0
  52. data/lib/bel_parser/language/version1/functions/translocation.rb +100 -0
  53. data/lib/bel_parser/language/version1/functions/transport_activity.rb +110 -0
  54. data/lib/bel_parser/language/version1/functions/truncation.rb +82 -0
  55. data/lib/bel_parser/language/version1/return_types/abundance.rb +20 -0
  56. data/lib/bel_parser/language/version1/return_types/any.rb +74 -0
  57. data/lib/bel_parser/language/version1/return_types/biological_process.rb +17 -0
  58. data/lib/bel_parser/language/version1/return_types/catalytic_activity.rb +20 -0
  59. data/lib/bel_parser/language/version1/return_types/chaperone_activity.rb +20 -0
  60. data/lib/bel_parser/language/version1/return_types/complex_abundance.rb +17 -0
  61. data/lib/bel_parser/language/version1/return_types/fusion.rb +17 -0
  62. data/lib/bel_parser/language/version1/return_types/gene_abundance.rb +17 -0
  63. data/lib/bel_parser/language/version1/return_types/gtp_bound_activity.rb +20 -0
  64. data/lib/bel_parser/language/version1/return_types/kinase_activity.rb +20 -0
  65. data/lib/bel_parser/language/version1/return_types/list.rb +17 -0
  66. data/lib/bel_parser/language/version1/return_types/micro_rna_abundance.rb +17 -0
  67. data/lib/bel_parser/language/version1/return_types/molecular_activity.rb +20 -0
  68. data/lib/bel_parser/language/version1/return_types/pathology.rb +17 -0
  69. data/lib/bel_parser/language/version1/return_types/peptidase_activity.rb +20 -0
  70. data/lib/bel_parser/language/version1/return_types/phosphatase_activity.rb +20 -0
  71. data/lib/bel_parser/language/version1/return_types/products.rb +17 -0
  72. data/lib/bel_parser/language/version1/return_types/protein_abundance.rb +17 -0
  73. data/lib/bel_parser/language/version1/return_types/protein_modification.rb +17 -0
  74. data/lib/bel_parser/language/version1/return_types/reactants.rb +17 -0
  75. data/lib/bel_parser/language/version1/return_types/ribosylation_activity.rb +20 -0
  76. data/lib/bel_parser/language/version1/return_types/rna_abundance.rb +17 -0
  77. data/lib/bel_parser/language/version1/return_types/substitution.rb +17 -0
  78. data/lib/bel_parser/language/version1/return_types/transcriptional_activity.rb +20 -0
  79. data/lib/bel_parser/language/version1/return_types/transport_activity.rb +20 -0
  80. data/lib/bel_parser/language/version1/return_types/truncation.rb +17 -0
  81. data/lib/bel_parser/language/version2.rb +50 -0
  82. data/lib/bel_parser/language/version2/functions/abundance.rb +165 -0
  83. data/lib/bel_parser/language/version2/functions/activity.rb +115 -0
  84. data/lib/bel_parser/language/version2/functions/biological_process.rb +85 -0
  85. data/lib/bel_parser/language/version2/functions/cell_secretion.rb +80 -0
  86. data/lib/bel_parser/language/version2/functions/cell_surface_expression.rb +80 -0
  87. data/lib/bel_parser/language/version2/functions/complex_abundance.rb +190 -0
  88. data/lib/bel_parser/language/version2/functions/composite_abundance.rb +80 -0
  89. data/lib/bel_parser/language/version2/functions/degradation.rb +80 -0
  90. data/lib/bel_parser/language/version2/functions/fragment.rb +119 -0
  91. data/lib/bel_parser/language/version2/functions/from_location.rb +85 -0
  92. data/lib/bel_parser/language/version2/functions/fusion.rb +227 -0
  93. data/lib/bel_parser/language/version2/functions/gene_abundance.rb +195 -0
  94. data/lib/bel_parser/language/version2/functions/list.rb +115 -0
  95. data/lib/bel_parser/language/version2/functions/location.rb +85 -0
  96. data/lib/bel_parser/language/version2/functions/micro_rna_abundance.rb +165 -0
  97. data/lib/bel_parser/language/version2/functions/molecular_activity.rb +83 -0
  98. data/lib/bel_parser/language/version2/functions/pathology.rb +85 -0
  99. data/lib/bel_parser/language/version2/functions/products.rb +80 -0
  100. data/lib/bel_parser/language/version2/functions/protein_abundance.rb +285 -0
  101. data/lib/bel_parser/language/version2/functions/protein_modification.rb +167 -0
  102. data/lib/bel_parser/language/version2/functions/reactants.rb +80 -0
  103. data/lib/bel_parser/language/version2/functions/reaction.rb +85 -0
  104. data/lib/bel_parser/language/version2/functions/rna_abundance.rb +195 -0
  105. data/lib/bel_parser/language/version2/functions/to_location.rb +85 -0
  106. data/lib/bel_parser/language/version2/functions/translocation.rb +90 -0
  107. data/lib/bel_parser/language/version2/functions/variant.rb +83 -0
  108. data/lib/bel_parser/language/version2/return_types/abundance.rb +20 -0
  109. data/lib/bel_parser/language/version2/return_types/activity.rb +20 -0
  110. data/lib/bel_parser/language/version2/return_types/any.rb +74 -0
  111. data/lib/bel_parser/language/version2/return_types/biological_process.rb +17 -0
  112. data/lib/bel_parser/language/version2/return_types/complex_abundance.rb +17 -0
  113. data/lib/bel_parser/language/version2/return_types/fragment.rb +20 -0
  114. data/lib/bel_parser/language/version2/return_types/from_location.rb +20 -0
  115. data/lib/bel_parser/language/version2/return_types/fusion.rb +17 -0
  116. data/lib/bel_parser/language/version2/return_types/gene_abundance.rb +17 -0
  117. data/lib/bel_parser/language/version2/return_types/list.rb +17 -0
  118. data/lib/bel_parser/language/version2/return_types/location.rb +20 -0
  119. data/lib/bel_parser/language/version2/return_types/micro_rna_abundance.rb +17 -0
  120. data/lib/bel_parser/language/version2/return_types/molecular_activity.rb +20 -0
  121. data/lib/bel_parser/language/version2/return_types/pathology.rb +17 -0
  122. data/lib/bel_parser/language/version2/return_types/products.rb +17 -0
  123. data/lib/bel_parser/language/version2/return_types/protein_abundance.rb +17 -0
  124. data/lib/bel_parser/language/version2/return_types/protein_modification.rb +17 -0
  125. data/lib/bel_parser/language/version2/return_types/reactants.rb +17 -0
  126. data/lib/bel_parser/language/version2/return_types/rna_abundance.rb +17 -0
  127. data/lib/bel_parser/language/version2/return_types/to_location.rb +20 -0
  128. data/lib/bel_parser/language/version2/return_types/variant.rb +20 -0
  129. data/lib/bel_parser/mixin/line_continuator.rb +15 -0
  130. data/lib/bel_parser/mixin/line_mapping.rb +14 -0
  131. data/lib/bel_parser/parser.rb +54 -0
  132. data/lib/bel_parser/parsers/ast/mapped_traversal.rb +36 -0
  133. data/lib/bel_parser/parsers/ast/node.rb +705 -0
  134. data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
  135. data/lib/bel_parser/parsers/ast/traversal.rb +21 -0
  136. data/lib/bel_parser/parsers/bel_script.rb +4 -0
  137. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5476 -0
  138. data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
  139. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
  140. data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
  141. data/lib/bel_parser/parsers/bel_script/set.rb +4556 -0
  142. data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
  143. data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
  144. data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
  145. data/lib/bel_parser/parsers/common.rb +5 -0
  146. data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
  147. data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
  148. data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
  149. data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
  150. data/lib/bel_parser/parsers/common/common.rb +7 -0
  151. data/lib/bel_parser/parsers/common/common.rl +13 -0
  152. data/lib/bel_parser/parsers/common/identifier.rb +289 -0
  153. data/lib/bel_parser/parsers/common/identifier.rl +106 -0
  154. data/lib/bel_parser/parsers/common/list.rb +2142 -0
  155. data/lib/bel_parser/parsers/common/list.rl +144 -0
  156. data/lib/bel_parser/parsers/common/string.rb +271 -0
  157. data/lib/bel_parser/parsers/common/string.rl +107 -0
  158. data/lib/bel_parser/parsers/expression.rb +7 -0
  159. data/lib/bel_parser/parsers/expression/comment.rb +239 -0
  160. data/lib/bel_parser/parsers/expression/comment.rl +97 -0
  161. data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
  162. data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
  163. data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
  164. data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
  165. data/lib/bel_parser/parsers/expression/statement_nested.rb +17802 -0
  166. data/lib/bel_parser/parsers/expression/statement_nested.rl +141 -0
  167. data/lib/bel_parser/parsers/expression/statement_observed_term.rb +7291 -0
  168. data/lib/bel_parser/parsers/expression/statement_observed_term.rl +92 -0
  169. data/lib/bel_parser/parsers/expression/statement_simple.rb +10475 -0
  170. data/lib/bel_parser/parsers/expression/statement_simple.rl +112 -0
  171. data/lib/bel_parser/parsers/expression/term.rb +3989 -0
  172. data/lib/bel_parser/parsers/expression/term.rl +157 -0
  173. data/lib/bel_parser/parsers/line_parser.rb +92 -0
  174. data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
  175. data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
  176. data/lib/bel_parser/script/parser.rb +49 -0
  177. data/lib/bel_parser/vendor/ast.rb +17 -0
  178. data/lib/bel_parser/vendor/ast/node.rb +254 -0
  179. data/lib/bel_parser/vendor/ast/processor.rb +12 -0
  180. data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
  181. data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
  182. metadata +226 -0
@@ -0,0 +1,112 @@
1
+ # begin: ragel
2
+ =begin
3
+ %%{
4
+ machine bel;
5
+
6
+ include 'term.rl';
7
+ include 'relationship.rl';
8
+ include 'comment.rl';
9
+
10
+ action statement_subject {
11
+ @buffers[:subject] = subject(
12
+ @buffers[:term_stack][-1])
13
+ @buffers[:term_stack] = nil
14
+ }
15
+
16
+ action statement_object {
17
+ @buffers[:object] = object(
18
+ @buffers[:term_stack][-1])
19
+ @buffers[:term_stack] = nil
20
+ }
21
+
22
+ action yield_statement_simple {
23
+ @buffers[:comment] ||= comment(nil)
24
+ yield statement_simple(
25
+ statement(
26
+ @buffers[:subject],
27
+ @buffers[:relationship],
28
+ @buffers[:object],
29
+ @buffers[:comment]))
30
+ }
31
+
32
+ STATEMENT_SIMPLE =
33
+ outer_term %statement_subject
34
+ SP+
35
+ RELATIONSHIP
36
+ SP+
37
+ outer_term %statement_object;
38
+
39
+ statement_simple :=
40
+ STATEMENT_SIMPLE
41
+ SP*
42
+ COMMENT? %yield_statement_simple
43
+ NL;
44
+ }%%
45
+ =end
46
+ # end: ragel
47
+
48
+ require_relative '../ast/node'
49
+ require_relative '../mixin/buffer'
50
+ require_relative '../nonblocking_io_wrapper'
51
+
52
+ module BELParser
53
+ module Parsers
54
+ module Expression
55
+ module StatementSimple
56
+
57
+ class << self
58
+
59
+ MAX_LENGTH = 1024 * 128 # 128K
60
+
61
+ def parse(content)
62
+ return nil unless content
63
+
64
+ Parser.new(content).each do |obj|
65
+ yield obj
66
+ end
67
+ end
68
+ end
69
+
70
+ private
71
+
72
+ class Parser
73
+ include Enumerable
74
+ include BELParser::Parsers::Buffer
75
+ include BELParser::Parsers::AST::Sexp
76
+
77
+ def initialize(content)
78
+ @content = content
79
+ # begin: ragel
80
+ %% write data;
81
+ # end: ragel
82
+ end
83
+
84
+ def each
85
+ @buffers = {}
86
+ stack = []
87
+ data = @content.unpack('C*')
88
+ p = 0
89
+ pe = data.length
90
+ eof = data.length
91
+
92
+ # begin: ragel
93
+ %% write init;
94
+ %% write exec;
95
+ # end: ragel
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ if __FILE__ == $0
104
+ $stdin.each_line do |line|
105
+ BELParser::Parsers::Expression::StatementSimple.parse(line) { |obj|
106
+ puts obj.inspect
107
+ }
108
+ end
109
+ end
110
+
111
+ # vim: ft=ruby ts=2 sw=2:
112
+ # encoding: utf-8
@@ -0,0 +1,3989 @@
1
+
2
+ # begin: ragel
3
+ =begin
4
+
5
+ class << self
6
+ attr_accessor :_bel_trans_keys
7
+ private :_bel_trans_keys, :_bel_trans_keys=
8
+ end
9
+ self._bel_trans_keys = [
10
+ 0, 0, 48, 122, 9, 122,
11
+ 9, 40, 9, 122, 9,
12
+ 122, 34, 92, 9, 44,
13
+ 9, 44, 9, 122, 9, 122,
14
+ 9, 44, 10, 10, 92,
15
+ 92, 9, 122, 48, 122,
16
+ 10, 122, 34, 34, 34, 92,
17
+ 10, 10, 92, 92, 9,
18
+ 122, 9, 122, 34, 92,
19
+ 10, 10, 92, 92, 10, 122,
20
+ 10, 122, 48, 122, 9,
21
+ 122, 9, 40, 9, 122,
22
+ 9, 122, 34, 92, 9, 44,
23
+ 9, 44, 9, 122, 9,
24
+ 122, 9, 44, 92, 92,
25
+ 9, 122, 0, 0, 0, 0,
26
+ 0, 0, 0, 0, 0,
27
+ 0, 0
28
+ ]
29
+
30
+ class << self
31
+ attr_accessor :_bel_key_spans
32
+ private :_bel_key_spans, :_bel_key_spans=
33
+ end
34
+ self._bel_key_spans = [
35
+ 0, 75, 114, 32, 114, 114, 59, 36,
36
+ 36, 114, 114, 36, 1, 1, 114, 75,
37
+ 113, 1, 59, 1, 1, 114, 114, 59,
38
+ 1, 1, 113, 113, 75, 114, 32, 114,
39
+ 114, 59, 36, 36, 114, 114, 36, 1,
40
+ 114, 0, 0, 0, 0, 0
41
+ ]
42
+
43
+ class << self
44
+ attr_accessor :_bel_index_offsets
45
+ private :_bel_index_offsets, :_bel_index_offsets=
46
+ end
47
+ self._bel_index_offsets = [
48
+ 0, 0, 76, 191, 224, 339, 454, 514,
49
+ 551, 588, 703, 818, 855, 857, 859, 974,
50
+ 1050, 1164, 1166, 1226, 1228, 1230, 1345, 1460,
51
+ 1520, 1522, 1524, 1638, 1752, 1828, 1943, 1976,
52
+ 2091, 2206, 2266, 2303, 2340, 2455, 2570, 2607,
53
+ 2609, 2724, 2725, 2726, 2727, 2728
54
+ ]
55
+
56
+ class << self
57
+ attr_accessor :_bel_indicies
58
+ private :_bel_indicies, :_bel_indicies=
59
+ end
60
+ self._bel_indicies = [
61
+ 1, 1, 1, 1, 1, 1, 1, 1,
62
+ 1, 1, 0, 0, 0, 0, 0, 0,
63
+ 0, 1, 1, 1, 1, 1, 1, 1,
64
+ 1, 1, 1, 1, 1, 1, 1, 1,
65
+ 1, 1, 1, 1, 1, 1, 1, 1,
66
+ 1, 1, 1, 0, 0, 0, 0, 1,
67
+ 0, 1, 1, 1, 1, 1, 1, 1,
68
+ 1, 1, 1, 1, 1, 1, 1, 1,
69
+ 1, 1, 1, 1, 1, 1, 1, 1,
70
+ 1, 1, 1, 0, 2, 0, 0, 0,
71
+ 0, 0, 0, 0, 0, 0, 0, 0,
72
+ 0, 0, 0, 0, 0, 0, 0, 0,
73
+ 0, 0, 0, 2, 0, 0, 0, 0,
74
+ 0, 0, 0, 3, 0, 0, 0, 0,
75
+ 0, 0, 0, 4, 4, 4, 4, 4,
76
+ 4, 4, 4, 4, 4, 0, 0, 0,
77
+ 0, 0, 0, 0, 4, 4, 4, 4,
78
+ 4, 4, 4, 4, 4, 4, 4, 4,
79
+ 4, 4, 4, 4, 4, 4, 4, 4,
80
+ 4, 4, 4, 4, 4, 4, 0, 0,
81
+ 0, 0, 4, 0, 4, 4, 4, 4,
82
+ 4, 4, 4, 4, 4, 4, 4, 4,
83
+ 4, 4, 4, 4, 4, 4, 4, 4,
84
+ 4, 4, 4, 4, 4, 4, 0, 5,
85
+ 6, 6, 6, 6, 6, 6, 6, 6,
86
+ 6, 6, 6, 6, 6, 6, 6, 6,
87
+ 6, 6, 6, 6, 6, 6, 5, 6,
88
+ 6, 6, 6, 6, 6, 6, 7, 6,
89
+ 9, 8, 8, 8, 8, 8, 8, 8,
90
+ 8, 8, 8, 8, 8, 8, 8, 8,
91
+ 8, 8, 8, 8, 8, 8, 8, 9,
92
+ 8, 10, 8, 8, 8, 8, 8, 8,
93
+ 8, 8, 8, 8, 8, 8, 8, 11,
94
+ 11, 11, 11, 11, 11, 11, 11, 11,
95
+ 11, 8, 8, 8, 8, 8, 8, 8,
96
+ 11, 11, 11, 11, 11, 11, 11, 11,
97
+ 11, 11, 11, 11, 11, 11, 11, 11,
98
+ 11, 11, 11, 11, 11, 11, 11, 11,
99
+ 11, 11, 8, 8, 8, 8, 11, 8,
100
+ 11, 11, 11, 11, 11, 11, 11, 11,
101
+ 11, 11, 11, 11, 11, 11, 11, 11,
102
+ 11, 11, 11, 11, 11, 11, 11, 11,
103
+ 11, 11, 8, 9, 12, 12, 12, 12,
104
+ 12, 12, 12, 12, 12, 12, 12, 12,
105
+ 12, 12, 12, 12, 12, 12, 12, 12,
106
+ 12, 12, 9, 12, 10, 12, 12, 12,
107
+ 12, 12, 12, 12, 12, 12, 12, 12,
108
+ 12, 12, 13, 13, 13, 13, 13, 13,
109
+ 13, 13, 13, 13, 12, 12, 12, 12,
110
+ 12, 12, 12, 13, 13, 13, 13, 13,
111
+ 13, 13, 13, 13, 13, 13, 13, 13,
112
+ 13, 13, 13, 13, 13, 13, 13, 13,
113
+ 13, 13, 13, 13, 13, 12, 12, 12,
114
+ 12, 13, 12, 13, 13, 13, 13, 13,
115
+ 13, 13, 13, 13, 13, 13, 13, 13,
116
+ 13, 13, 13, 13, 13, 13, 13, 13,
117
+ 13, 13, 13, 13, 13, 12, 15, 14,
118
+ 14, 14, 14, 14, 14, 14, 14, 14,
119
+ 14, 14, 14, 14, 14, 14, 14, 14,
120
+ 14, 14, 14, 14, 14, 14, 14, 14,
121
+ 14, 14, 14, 14, 14, 14, 14, 14,
122
+ 14, 14, 14, 14, 14, 14, 14, 14,
123
+ 14, 14, 14, 14, 14, 14, 14, 14,
124
+ 14, 14, 14, 14, 14, 14, 14, 14,
125
+ 16, 14, 18, 17, 17, 17, 17, 17,
126
+ 17, 17, 17, 17, 17, 17, 17, 17,
127
+ 17, 17, 17, 17, 17, 17, 17, 17,
128
+ 17, 18, 17, 17, 17, 17, 17, 17,
129
+ 17, 17, 19, 17, 17, 20, 17, 21,
130
+ 6, 6, 6, 6, 6, 6, 6, 6,
131
+ 6, 6, 6, 6, 6, 6, 6, 6,
132
+ 6, 6, 6, 6, 6, 6, 21, 6,
133
+ 6, 6, 6, 6, 6, 6, 6, 6,
134
+ 6, 6, 22, 6, 22, 8, 8, 8,
135
+ 8, 8, 8, 8, 8, 8, 8, 8,
136
+ 8, 8, 8, 8, 8, 8, 8, 8,
137
+ 8, 8, 8, 22, 8, 10, 8, 8,
138
+ 8, 8, 8, 8, 8, 8, 8, 8,
139
+ 8, 8, 8, 11, 11, 11, 11, 11,
140
+ 11, 11, 11, 11, 11, 8, 8, 8,
141
+ 8, 8, 8, 8, 11, 11, 11, 11,
142
+ 11, 11, 11, 11, 11, 11, 11, 11,
143
+ 11, 11, 11, 11, 11, 11, 11, 11,
144
+ 11, 11, 11, 11, 11, 11, 8, 8,
145
+ 8, 8, 11, 8, 11, 11, 11, 11,
146
+ 11, 11, 11, 11, 11, 11, 11, 11,
147
+ 11, 11, 11, 11, 11, 11, 11, 11,
148
+ 11, 11, 11, 11, 11, 11, 8, 23,
149
+ 0, 0, 0, 0, 0, 0, 0, 0,
150
+ 0, 0, 0, 0, 0, 0, 0, 0,
151
+ 0, 0, 0, 0, 0, 0, 23, 0,
152
+ 0, 0, 0, 0, 0, 0, 24, 25,
153
+ 0, 0, 26, 0, 0, 0, 27, 27,
154
+ 27, 27, 27, 27, 27, 27, 27, 27,
155
+ 28, 0, 0, 0, 0, 0, 0, 27,
156
+ 27, 27, 27, 27, 27, 27, 27, 27,
157
+ 27, 27, 27, 27, 27, 27, 27, 27,
158
+ 27, 27, 27, 27, 27, 27, 27, 27,
159
+ 27, 0, 0, 0, 0, 27, 0, 27,
160
+ 27, 27, 27, 27, 27, 27, 27, 27,
161
+ 27, 27, 27, 27, 27, 27, 27, 27,
162
+ 27, 27, 27, 27, 27, 27, 27, 27,
163
+ 27, 0, 21, 6, 6, 6, 6, 6,
164
+ 6, 6, 6, 6, 6, 6, 6, 6,
165
+ 6, 6, 6, 6, 6, 6, 6, 6,
166
+ 6, 21, 6, 6, 6, 6, 6, 6,
167
+ 6, 6, 29, 6, 6, 22, 6, 30,
168
+ 6, 16, 14, 23, 0, 0, 0, 0,
169
+ 0, 0, 0, 0, 0, 0, 0, 0,
170
+ 0, 0, 0, 0, 0, 0, 0, 0,
171
+ 0, 0, 23, 0, 0, 0, 0, 0,
172
+ 0, 0, 0, 25, 0, 0, 26, 0,
173
+ 0, 0, 31, 31, 31, 31, 31, 31,
174
+ 31, 31, 31, 31, 0, 0, 0, 0,
175
+ 0, 0, 0, 31, 31, 31, 31, 31,
176
+ 31, 31, 31, 31, 31, 31, 31, 31,
177
+ 31, 31, 31, 31, 31, 31, 31, 31,
178
+ 31, 31, 31, 31, 31, 0, 0, 0,
179
+ 0, 31, 0, 31, 31, 31, 31, 31,
180
+ 31, 31, 31, 31, 31, 31, 31, 31,
181
+ 31, 31, 31, 31, 31, 31, 31, 31,
182
+ 31, 31, 31, 31, 31, 0, 33, 33,
183
+ 33, 33, 33, 33, 33, 33, 33, 33,
184
+ 32, 32, 32, 32, 32, 32, 32, 33,
185
+ 33, 33, 33, 33, 33, 33, 33, 33,
186
+ 33, 33, 33, 33, 33, 33, 33, 33,
187
+ 33, 33, 33, 33, 33, 33, 33, 33,
188
+ 33, 32, 32, 32, 32, 33, 32, 33,
189
+ 33, 33, 33, 33, 33, 33, 33, 33,
190
+ 33, 33, 33, 33, 33, 33, 33, 33,
191
+ 33, 33, 33, 33, 33, 33, 33, 33,
192
+ 33, 32, 34, 32, 32, 32, 32, 32,
193
+ 32, 32, 32, 32, 32, 32, 32, 32,
194
+ 32, 32, 32, 32, 32, 32, 32, 32,
195
+ 32, 32, 32, 32, 32, 32, 32, 32,
196
+ 32, 32, 32, 32, 32, 32, 32, 32,
197
+ 35, 35, 35, 35, 35, 35, 35, 35,
198
+ 35, 35, 32, 32, 32, 32, 32, 32,
199
+ 32, 35, 35, 35, 35, 35, 35, 35,
200
+ 35, 35, 35, 35, 35, 35, 35, 35,
201
+ 35, 35, 35, 35, 35, 35, 35, 35,
202
+ 35, 35, 35, 32, 32, 32, 32, 35,
203
+ 32, 35, 35, 35, 35, 35, 35, 35,
204
+ 35, 35, 35, 35, 35, 35, 35, 35,
205
+ 35, 35, 35, 35, 35, 35, 35, 35,
206
+ 35, 35, 35, 32, 37, 36, 39, 38,
207
+ 38, 38, 38, 38, 38, 38, 38, 38,
208
+ 38, 38, 38, 38, 38, 38, 38, 38,
209
+ 38, 38, 38, 38, 38, 38, 38, 38,
210
+ 38, 38, 38, 38, 38, 38, 38, 38,
211
+ 38, 38, 38, 38, 38, 38, 38, 38,
212
+ 38, 38, 38, 38, 38, 38, 38, 38,
213
+ 38, 38, 38, 38, 38, 38, 38, 38,
214
+ 40, 38, 41, 36, 40, 38, 42, 8,
215
+ 8, 8, 8, 8, 8, 8, 8, 8,
216
+ 8, 8, 8, 8, 8, 8, 8, 8,
217
+ 8, 8, 8, 8, 8, 42, 8, 43,
218
+ 8, 8, 8, 8, 8, 8, 8, 8,
219
+ 8, 8, 8, 8, 8, 44, 44, 44,
220
+ 44, 44, 44, 44, 44, 44, 44, 8,
221
+ 8, 8, 8, 8, 8, 8, 44, 44,
222
+ 44, 44, 44, 44, 44, 44, 44, 44,
223
+ 44, 44, 44, 44, 44, 44, 44, 44,
224
+ 44, 44, 44, 44, 44, 44, 44, 44,
225
+ 8, 8, 8, 8, 44, 8, 44, 44,
226
+ 44, 44, 44, 44, 44, 44, 44, 44,
227
+ 44, 44, 44, 44, 44, 44, 44, 44,
228
+ 44, 44, 44, 44, 44, 44, 44, 44,
229
+ 8, 42, 12, 12, 12, 12, 12, 12,
230
+ 12, 12, 12, 12, 12, 12, 12, 12,
231
+ 12, 12, 12, 12, 12, 12, 12, 12,
232
+ 42, 12, 43, 12, 12, 12, 12, 12,
233
+ 12, 12, 12, 12, 12, 12, 12, 12,
234
+ 45, 45, 45, 45, 45, 45, 45, 45,
235
+ 45, 45, 12, 12, 12, 12, 12, 12,
236
+ 12, 45, 45, 45, 45, 45, 45, 45,
237
+ 45, 45, 45, 45, 45, 45, 45, 45,
238
+ 45, 45, 45, 45, 45, 45, 45, 45,
239
+ 45, 45, 45, 12, 12, 12, 12, 45,
240
+ 12, 45, 45, 45, 45, 45, 45, 45,
241
+ 45, 45, 45, 45, 45, 45, 45, 45,
242
+ 45, 45, 45, 45, 45, 45, 45, 45,
243
+ 45, 45, 45, 12, 47, 46, 46, 46,
244
+ 46, 46, 46, 46, 46, 46, 46, 46,
245
+ 46, 46, 46, 46, 46, 46, 46, 46,
246
+ 46, 46, 46, 46, 46, 46, 46, 46,
247
+ 46, 46, 46, 46, 46, 46, 46, 46,
248
+ 46, 46, 46, 46, 46, 46, 46, 46,
249
+ 46, 46, 46, 46, 46, 46, 46, 46,
250
+ 46, 46, 46, 46, 46, 46, 48, 46,
251
+ 49, 17, 48, 46, 50, 0, 0, 0,
252
+ 0, 0, 0, 0, 0, 0, 0, 0,
253
+ 0, 0, 0, 0, 0, 0, 0, 0,
254
+ 0, 0, 0, 0, 0, 0, 0, 0,
255
+ 0, 0, 0, 0, 0, 0, 0, 0,
256
+ 0, 0, 51, 51, 51, 51, 51, 51,
257
+ 51, 51, 51, 51, 0, 0, 0, 0,
258
+ 0, 0, 0, 51, 51, 51, 51, 51,
259
+ 51, 51, 51, 51, 51, 51, 51, 51,
260
+ 51, 51, 51, 51, 51, 51, 51, 51,
261
+ 51, 51, 51, 51, 51, 0, 0, 0,
262
+ 0, 51, 0, 51, 51, 51, 51, 51,
263
+ 51, 51, 51, 51, 51, 51, 51, 51,
264
+ 51, 51, 51, 51, 51, 51, 51, 51,
265
+ 51, 51, 51, 51, 51, 0, 50, 0,
266
+ 0, 0, 0, 0, 0, 0, 0, 0,
267
+ 0, 0, 0, 0, 0, 0, 0, 0,
268
+ 0, 0, 0, 0, 0, 0, 0, 0,
269
+ 0, 0, 0, 0, 0, 0, 0, 0,
270
+ 0, 0, 0, 0, 52, 52, 52, 52,
271
+ 52, 52, 52, 52, 52, 52, 53, 0,
272
+ 0, 0, 0, 0, 0, 52, 52, 52,
273
+ 52, 52, 52, 52, 52, 52, 52, 52,
274
+ 52, 52, 52, 52, 52, 52, 52, 52,
275
+ 52, 52, 52, 52, 52, 52, 52, 0,
276
+ 0, 0, 0, 52, 0, 52, 52, 52,
277
+ 52, 52, 52, 52, 52, 52, 52, 52,
278
+ 52, 52, 52, 52, 52, 52, 52, 52,
279
+ 52, 52, 52, 52, 52, 52, 52, 0,
280
+ 54, 54, 54, 54, 54, 54, 54, 54,
281
+ 54, 54, 0, 0, 0, 0, 0, 0,
282
+ 0, 54, 54, 54, 54, 54, 54, 54,
283
+ 54, 54, 54, 54, 54, 54, 54, 54,
284
+ 54, 54, 54, 54, 54, 54, 54, 54,
285
+ 54, 54, 54, 0, 0, 0, 0, 54,
286
+ 0, 54, 54, 54, 54, 54, 54, 54,
287
+ 54, 54, 54, 54, 54, 54, 54, 54,
288
+ 54, 54, 54, 54, 54, 54, 54, 54,
289
+ 54, 54, 54, 0, 55, 0, 0, 0,
290
+ 0, 0, 0, 0, 0, 0, 0, 0,
291
+ 0, 0, 0, 0, 0, 0, 0, 0,
292
+ 0, 0, 0, 55, 0, 0, 0, 0,
293
+ 0, 0, 0, 56, 0, 0, 0, 0,
294
+ 0, 0, 0, 57, 57, 57, 57, 57,
295
+ 57, 57, 57, 57, 57, 0, 0, 0,
296
+ 0, 0, 0, 0, 57, 57, 57, 57,
297
+ 57, 57, 57, 57, 57, 57, 57, 57,
298
+ 57, 57, 57, 57, 57, 57, 57, 57,
299
+ 57, 57, 57, 57, 57, 57, 0, 0,
300
+ 0, 0, 57, 0, 57, 57, 57, 57,
301
+ 57, 57, 57, 57, 57, 57, 57, 57,
302
+ 57, 57, 57, 57, 57, 57, 57, 57,
303
+ 57, 57, 57, 57, 57, 57, 0, 58,
304
+ 6, 6, 6, 6, 6, 6, 6, 6,
305
+ 6, 6, 6, 6, 6, 6, 6, 6,
306
+ 6, 6, 6, 6, 6, 6, 58, 6,
307
+ 6, 6, 6, 6, 6, 6, 59, 6,
308
+ 60, 8, 8, 8, 8, 8, 8, 8,
309
+ 8, 8, 8, 8, 8, 8, 8, 8,
310
+ 8, 8, 8, 8, 8, 8, 8, 60,
311
+ 8, 61, 8, 8, 8, 8, 8, 8,
312
+ 8, 8, 8, 8, 8, 8, 8, 62,
313
+ 62, 62, 62, 62, 62, 62, 62, 62,
314
+ 62, 8, 8, 8, 8, 8, 8, 8,
315
+ 62, 62, 62, 62, 62, 62, 62, 62,
316
+ 62, 62, 62, 62, 62, 62, 62, 62,
317
+ 62, 62, 62, 62, 62, 62, 62, 62,
318
+ 62, 62, 8, 8, 8, 8, 62, 8,
319
+ 62, 62, 62, 62, 62, 62, 62, 62,
320
+ 62, 62, 62, 62, 62, 62, 62, 62,
321
+ 62, 62, 62, 62, 62, 62, 62, 62,
322
+ 62, 62, 8, 60, 12, 12, 12, 12,
323
+ 12, 12, 12, 12, 12, 12, 12, 12,
324
+ 12, 12, 12, 12, 12, 12, 12, 12,
325
+ 12, 12, 60, 12, 61, 12, 12, 12,
326
+ 12, 12, 12, 12, 12, 12, 12, 12,
327
+ 12, 12, 63, 63, 63, 63, 63, 63,
328
+ 63, 63, 63, 63, 12, 12, 12, 12,
329
+ 12, 12, 12, 63, 63, 63, 63, 63,
330
+ 63, 63, 63, 63, 63, 63, 63, 63,
331
+ 63, 63, 63, 63, 63, 63, 63, 63,
332
+ 63, 63, 63, 63, 63, 12, 12, 12,
333
+ 12, 63, 12, 63, 63, 63, 63, 63,
334
+ 63, 63, 63, 63, 63, 63, 63, 63,
335
+ 63, 63, 63, 63, 63, 63, 63, 63,
336
+ 63, 63, 63, 63, 63, 12, 65, 64,
337
+ 64, 64, 64, 64, 64, 64, 64, 64,
338
+ 64, 64, 64, 64, 64, 64, 64, 64,
339
+ 64, 64, 64, 64, 64, 64, 64, 64,
340
+ 64, 64, 64, 64, 64, 64, 64, 64,
341
+ 64, 64, 64, 64, 64, 64, 64, 64,
342
+ 64, 64, 64, 64, 64, 64, 64, 64,
343
+ 64, 64, 64, 64, 64, 64, 64, 64,
344
+ 66, 64, 67, 17, 17, 17, 17, 17,
345
+ 17, 17, 17, 17, 17, 17, 17, 17,
346
+ 17, 17, 17, 17, 17, 17, 17, 17,
347
+ 17, 67, 17, 17, 17, 17, 17, 17,
348
+ 17, 17, 68, 17, 17, 69, 17, 70,
349
+ 6, 6, 6, 6, 6, 6, 6, 6,
350
+ 6, 6, 6, 6, 6, 6, 6, 6,
351
+ 6, 6, 6, 6, 6, 6, 70, 6,
352
+ 6, 6, 6, 6, 6, 6, 6, 6,
353
+ 6, 6, 71, 6, 71, 8, 8, 8,
354
+ 8, 8, 8, 8, 8, 8, 8, 8,
355
+ 8, 8, 8, 8, 8, 8, 8, 8,
356
+ 8, 8, 8, 71, 8, 61, 8, 8,
357
+ 8, 8, 8, 8, 8, 8, 8, 8,
358
+ 8, 8, 8, 62, 62, 62, 62, 62,
359
+ 62, 62, 62, 62, 62, 8, 8, 8,
360
+ 8, 8, 8, 8, 62, 62, 62, 62,
361
+ 62, 62, 62, 62, 62, 62, 62, 62,
362
+ 62, 62, 62, 62, 62, 62, 62, 62,
363
+ 62, 62, 62, 62, 62, 62, 8, 8,
364
+ 8, 8, 62, 8, 62, 62, 62, 62,
365
+ 62, 62, 62, 62, 62, 62, 62, 62,
366
+ 62, 62, 62, 62, 62, 62, 62, 62,
367
+ 62, 62, 62, 62, 62, 62, 8, 72,
368
+ 0, 0, 0, 0, 0, 0, 0, 0,
369
+ 0, 0, 0, 0, 0, 0, 0, 0,
370
+ 0, 0, 0, 0, 0, 0, 72, 0,
371
+ 0, 0, 0, 0, 0, 0, 73, 74,
372
+ 0, 0, 75, 0, 0, 0, 76, 76,
373
+ 76, 76, 76, 76, 76, 76, 76, 76,
374
+ 77, 0, 0, 0, 0, 0, 0, 76,
375
+ 76, 76, 76, 76, 76, 76, 76, 76,
376
+ 76, 76, 76, 76, 76, 76, 76, 76,
377
+ 76, 76, 76, 76, 76, 76, 76, 76,
378
+ 76, 0, 0, 0, 0, 76, 0, 76,
379
+ 76, 76, 76, 76, 76, 76, 76, 76,
380
+ 76, 76, 76, 76, 76, 76, 76, 76,
381
+ 76, 76, 76, 76, 76, 76, 76, 76,
382
+ 76, 0, 70, 6, 6, 6, 6, 6,
383
+ 6, 6, 6, 6, 6, 6, 6, 6,
384
+ 6, 6, 6, 6, 6, 6, 6, 6,
385
+ 6, 70, 6, 6, 6, 6, 6, 6,
386
+ 6, 6, 78, 6, 6, 71, 6, 66,
387
+ 64, 72, 0, 0, 0, 0, 0, 0,
388
+ 0, 0, 0, 0, 0, 0, 0, 0,
389
+ 0, 0, 0, 0, 0, 0, 0, 0,
390
+ 72, 0, 0, 0, 0, 0, 0, 0,
391
+ 0, 74, 0, 0, 75, 0, 0, 0,
392
+ 79, 79, 79, 79, 79, 79, 79, 79,
393
+ 79, 79, 0, 0, 0, 0, 0, 0,
394
+ 0, 79, 79, 79, 79, 79, 79, 79,
395
+ 79, 79, 79, 79, 79, 79, 79, 79,
396
+ 79, 79, 79, 79, 79, 79, 79, 79,
397
+ 79, 79, 79, 0, 0, 0, 0, 79,
398
+ 0, 79, 79, 79, 79, 79, 79, 79,
399
+ 79, 79, 79, 79, 79, 79, 79, 79,
400
+ 79, 79, 79, 79, 79, 79, 79, 79,
401
+ 79, 79, 79, 0, 6, 6, 6, 6,
402
+ 6, 0
403
+ ]
404
+
405
+ class << self
406
+ attr_accessor :_bel_trans_targs
407
+ private :_bel_trans_targs, :_bel_trans_targs=
408
+ end
409
+ self._bel_trans_targs = [
410
+ 0, 2, 3, 4, 2, 3, 0, 4,
411
+ 0, 5, 6, 10, 0, 14, 6, 7,
412
+ 13, 0, 8, 12, 9, 8, 9, 8,
413
+ 11, 12, 9, 10, 5, 12, 41, 14,
414
+ 0, 16, 42, 16, 0, 18, 18, 19,
415
+ 20, 43, 22, 23, 27, 26, 23, 24,
416
+ 25, 44, 44, 26, 27, 22, 29, 30,
417
+ 31, 29, 30, 31, 32, 33, 37, 40,
418
+ 33, 34, 39, 35, 45, 36, 35, 36,
419
+ 35, 38, 45, 36, 37, 32, 45, 40
420
+ ]
421
+
422
+ class << self
423
+ attr_accessor :_bel_trans_actions
424
+ private :_bel_trans_actions, :_bel_trans_actions=
425
+ end
426
+ self._bel_trans_actions = [
427
+ 1, 2, 3, 4, 5, 0, 0, 6,
428
+ 7, 0, 8, 9, 10, 11, 13, 13,
429
+ 13, 12, 14, 14, 14, 0, 0, 15,
430
+ 16, 15, 15, 5, 17, 0, 18, 19,
431
+ 20, 11, 21, 19, 22, 8, 13, 13,
432
+ 13, 23, 0, 8, 11, 11, 13, 13,
433
+ 13, 24, 25, 19, 19, 17, 26, 3,
434
+ 4, 5, 0, 6, 0, 8, 9, 11,
435
+ 13, 13, 13, 14, 27, 14, 0, 0,
436
+ 15, 16, 28, 15, 5, 17, 29, 19
437
+ ]
438
+
439
+ class << self
440
+ attr_accessor :_bel_eof_actions
441
+ private :_bel_eof_actions, :_bel_eof_actions=
442
+ end
443
+ self._bel_eof_actions = [
444
+ 0, 1, 1, 0, 7, 10, 12, 12,
445
+ 0, 7, 1, 0, 0, 12, 1, 20,
446
+ 20, 22, 22, 22, 22, 7, 10, 12,
447
+ 12, 12, 1, 1, 1, 1, 0, 7,
448
+ 10, 12, 12, 0, 7, 1, 0, 12,
449
+ 1, 0, 0, 0, 0, 0
450
+ ]
451
+
452
+ class << self
453
+ attr_accessor :bel_start
454
+ end
455
+ self.bel_start = 1;
456
+ class << self
457
+ attr_accessor :bel_first_final
458
+ end
459
+ self.bel_first_final = 41;
460
+ class << self
461
+ attr_accessor :bel_error
462
+ end
463
+ self.bel_error = 0;
464
+
465
+ class << self
466
+ attr_accessor :bel_en_ident
467
+ end
468
+ self.bel_en_ident = 15;
469
+ class << self
470
+ attr_accessor :bel_en_string
471
+ end
472
+ self.bel_en_string = 17;
473
+ class << self
474
+ attr_accessor :bel_en_bel_parameter
475
+ end
476
+ self.bel_en_bel_parameter = 21;
477
+ class << self
478
+ attr_accessor :bel_en_inner_term
479
+ end
480
+ self.bel_en_inner_term = 28;
481
+ class << self
482
+ attr_accessor :bel_en_term
483
+ end
484
+ self.bel_en_term = 1;
485
+
486
+
487
+ begin
488
+ p ||= 0
489
+ pe ||= data.length
490
+ cs = bel_start
491
+ top = 0
492
+ end
493
+
494
+ begin
495
+ testEof = false
496
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
497
+ _goto_level = 0
498
+ _resume = 10
499
+ _eof_trans = 15
500
+ _again = 20
501
+ _test_eof = 30
502
+ _out = 40
503
+ while true
504
+ if _goto_level <= 0
505
+ if p == pe
506
+ _goto_level = _test_eof
507
+ next
508
+ end
509
+ if cs == 0
510
+ _goto_level = _out
511
+ next
512
+ end
513
+ end
514
+ if _goto_level <= _resume
515
+ _keys = cs << 1
516
+ _inds = _bel_index_offsets[cs]
517
+ _slen = _bel_key_spans[cs]
518
+ _wide = data[p].ord
519
+ _trans = if ( _slen > 0 &&
520
+ _bel_trans_keys[_keys] <= _wide &&
521
+ _wide <= _bel_trans_keys[_keys + 1]
522
+ ) then
523
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
524
+ else
525
+ _bel_indicies[ _inds + _slen ]
526
+ end
527
+ cs = _bel_trans_targs[_trans]
528
+ if _bel_trans_actions[_trans] != 0
529
+ case _bel_trans_actions[_trans]
530
+ when 19 then
531
+ begin
532
+
533
+ (@buffers[:ident] ||= []) << data[p].ord
534
+ end
535
+ when 1 then
536
+ begin
537
+
538
+ unless @buffers[:ident].is_a?(::AST::Node)
539
+ @buffers[:ident] ||= []
540
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
541
+ end
542
+ end
543
+ when 13 then
544
+ begin
545
+
546
+ (@buffers[:string] ||= []) << data[p].ord
547
+ end
548
+ when 12 then
549
+ begin
550
+
551
+ @buffers[:string] ||= []
552
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
553
+ end
554
+ when 6 then
555
+ begin
556
+
557
+ fx = @buffers[:function]
558
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
559
+ end
560
+ when 29 then
561
+ begin
562
+
563
+ inner_term = @buffers[:term_stack].pop
564
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
565
+ begin
566
+ top -= 1
567
+ cs = stack[top]
568
+ _goto_level = _again
569
+ next
570
+ end
571
+
572
+ end
573
+ when 18 then
574
+ begin
575
+
576
+ yield @buffers[:term_stack][-1]
577
+ end
578
+ when 11 then
579
+ begin
580
+
581
+ @buffers[:ident] = []
582
+ end
583
+ begin
584
+
585
+ (@buffers[:ident] ||= []) << data[p].ord
586
+ end
587
+ when 5 then
588
+ begin
589
+
590
+ (@buffers[:ident] ||= []) << data[p].ord
591
+ end
592
+ begin
593
+
594
+ @buffers[:function] << data[p].ord
595
+ end
596
+ when 21 then
597
+ begin
598
+
599
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
600
+ end
601
+ begin
602
+
603
+ yield @buffers[:ident]
604
+ end
605
+ when 17 then
606
+ begin
607
+
608
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
609
+ end
610
+ begin
611
+
612
+ @buffers[:parameter] = parameter(prefix(@buffers[:ident]))
613
+ end
614
+ when 3 then
615
+ begin
616
+
617
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
618
+ end
619
+ begin
620
+
621
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
622
+ end
623
+ when 16 then
624
+ begin
625
+
626
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
627
+ end
628
+ begin
629
+
630
+ p -= @buffers[:function].length + 1
631
+ begin
632
+ stack[top] = cs
633
+ top+= 1
634
+ cs = 28
635
+ _goto_level = _again
636
+ next
637
+ end
638
+
639
+ end
640
+ when 20 then
641
+ begin
642
+
643
+ unless @buffers[:ident].is_a?(::AST::Node)
644
+ @buffers[:ident] ||= []
645
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
646
+ end
647
+ end
648
+ begin
649
+
650
+ @buffers[:ident] ||= []
651
+ yield @buffers[:ident]
652
+ end
653
+ when 7 then
654
+ begin
655
+
656
+ unless @buffers[:ident].is_a?(::AST::Node)
657
+ @buffers[:ident] ||= []
658
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
659
+ end
660
+ end
661
+ begin
662
+
663
+ @buffers[:string] ||= []
664
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
665
+ end
666
+ when 8 then
667
+ begin
668
+
669
+ @buffers[:string] = []
670
+ end
671
+ begin
672
+
673
+ (@buffers[:string] ||= []) << data[p].ord
674
+ end
675
+ when 23 then
676
+ begin
677
+
678
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
679
+ end
680
+ begin
681
+
682
+ yield @buffers[:string]
683
+ end
684
+ when 10 then
685
+ begin
686
+
687
+ @buffers[:string] ||= []
688
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
689
+ end
690
+ begin
691
+
692
+ unless @buffers[:ident].is_a?(::AST::Node)
693
+ @buffers[:ident] ||= []
694
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
695
+ end
696
+ end
697
+ when 22 then
698
+ begin
699
+
700
+ @buffers[:string] ||= []
701
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
702
+ end
703
+ begin
704
+
705
+ @buffers[:string] ||= []
706
+ yield @buffers[:string]
707
+ end
708
+ when 25 then
709
+ begin
710
+
711
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
712
+ end
713
+ begin
714
+
715
+ @buffers[:parameter] ||= parameter(prefix(nil))
716
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
717
+ end
718
+ begin
719
+
720
+ yield @buffers[:parameter]
721
+ end
722
+ when 15 then
723
+ begin
724
+
725
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
726
+ end
727
+ begin
728
+
729
+ @buffers[:parameter] ||= parameter(prefix(nil))
730
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
731
+ end
732
+ begin
733
+
734
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
735
+ @buffers[:parameter] = nil
736
+ end
737
+ when 4 then
738
+ begin
739
+
740
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
741
+ end
742
+ begin
743
+
744
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
745
+ end
746
+ begin
747
+
748
+ fx = @buffers[:function]
749
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
750
+ end
751
+ when 24 then
752
+ begin
753
+
754
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
755
+ end
756
+ begin
757
+
758
+ @buffers[:parameter] ||= parameter(prefix(nil))
759
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
760
+ end
761
+ begin
762
+
763
+ yield @buffers[:parameter]
764
+ end
765
+ when 14 then
766
+ begin
767
+
768
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
769
+ end
770
+ begin
771
+
772
+ @buffers[:parameter] ||= parameter(prefix(nil))
773
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
774
+ end
775
+ begin
776
+
777
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
778
+ @buffers[:parameter] = nil
779
+ end
780
+ when 9 then
781
+ begin
782
+
783
+ @buffers[:ident] = []
784
+ end
785
+ begin
786
+
787
+ (@buffers[:ident] ||= []) << data[p].ord
788
+ end
789
+ begin
790
+
791
+ @buffers[:function] = []
792
+ end
793
+ begin
794
+
795
+ @buffers[:function] << data[p].ord
796
+ end
797
+ when 28 then
798
+ begin
799
+
800
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
801
+ end
802
+ begin
803
+
804
+ @buffers[:parameter] ||= parameter(prefix(nil))
805
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
806
+ end
807
+ begin
808
+
809
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
810
+ @buffers[:parameter] = nil
811
+ end
812
+ begin
813
+
814
+ inner_term = @buffers[:term_stack].pop
815
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
816
+ begin
817
+ top -= 1
818
+ cs = stack[top]
819
+ _goto_level = _again
820
+ next
821
+ end
822
+
823
+ end
824
+ when 27 then
825
+ begin
826
+
827
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
828
+ end
829
+ begin
830
+
831
+ @buffers[:parameter] ||= parameter(prefix(nil))
832
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
833
+ end
834
+ begin
835
+
836
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
837
+ @buffers[:parameter] = nil
838
+ end
839
+ begin
840
+
841
+ inner_term = @buffers[:term_stack].pop
842
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
843
+ begin
844
+ top -= 1
845
+ cs = stack[top]
846
+ _goto_level = _again
847
+ next
848
+ end
849
+
850
+ end
851
+ when 2 then
852
+ begin
853
+
854
+ @buffers[:term_stack] = [ term() ]
855
+ end
856
+ begin
857
+
858
+ @buffers[:function] = []
859
+ end
860
+ begin
861
+
862
+ @buffers[:ident] = []
863
+ end
864
+ begin
865
+
866
+ (@buffers[:ident] ||= []) << data[p].ord
867
+ end
868
+ begin
869
+
870
+ @buffers[:function] << data[p].ord
871
+ end
872
+ when 26 then
873
+ begin
874
+
875
+ @buffers[:term_stack] << term()
876
+ end
877
+ begin
878
+
879
+ @buffers[:function] = []
880
+ end
881
+ begin
882
+
883
+ @buffers[:ident] = []
884
+ end
885
+ begin
886
+
887
+ (@buffers[:ident] ||= []) << data[p].ord
888
+ end
889
+ begin
890
+
891
+ @buffers[:function] << data[p].ord
892
+ end
893
+ end
894
+ end
895
+ end
896
+ if _goto_level <= _again
897
+ if cs == 0
898
+ _goto_level = _out
899
+ next
900
+ end
901
+ p += 1
902
+ if p != pe
903
+ _goto_level = _resume
904
+ next
905
+ end
906
+ end
907
+ if _goto_level <= _test_eof
908
+ if p == eof
909
+ case _bel_eof_actions[cs]
910
+ when 1 then
911
+ begin
912
+
913
+ unless @buffers[:ident].is_a?(::AST::Node)
914
+ @buffers[:ident] ||= []
915
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
916
+ end
917
+ end
918
+ when 12 then
919
+ begin
920
+
921
+ @buffers[:string] ||= []
922
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
923
+ end
924
+ when 20 then
925
+ begin
926
+
927
+ unless @buffers[:ident].is_a?(::AST::Node)
928
+ @buffers[:ident] ||= []
929
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
930
+ end
931
+ end
932
+ begin
933
+
934
+ @buffers[:ident] ||= []
935
+ yield @buffers[:ident]
936
+ end
937
+ when 7 then
938
+ begin
939
+
940
+ unless @buffers[:ident].is_a?(::AST::Node)
941
+ @buffers[:ident] ||= []
942
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
943
+ end
944
+ end
945
+ begin
946
+
947
+ @buffers[:string] ||= []
948
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
949
+ end
950
+ when 10 then
951
+ begin
952
+
953
+ @buffers[:string] ||= []
954
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
955
+ end
956
+ begin
957
+
958
+ unless @buffers[:ident].is_a?(::AST::Node)
959
+ @buffers[:ident] ||= []
960
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
961
+ end
962
+ end
963
+ when 22 then
964
+ begin
965
+
966
+ @buffers[:string] ||= []
967
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
968
+ end
969
+ begin
970
+
971
+ @buffers[:string] ||= []
972
+ yield @buffers[:string]
973
+ end
974
+ end
975
+ end
976
+
977
+ end
978
+ if _goto_level <= _out
979
+ break
980
+ end
981
+ end
982
+ end
983
+
984
+ class << self
985
+ attr_accessor :_bel_trans_keys
986
+ private :_bel_trans_keys, :_bel_trans_keys=
987
+ end
988
+ self._bel_trans_keys = [
989
+ 0, 0, 48, 122, 9, 122,
990
+ 9, 40, 9, 122, 9,
991
+ 122, 34, 92, 9, 44,
992
+ 9, 44, 9, 122, 9, 122,
993
+ 9, 44, 10, 10, 92,
994
+ 92, 9, 122, 48, 122,
995
+ 10, 122, 34, 34, 34, 92,
996
+ 10, 10, 92, 92, 9,
997
+ 122, 9, 122, 34, 92,
998
+ 10, 10, 92, 92, 10, 122,
999
+ 10, 122, 48, 122, 9,
1000
+ 122, 9, 40, 9, 122,
1001
+ 9, 122, 34, 92, 9, 44,
1002
+ 9, 44, 9, 122, 9,
1003
+ 122, 9, 44, 92, 92,
1004
+ 9, 122, 0, 0, 0, 0,
1005
+ 0, 0, 0, 0, 0,
1006
+ 0, 0
1007
+ ]
1008
+
1009
+ class << self
1010
+ attr_accessor :_bel_key_spans
1011
+ private :_bel_key_spans, :_bel_key_spans=
1012
+ end
1013
+ self._bel_key_spans = [
1014
+ 0, 75, 114, 32, 114, 114, 59, 36,
1015
+ 36, 114, 114, 36, 1, 1, 114, 75,
1016
+ 113, 1, 59, 1, 1, 114, 114, 59,
1017
+ 1, 1, 113, 113, 75, 114, 32, 114,
1018
+ 114, 59, 36, 36, 114, 114, 36, 1,
1019
+ 114, 0, 0, 0, 0, 0
1020
+ ]
1021
+
1022
+ class << self
1023
+ attr_accessor :_bel_index_offsets
1024
+ private :_bel_index_offsets, :_bel_index_offsets=
1025
+ end
1026
+ self._bel_index_offsets = [
1027
+ 0, 0, 76, 191, 224, 339, 454, 514,
1028
+ 551, 588, 703, 818, 855, 857, 859, 974,
1029
+ 1050, 1164, 1166, 1226, 1228, 1230, 1345, 1460,
1030
+ 1520, 1522, 1524, 1638, 1752, 1828, 1943, 1976,
1031
+ 2091, 2206, 2266, 2303, 2340, 2455, 2570, 2607,
1032
+ 2609, 2724, 2725, 2726, 2727, 2728
1033
+ ]
1034
+
1035
+ class << self
1036
+ attr_accessor :_bel_indicies
1037
+ private :_bel_indicies, :_bel_indicies=
1038
+ end
1039
+ self._bel_indicies = [
1040
+ 1, 1, 1, 1, 1, 1, 1, 1,
1041
+ 1, 1, 0, 0, 0, 0, 0, 0,
1042
+ 0, 1, 1, 1, 1, 1, 1, 1,
1043
+ 1, 1, 1, 1, 1, 1, 1, 1,
1044
+ 1, 1, 1, 1, 1, 1, 1, 1,
1045
+ 1, 1, 1, 0, 0, 0, 0, 1,
1046
+ 0, 1, 1, 1, 1, 1, 1, 1,
1047
+ 1, 1, 1, 1, 1, 1, 1, 1,
1048
+ 1, 1, 1, 1, 1, 1, 1, 1,
1049
+ 1, 1, 1, 0, 2, 0, 0, 0,
1050
+ 0, 0, 0, 0, 0, 0, 0, 0,
1051
+ 0, 0, 0, 0, 0, 0, 0, 0,
1052
+ 0, 0, 0, 2, 0, 0, 0, 0,
1053
+ 0, 0, 0, 3, 0, 0, 0, 0,
1054
+ 0, 0, 0, 4, 4, 4, 4, 4,
1055
+ 4, 4, 4, 4, 4, 0, 0, 0,
1056
+ 0, 0, 0, 0, 4, 4, 4, 4,
1057
+ 4, 4, 4, 4, 4, 4, 4, 4,
1058
+ 4, 4, 4, 4, 4, 4, 4, 4,
1059
+ 4, 4, 4, 4, 4, 4, 0, 0,
1060
+ 0, 0, 4, 0, 4, 4, 4, 4,
1061
+ 4, 4, 4, 4, 4, 4, 4, 4,
1062
+ 4, 4, 4, 4, 4, 4, 4, 4,
1063
+ 4, 4, 4, 4, 4, 4, 0, 5,
1064
+ 6, 6, 6, 6, 6, 6, 6, 6,
1065
+ 6, 6, 6, 6, 6, 6, 6, 6,
1066
+ 6, 6, 6, 6, 6, 6, 5, 6,
1067
+ 6, 6, 6, 6, 6, 6, 7, 6,
1068
+ 9, 8, 8, 8, 8, 8, 8, 8,
1069
+ 8, 8, 8, 8, 8, 8, 8, 8,
1070
+ 8, 8, 8, 8, 8, 8, 8, 9,
1071
+ 8, 10, 8, 8, 8, 8, 8, 8,
1072
+ 8, 8, 8, 8, 8, 8, 8, 11,
1073
+ 11, 11, 11, 11, 11, 11, 11, 11,
1074
+ 11, 8, 8, 8, 8, 8, 8, 8,
1075
+ 11, 11, 11, 11, 11, 11, 11, 11,
1076
+ 11, 11, 11, 11, 11, 11, 11, 11,
1077
+ 11, 11, 11, 11, 11, 11, 11, 11,
1078
+ 11, 11, 8, 8, 8, 8, 11, 8,
1079
+ 11, 11, 11, 11, 11, 11, 11, 11,
1080
+ 11, 11, 11, 11, 11, 11, 11, 11,
1081
+ 11, 11, 11, 11, 11, 11, 11, 11,
1082
+ 11, 11, 8, 9, 12, 12, 12, 12,
1083
+ 12, 12, 12, 12, 12, 12, 12, 12,
1084
+ 12, 12, 12, 12, 12, 12, 12, 12,
1085
+ 12, 12, 9, 12, 10, 12, 12, 12,
1086
+ 12, 12, 12, 12, 12, 12, 12, 12,
1087
+ 12, 12, 13, 13, 13, 13, 13, 13,
1088
+ 13, 13, 13, 13, 12, 12, 12, 12,
1089
+ 12, 12, 12, 13, 13, 13, 13, 13,
1090
+ 13, 13, 13, 13, 13, 13, 13, 13,
1091
+ 13, 13, 13, 13, 13, 13, 13, 13,
1092
+ 13, 13, 13, 13, 13, 12, 12, 12,
1093
+ 12, 13, 12, 13, 13, 13, 13, 13,
1094
+ 13, 13, 13, 13, 13, 13, 13, 13,
1095
+ 13, 13, 13, 13, 13, 13, 13, 13,
1096
+ 13, 13, 13, 13, 13, 12, 15, 14,
1097
+ 14, 14, 14, 14, 14, 14, 14, 14,
1098
+ 14, 14, 14, 14, 14, 14, 14, 14,
1099
+ 14, 14, 14, 14, 14, 14, 14, 14,
1100
+ 14, 14, 14, 14, 14, 14, 14, 14,
1101
+ 14, 14, 14, 14, 14, 14, 14, 14,
1102
+ 14, 14, 14, 14, 14, 14, 14, 14,
1103
+ 14, 14, 14, 14, 14, 14, 14, 14,
1104
+ 16, 14, 18, 17, 17, 17, 17, 17,
1105
+ 17, 17, 17, 17, 17, 17, 17, 17,
1106
+ 17, 17, 17, 17, 17, 17, 17, 17,
1107
+ 17, 18, 17, 17, 17, 17, 17, 17,
1108
+ 17, 17, 19, 17, 17, 20, 17, 21,
1109
+ 6, 6, 6, 6, 6, 6, 6, 6,
1110
+ 6, 6, 6, 6, 6, 6, 6, 6,
1111
+ 6, 6, 6, 6, 6, 6, 21, 6,
1112
+ 6, 6, 6, 6, 6, 6, 6, 6,
1113
+ 6, 6, 22, 6, 22, 8, 8, 8,
1114
+ 8, 8, 8, 8, 8, 8, 8, 8,
1115
+ 8, 8, 8, 8, 8, 8, 8, 8,
1116
+ 8, 8, 8, 22, 8, 10, 8, 8,
1117
+ 8, 8, 8, 8, 8, 8, 8, 8,
1118
+ 8, 8, 8, 11, 11, 11, 11, 11,
1119
+ 11, 11, 11, 11, 11, 8, 8, 8,
1120
+ 8, 8, 8, 8, 11, 11, 11, 11,
1121
+ 11, 11, 11, 11, 11, 11, 11, 11,
1122
+ 11, 11, 11, 11, 11, 11, 11, 11,
1123
+ 11, 11, 11, 11, 11, 11, 8, 8,
1124
+ 8, 8, 11, 8, 11, 11, 11, 11,
1125
+ 11, 11, 11, 11, 11, 11, 11, 11,
1126
+ 11, 11, 11, 11, 11, 11, 11, 11,
1127
+ 11, 11, 11, 11, 11, 11, 8, 23,
1128
+ 0, 0, 0, 0, 0, 0, 0, 0,
1129
+ 0, 0, 0, 0, 0, 0, 0, 0,
1130
+ 0, 0, 0, 0, 0, 0, 23, 0,
1131
+ 0, 0, 0, 0, 0, 0, 24, 25,
1132
+ 0, 0, 26, 0, 0, 0, 27, 27,
1133
+ 27, 27, 27, 27, 27, 27, 27, 27,
1134
+ 28, 0, 0, 0, 0, 0, 0, 27,
1135
+ 27, 27, 27, 27, 27, 27, 27, 27,
1136
+ 27, 27, 27, 27, 27, 27, 27, 27,
1137
+ 27, 27, 27, 27, 27, 27, 27, 27,
1138
+ 27, 0, 0, 0, 0, 27, 0, 27,
1139
+ 27, 27, 27, 27, 27, 27, 27, 27,
1140
+ 27, 27, 27, 27, 27, 27, 27, 27,
1141
+ 27, 27, 27, 27, 27, 27, 27, 27,
1142
+ 27, 0, 21, 6, 6, 6, 6, 6,
1143
+ 6, 6, 6, 6, 6, 6, 6, 6,
1144
+ 6, 6, 6, 6, 6, 6, 6, 6,
1145
+ 6, 21, 6, 6, 6, 6, 6, 6,
1146
+ 6, 6, 29, 6, 6, 22, 6, 30,
1147
+ 6, 16, 14, 23, 0, 0, 0, 0,
1148
+ 0, 0, 0, 0, 0, 0, 0, 0,
1149
+ 0, 0, 0, 0, 0, 0, 0, 0,
1150
+ 0, 0, 23, 0, 0, 0, 0, 0,
1151
+ 0, 0, 0, 25, 0, 0, 26, 0,
1152
+ 0, 0, 31, 31, 31, 31, 31, 31,
1153
+ 31, 31, 31, 31, 0, 0, 0, 0,
1154
+ 0, 0, 0, 31, 31, 31, 31, 31,
1155
+ 31, 31, 31, 31, 31, 31, 31, 31,
1156
+ 31, 31, 31, 31, 31, 31, 31, 31,
1157
+ 31, 31, 31, 31, 31, 0, 0, 0,
1158
+ 0, 31, 0, 31, 31, 31, 31, 31,
1159
+ 31, 31, 31, 31, 31, 31, 31, 31,
1160
+ 31, 31, 31, 31, 31, 31, 31, 31,
1161
+ 31, 31, 31, 31, 31, 0, 33, 33,
1162
+ 33, 33, 33, 33, 33, 33, 33, 33,
1163
+ 32, 32, 32, 32, 32, 32, 32, 33,
1164
+ 33, 33, 33, 33, 33, 33, 33, 33,
1165
+ 33, 33, 33, 33, 33, 33, 33, 33,
1166
+ 33, 33, 33, 33, 33, 33, 33, 33,
1167
+ 33, 32, 32, 32, 32, 33, 32, 33,
1168
+ 33, 33, 33, 33, 33, 33, 33, 33,
1169
+ 33, 33, 33, 33, 33, 33, 33, 33,
1170
+ 33, 33, 33, 33, 33, 33, 33, 33,
1171
+ 33, 32, 34, 32, 32, 32, 32, 32,
1172
+ 32, 32, 32, 32, 32, 32, 32, 32,
1173
+ 32, 32, 32, 32, 32, 32, 32, 32,
1174
+ 32, 32, 32, 32, 32, 32, 32, 32,
1175
+ 32, 32, 32, 32, 32, 32, 32, 32,
1176
+ 35, 35, 35, 35, 35, 35, 35, 35,
1177
+ 35, 35, 32, 32, 32, 32, 32, 32,
1178
+ 32, 35, 35, 35, 35, 35, 35, 35,
1179
+ 35, 35, 35, 35, 35, 35, 35, 35,
1180
+ 35, 35, 35, 35, 35, 35, 35, 35,
1181
+ 35, 35, 35, 32, 32, 32, 32, 35,
1182
+ 32, 35, 35, 35, 35, 35, 35, 35,
1183
+ 35, 35, 35, 35, 35, 35, 35, 35,
1184
+ 35, 35, 35, 35, 35, 35, 35, 35,
1185
+ 35, 35, 35, 32, 37, 36, 39, 38,
1186
+ 38, 38, 38, 38, 38, 38, 38, 38,
1187
+ 38, 38, 38, 38, 38, 38, 38, 38,
1188
+ 38, 38, 38, 38, 38, 38, 38, 38,
1189
+ 38, 38, 38, 38, 38, 38, 38, 38,
1190
+ 38, 38, 38, 38, 38, 38, 38, 38,
1191
+ 38, 38, 38, 38, 38, 38, 38, 38,
1192
+ 38, 38, 38, 38, 38, 38, 38, 38,
1193
+ 40, 38, 41, 36, 40, 38, 42, 8,
1194
+ 8, 8, 8, 8, 8, 8, 8, 8,
1195
+ 8, 8, 8, 8, 8, 8, 8, 8,
1196
+ 8, 8, 8, 8, 8, 42, 8, 43,
1197
+ 8, 8, 8, 8, 8, 8, 8, 8,
1198
+ 8, 8, 8, 8, 8, 44, 44, 44,
1199
+ 44, 44, 44, 44, 44, 44, 44, 8,
1200
+ 8, 8, 8, 8, 8, 8, 44, 44,
1201
+ 44, 44, 44, 44, 44, 44, 44, 44,
1202
+ 44, 44, 44, 44, 44, 44, 44, 44,
1203
+ 44, 44, 44, 44, 44, 44, 44, 44,
1204
+ 8, 8, 8, 8, 44, 8, 44, 44,
1205
+ 44, 44, 44, 44, 44, 44, 44, 44,
1206
+ 44, 44, 44, 44, 44, 44, 44, 44,
1207
+ 44, 44, 44, 44, 44, 44, 44, 44,
1208
+ 8, 42, 12, 12, 12, 12, 12, 12,
1209
+ 12, 12, 12, 12, 12, 12, 12, 12,
1210
+ 12, 12, 12, 12, 12, 12, 12, 12,
1211
+ 42, 12, 43, 12, 12, 12, 12, 12,
1212
+ 12, 12, 12, 12, 12, 12, 12, 12,
1213
+ 45, 45, 45, 45, 45, 45, 45, 45,
1214
+ 45, 45, 12, 12, 12, 12, 12, 12,
1215
+ 12, 45, 45, 45, 45, 45, 45, 45,
1216
+ 45, 45, 45, 45, 45, 45, 45, 45,
1217
+ 45, 45, 45, 45, 45, 45, 45, 45,
1218
+ 45, 45, 45, 12, 12, 12, 12, 45,
1219
+ 12, 45, 45, 45, 45, 45, 45, 45,
1220
+ 45, 45, 45, 45, 45, 45, 45, 45,
1221
+ 45, 45, 45, 45, 45, 45, 45, 45,
1222
+ 45, 45, 45, 12, 47, 46, 46, 46,
1223
+ 46, 46, 46, 46, 46, 46, 46, 46,
1224
+ 46, 46, 46, 46, 46, 46, 46, 46,
1225
+ 46, 46, 46, 46, 46, 46, 46, 46,
1226
+ 46, 46, 46, 46, 46, 46, 46, 46,
1227
+ 46, 46, 46, 46, 46, 46, 46, 46,
1228
+ 46, 46, 46, 46, 46, 46, 46, 46,
1229
+ 46, 46, 46, 46, 46, 46, 48, 46,
1230
+ 49, 17, 48, 46, 50, 0, 0, 0,
1231
+ 0, 0, 0, 0, 0, 0, 0, 0,
1232
+ 0, 0, 0, 0, 0, 0, 0, 0,
1233
+ 0, 0, 0, 0, 0, 0, 0, 0,
1234
+ 0, 0, 0, 0, 0, 0, 0, 0,
1235
+ 0, 0, 51, 51, 51, 51, 51, 51,
1236
+ 51, 51, 51, 51, 0, 0, 0, 0,
1237
+ 0, 0, 0, 51, 51, 51, 51, 51,
1238
+ 51, 51, 51, 51, 51, 51, 51, 51,
1239
+ 51, 51, 51, 51, 51, 51, 51, 51,
1240
+ 51, 51, 51, 51, 51, 0, 0, 0,
1241
+ 0, 51, 0, 51, 51, 51, 51, 51,
1242
+ 51, 51, 51, 51, 51, 51, 51, 51,
1243
+ 51, 51, 51, 51, 51, 51, 51, 51,
1244
+ 51, 51, 51, 51, 51, 0, 50, 0,
1245
+ 0, 0, 0, 0, 0, 0, 0, 0,
1246
+ 0, 0, 0, 0, 0, 0, 0, 0,
1247
+ 0, 0, 0, 0, 0, 0, 0, 0,
1248
+ 0, 0, 0, 0, 0, 0, 0, 0,
1249
+ 0, 0, 0, 0, 52, 52, 52, 52,
1250
+ 52, 52, 52, 52, 52, 52, 53, 0,
1251
+ 0, 0, 0, 0, 0, 52, 52, 52,
1252
+ 52, 52, 52, 52, 52, 52, 52, 52,
1253
+ 52, 52, 52, 52, 52, 52, 52, 52,
1254
+ 52, 52, 52, 52, 52, 52, 52, 0,
1255
+ 0, 0, 0, 52, 0, 52, 52, 52,
1256
+ 52, 52, 52, 52, 52, 52, 52, 52,
1257
+ 52, 52, 52, 52, 52, 52, 52, 52,
1258
+ 52, 52, 52, 52, 52, 52, 52, 0,
1259
+ 54, 54, 54, 54, 54, 54, 54, 54,
1260
+ 54, 54, 0, 0, 0, 0, 0, 0,
1261
+ 0, 54, 54, 54, 54, 54, 54, 54,
1262
+ 54, 54, 54, 54, 54, 54, 54, 54,
1263
+ 54, 54, 54, 54, 54, 54, 54, 54,
1264
+ 54, 54, 54, 0, 0, 0, 0, 54,
1265
+ 0, 54, 54, 54, 54, 54, 54, 54,
1266
+ 54, 54, 54, 54, 54, 54, 54, 54,
1267
+ 54, 54, 54, 54, 54, 54, 54, 54,
1268
+ 54, 54, 54, 0, 55, 0, 0, 0,
1269
+ 0, 0, 0, 0, 0, 0, 0, 0,
1270
+ 0, 0, 0, 0, 0, 0, 0, 0,
1271
+ 0, 0, 0, 55, 0, 0, 0, 0,
1272
+ 0, 0, 0, 56, 0, 0, 0, 0,
1273
+ 0, 0, 0, 57, 57, 57, 57, 57,
1274
+ 57, 57, 57, 57, 57, 0, 0, 0,
1275
+ 0, 0, 0, 0, 57, 57, 57, 57,
1276
+ 57, 57, 57, 57, 57, 57, 57, 57,
1277
+ 57, 57, 57, 57, 57, 57, 57, 57,
1278
+ 57, 57, 57, 57, 57, 57, 0, 0,
1279
+ 0, 0, 57, 0, 57, 57, 57, 57,
1280
+ 57, 57, 57, 57, 57, 57, 57, 57,
1281
+ 57, 57, 57, 57, 57, 57, 57, 57,
1282
+ 57, 57, 57, 57, 57, 57, 0, 58,
1283
+ 6, 6, 6, 6, 6, 6, 6, 6,
1284
+ 6, 6, 6, 6, 6, 6, 6, 6,
1285
+ 6, 6, 6, 6, 6, 6, 58, 6,
1286
+ 6, 6, 6, 6, 6, 6, 59, 6,
1287
+ 60, 8, 8, 8, 8, 8, 8, 8,
1288
+ 8, 8, 8, 8, 8, 8, 8, 8,
1289
+ 8, 8, 8, 8, 8, 8, 8, 60,
1290
+ 8, 61, 8, 8, 8, 8, 8, 8,
1291
+ 8, 8, 8, 8, 8, 8, 8, 62,
1292
+ 62, 62, 62, 62, 62, 62, 62, 62,
1293
+ 62, 8, 8, 8, 8, 8, 8, 8,
1294
+ 62, 62, 62, 62, 62, 62, 62, 62,
1295
+ 62, 62, 62, 62, 62, 62, 62, 62,
1296
+ 62, 62, 62, 62, 62, 62, 62, 62,
1297
+ 62, 62, 8, 8, 8, 8, 62, 8,
1298
+ 62, 62, 62, 62, 62, 62, 62, 62,
1299
+ 62, 62, 62, 62, 62, 62, 62, 62,
1300
+ 62, 62, 62, 62, 62, 62, 62, 62,
1301
+ 62, 62, 8, 60, 12, 12, 12, 12,
1302
+ 12, 12, 12, 12, 12, 12, 12, 12,
1303
+ 12, 12, 12, 12, 12, 12, 12, 12,
1304
+ 12, 12, 60, 12, 61, 12, 12, 12,
1305
+ 12, 12, 12, 12, 12, 12, 12, 12,
1306
+ 12, 12, 63, 63, 63, 63, 63, 63,
1307
+ 63, 63, 63, 63, 12, 12, 12, 12,
1308
+ 12, 12, 12, 63, 63, 63, 63, 63,
1309
+ 63, 63, 63, 63, 63, 63, 63, 63,
1310
+ 63, 63, 63, 63, 63, 63, 63, 63,
1311
+ 63, 63, 63, 63, 63, 12, 12, 12,
1312
+ 12, 63, 12, 63, 63, 63, 63, 63,
1313
+ 63, 63, 63, 63, 63, 63, 63, 63,
1314
+ 63, 63, 63, 63, 63, 63, 63, 63,
1315
+ 63, 63, 63, 63, 63, 12, 65, 64,
1316
+ 64, 64, 64, 64, 64, 64, 64, 64,
1317
+ 64, 64, 64, 64, 64, 64, 64, 64,
1318
+ 64, 64, 64, 64, 64, 64, 64, 64,
1319
+ 64, 64, 64, 64, 64, 64, 64, 64,
1320
+ 64, 64, 64, 64, 64, 64, 64, 64,
1321
+ 64, 64, 64, 64, 64, 64, 64, 64,
1322
+ 64, 64, 64, 64, 64, 64, 64, 64,
1323
+ 66, 64, 67, 17, 17, 17, 17, 17,
1324
+ 17, 17, 17, 17, 17, 17, 17, 17,
1325
+ 17, 17, 17, 17, 17, 17, 17, 17,
1326
+ 17, 67, 17, 17, 17, 17, 17, 17,
1327
+ 17, 17, 68, 17, 17, 69, 17, 70,
1328
+ 6, 6, 6, 6, 6, 6, 6, 6,
1329
+ 6, 6, 6, 6, 6, 6, 6, 6,
1330
+ 6, 6, 6, 6, 6, 6, 70, 6,
1331
+ 6, 6, 6, 6, 6, 6, 6, 6,
1332
+ 6, 6, 71, 6, 71, 8, 8, 8,
1333
+ 8, 8, 8, 8, 8, 8, 8, 8,
1334
+ 8, 8, 8, 8, 8, 8, 8, 8,
1335
+ 8, 8, 8, 71, 8, 61, 8, 8,
1336
+ 8, 8, 8, 8, 8, 8, 8, 8,
1337
+ 8, 8, 8, 62, 62, 62, 62, 62,
1338
+ 62, 62, 62, 62, 62, 8, 8, 8,
1339
+ 8, 8, 8, 8, 62, 62, 62, 62,
1340
+ 62, 62, 62, 62, 62, 62, 62, 62,
1341
+ 62, 62, 62, 62, 62, 62, 62, 62,
1342
+ 62, 62, 62, 62, 62, 62, 8, 8,
1343
+ 8, 8, 62, 8, 62, 62, 62, 62,
1344
+ 62, 62, 62, 62, 62, 62, 62, 62,
1345
+ 62, 62, 62, 62, 62, 62, 62, 62,
1346
+ 62, 62, 62, 62, 62, 62, 8, 72,
1347
+ 0, 0, 0, 0, 0, 0, 0, 0,
1348
+ 0, 0, 0, 0, 0, 0, 0, 0,
1349
+ 0, 0, 0, 0, 0, 0, 72, 0,
1350
+ 0, 0, 0, 0, 0, 0, 73, 74,
1351
+ 0, 0, 75, 0, 0, 0, 76, 76,
1352
+ 76, 76, 76, 76, 76, 76, 76, 76,
1353
+ 77, 0, 0, 0, 0, 0, 0, 76,
1354
+ 76, 76, 76, 76, 76, 76, 76, 76,
1355
+ 76, 76, 76, 76, 76, 76, 76, 76,
1356
+ 76, 76, 76, 76, 76, 76, 76, 76,
1357
+ 76, 0, 0, 0, 0, 76, 0, 76,
1358
+ 76, 76, 76, 76, 76, 76, 76, 76,
1359
+ 76, 76, 76, 76, 76, 76, 76, 76,
1360
+ 76, 76, 76, 76, 76, 76, 76, 76,
1361
+ 76, 0, 70, 6, 6, 6, 6, 6,
1362
+ 6, 6, 6, 6, 6, 6, 6, 6,
1363
+ 6, 6, 6, 6, 6, 6, 6, 6,
1364
+ 6, 70, 6, 6, 6, 6, 6, 6,
1365
+ 6, 6, 78, 6, 6, 71, 6, 66,
1366
+ 64, 72, 0, 0, 0, 0, 0, 0,
1367
+ 0, 0, 0, 0, 0, 0, 0, 0,
1368
+ 0, 0, 0, 0, 0, 0, 0, 0,
1369
+ 72, 0, 0, 0, 0, 0, 0, 0,
1370
+ 0, 74, 0, 0, 75, 0, 0, 0,
1371
+ 79, 79, 79, 79, 79, 79, 79, 79,
1372
+ 79, 79, 0, 0, 0, 0, 0, 0,
1373
+ 0, 79, 79, 79, 79, 79, 79, 79,
1374
+ 79, 79, 79, 79, 79, 79, 79, 79,
1375
+ 79, 79, 79, 79, 79, 79, 79, 79,
1376
+ 79, 79, 79, 0, 0, 0, 0, 79,
1377
+ 0, 79, 79, 79, 79, 79, 79, 79,
1378
+ 79, 79, 79, 79, 79, 79, 79, 79,
1379
+ 79, 79, 79, 79, 79, 79, 79, 79,
1380
+ 79, 79, 79, 0, 6, 6, 6, 6,
1381
+ 6, 0
1382
+ ]
1383
+
1384
+ class << self
1385
+ attr_accessor :_bel_trans_targs
1386
+ private :_bel_trans_targs, :_bel_trans_targs=
1387
+ end
1388
+ self._bel_trans_targs = [
1389
+ 0, 2, 3, 4, 2, 3, 0, 4,
1390
+ 0, 5, 6, 10, 0, 14, 6, 7,
1391
+ 13, 0, 8, 12, 9, 8, 9, 8,
1392
+ 11, 12, 9, 10, 5, 12, 41, 14,
1393
+ 0, 16, 42, 16, 0, 18, 18, 19,
1394
+ 20, 43, 22, 23, 27, 26, 23, 24,
1395
+ 25, 44, 44, 26, 27, 22, 29, 30,
1396
+ 31, 29, 30, 31, 32, 33, 37, 40,
1397
+ 33, 34, 39, 35, 45, 36, 35, 36,
1398
+ 35, 38, 45, 36, 37, 32, 45, 40
1399
+ ]
1400
+
1401
+ class << self
1402
+ attr_accessor :_bel_trans_actions
1403
+ private :_bel_trans_actions, :_bel_trans_actions=
1404
+ end
1405
+ self._bel_trans_actions = [
1406
+ 1, 2, 3, 4, 5, 0, 0, 6,
1407
+ 7, 0, 8, 9, 10, 11, 13, 13,
1408
+ 13, 12, 14, 14, 14, 0, 0, 15,
1409
+ 16, 15, 15, 5, 17, 0, 18, 19,
1410
+ 20, 11, 21, 19, 22, 8, 13, 13,
1411
+ 13, 23, 0, 8, 11, 11, 13, 13,
1412
+ 13, 24, 25, 19, 19, 17, 26, 3,
1413
+ 4, 5, 0, 6, 0, 8, 9, 11,
1414
+ 13, 13, 13, 14, 27, 14, 0, 0,
1415
+ 15, 16, 28, 15, 5, 17, 29, 19
1416
+ ]
1417
+
1418
+ class << self
1419
+ attr_accessor :_bel_eof_actions
1420
+ private :_bel_eof_actions, :_bel_eof_actions=
1421
+ end
1422
+ self._bel_eof_actions = [
1423
+ 0, 1, 1, 0, 7, 10, 12, 12,
1424
+ 0, 7, 1, 0, 0, 12, 1, 20,
1425
+ 20, 22, 22, 22, 22, 7, 10, 12,
1426
+ 12, 12, 1, 1, 1, 1, 0, 7,
1427
+ 10, 12, 12, 0, 7, 1, 0, 12,
1428
+ 1, 0, 0, 0, 0, 0
1429
+ ]
1430
+
1431
+ class << self
1432
+ attr_accessor :bel_start
1433
+ end
1434
+ self.bel_start = 1;
1435
+ class << self
1436
+ attr_accessor :bel_first_final
1437
+ end
1438
+ self.bel_first_final = 41;
1439
+ class << self
1440
+ attr_accessor :bel_error
1441
+ end
1442
+ self.bel_error = 0;
1443
+
1444
+ class << self
1445
+ attr_accessor :bel_en_ident
1446
+ end
1447
+ self.bel_en_ident = 15;
1448
+ class << self
1449
+ attr_accessor :bel_en_string
1450
+ end
1451
+ self.bel_en_string = 17;
1452
+ class << self
1453
+ attr_accessor :bel_en_bel_parameter
1454
+ end
1455
+ self.bel_en_bel_parameter = 21;
1456
+ class << self
1457
+ attr_accessor :bel_en_inner_term
1458
+ end
1459
+ self.bel_en_inner_term = 28;
1460
+ class << self
1461
+ attr_accessor :bel_en_term
1462
+ end
1463
+ self.bel_en_term = 1;
1464
+
1465
+
1466
+ begin
1467
+ p ||= 0
1468
+ pe ||= data.length
1469
+ cs = bel_start
1470
+ top = 0
1471
+ end
1472
+
1473
+ begin
1474
+ testEof = false
1475
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
1476
+ _goto_level = 0
1477
+ _resume = 10
1478
+ _eof_trans = 15
1479
+ _again = 20
1480
+ _test_eof = 30
1481
+ _out = 40
1482
+ while true
1483
+ if _goto_level <= 0
1484
+ if p == pe
1485
+ _goto_level = _test_eof
1486
+ next
1487
+ end
1488
+ if cs == 0
1489
+ _goto_level = _out
1490
+ next
1491
+ end
1492
+ end
1493
+ if _goto_level <= _resume
1494
+ _keys = cs << 1
1495
+ _inds = _bel_index_offsets[cs]
1496
+ _slen = _bel_key_spans[cs]
1497
+ _wide = data[p].ord
1498
+ _trans = if ( _slen > 0 &&
1499
+ _bel_trans_keys[_keys] <= _wide &&
1500
+ _wide <= _bel_trans_keys[_keys + 1]
1501
+ ) then
1502
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
1503
+ else
1504
+ _bel_indicies[ _inds + _slen ]
1505
+ end
1506
+ cs = _bel_trans_targs[_trans]
1507
+ if _bel_trans_actions[_trans] != 0
1508
+ case _bel_trans_actions[_trans]
1509
+ when 19 then
1510
+ begin
1511
+
1512
+ (@buffers[:ident] ||= []) << data[p].ord
1513
+ end
1514
+ when 1 then
1515
+ begin
1516
+
1517
+ unless @buffers[:ident].is_a?(::AST::Node)
1518
+ @buffers[:ident] ||= []
1519
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1520
+ end
1521
+ end
1522
+ when 13 then
1523
+ begin
1524
+
1525
+ (@buffers[:string] ||= []) << data[p].ord
1526
+ end
1527
+ when 12 then
1528
+ begin
1529
+
1530
+ @buffers[:string] ||= []
1531
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1532
+ end
1533
+ when 6 then
1534
+ begin
1535
+
1536
+ fx = @buffers[:function]
1537
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
1538
+ end
1539
+ when 29 then
1540
+ begin
1541
+
1542
+ inner_term = @buffers[:term_stack].pop
1543
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
1544
+ begin
1545
+ top -= 1
1546
+ cs = stack[top]
1547
+ _goto_level = _again
1548
+ next
1549
+ end
1550
+
1551
+ end
1552
+ when 18 then
1553
+ begin
1554
+
1555
+ yield @buffers[:term_stack][-1]
1556
+ end
1557
+ when 11 then
1558
+ begin
1559
+
1560
+ @buffers[:ident] = []
1561
+ end
1562
+ begin
1563
+
1564
+ (@buffers[:ident] ||= []) << data[p].ord
1565
+ end
1566
+ when 5 then
1567
+ begin
1568
+
1569
+ (@buffers[:ident] ||= []) << data[p].ord
1570
+ end
1571
+ begin
1572
+
1573
+ @buffers[:function] << data[p].ord
1574
+ end
1575
+ when 21 then
1576
+ begin
1577
+
1578
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1579
+ end
1580
+ begin
1581
+
1582
+ yield @buffers[:ident]
1583
+ end
1584
+ when 17 then
1585
+ begin
1586
+
1587
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1588
+ end
1589
+ begin
1590
+
1591
+ @buffers[:parameter] = parameter(prefix(@buffers[:ident]))
1592
+ end
1593
+ when 3 then
1594
+ begin
1595
+
1596
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1597
+ end
1598
+ begin
1599
+
1600
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
1601
+ end
1602
+ when 16 then
1603
+ begin
1604
+
1605
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1606
+ end
1607
+ begin
1608
+
1609
+ p -= @buffers[:function].length + 1
1610
+ begin
1611
+ stack[top] = cs
1612
+ top+= 1
1613
+ cs = 28
1614
+ _goto_level = _again
1615
+ next
1616
+ end
1617
+
1618
+ end
1619
+ when 20 then
1620
+ begin
1621
+
1622
+ unless @buffers[:ident].is_a?(::AST::Node)
1623
+ @buffers[:ident] ||= []
1624
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1625
+ end
1626
+ end
1627
+ begin
1628
+
1629
+ @buffers[:ident] ||= []
1630
+ yield @buffers[:ident]
1631
+ end
1632
+ when 7 then
1633
+ begin
1634
+
1635
+ unless @buffers[:ident].is_a?(::AST::Node)
1636
+ @buffers[:ident] ||= []
1637
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1638
+ end
1639
+ end
1640
+ begin
1641
+
1642
+ @buffers[:string] ||= []
1643
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1644
+ end
1645
+ when 8 then
1646
+ begin
1647
+
1648
+ @buffers[:string] = []
1649
+ end
1650
+ begin
1651
+
1652
+ (@buffers[:string] ||= []) << data[p].ord
1653
+ end
1654
+ when 23 then
1655
+ begin
1656
+
1657
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1658
+ end
1659
+ begin
1660
+
1661
+ yield @buffers[:string]
1662
+ end
1663
+ when 10 then
1664
+ begin
1665
+
1666
+ @buffers[:string] ||= []
1667
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1668
+ end
1669
+ begin
1670
+
1671
+ unless @buffers[:ident].is_a?(::AST::Node)
1672
+ @buffers[:ident] ||= []
1673
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1674
+ end
1675
+ end
1676
+ when 22 then
1677
+ begin
1678
+
1679
+ @buffers[:string] ||= []
1680
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1681
+ end
1682
+ begin
1683
+
1684
+ @buffers[:string] ||= []
1685
+ yield @buffers[:string]
1686
+ end
1687
+ when 25 then
1688
+ begin
1689
+
1690
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1691
+ end
1692
+ begin
1693
+
1694
+ @buffers[:parameter] ||= parameter(prefix(nil))
1695
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
1696
+ end
1697
+ begin
1698
+
1699
+ yield @buffers[:parameter]
1700
+ end
1701
+ when 15 then
1702
+ begin
1703
+
1704
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1705
+ end
1706
+ begin
1707
+
1708
+ @buffers[:parameter] ||= parameter(prefix(nil))
1709
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
1710
+ end
1711
+ begin
1712
+
1713
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
1714
+ @buffers[:parameter] = nil
1715
+ end
1716
+ when 4 then
1717
+ begin
1718
+
1719
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1720
+ end
1721
+ begin
1722
+
1723
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
1724
+ end
1725
+ begin
1726
+
1727
+ fx = @buffers[:function]
1728
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
1729
+ end
1730
+ when 24 then
1731
+ begin
1732
+
1733
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1734
+ end
1735
+ begin
1736
+
1737
+ @buffers[:parameter] ||= parameter(prefix(nil))
1738
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
1739
+ end
1740
+ begin
1741
+
1742
+ yield @buffers[:parameter]
1743
+ end
1744
+ when 14 then
1745
+ begin
1746
+
1747
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1748
+ end
1749
+ begin
1750
+
1751
+ @buffers[:parameter] ||= parameter(prefix(nil))
1752
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
1753
+ end
1754
+ begin
1755
+
1756
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
1757
+ @buffers[:parameter] = nil
1758
+ end
1759
+ when 9 then
1760
+ begin
1761
+
1762
+ @buffers[:ident] = []
1763
+ end
1764
+ begin
1765
+
1766
+ (@buffers[:ident] ||= []) << data[p].ord
1767
+ end
1768
+ begin
1769
+
1770
+ @buffers[:function] = []
1771
+ end
1772
+ begin
1773
+
1774
+ @buffers[:function] << data[p].ord
1775
+ end
1776
+ when 28 then
1777
+ begin
1778
+
1779
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1780
+ end
1781
+ begin
1782
+
1783
+ @buffers[:parameter] ||= parameter(prefix(nil))
1784
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
1785
+ end
1786
+ begin
1787
+
1788
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
1789
+ @buffers[:parameter] = nil
1790
+ end
1791
+ begin
1792
+
1793
+ inner_term = @buffers[:term_stack].pop
1794
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
1795
+ begin
1796
+ top -= 1
1797
+ cs = stack[top]
1798
+ _goto_level = _again
1799
+ next
1800
+ end
1801
+
1802
+ end
1803
+ when 27 then
1804
+ begin
1805
+
1806
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1807
+ end
1808
+ begin
1809
+
1810
+ @buffers[:parameter] ||= parameter(prefix(nil))
1811
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
1812
+ end
1813
+ begin
1814
+
1815
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
1816
+ @buffers[:parameter] = nil
1817
+ end
1818
+ begin
1819
+
1820
+ inner_term = @buffers[:term_stack].pop
1821
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
1822
+ begin
1823
+ top -= 1
1824
+ cs = stack[top]
1825
+ _goto_level = _again
1826
+ next
1827
+ end
1828
+
1829
+ end
1830
+ when 2 then
1831
+ begin
1832
+
1833
+ @buffers[:term_stack] = [ term() ]
1834
+ end
1835
+ begin
1836
+
1837
+ @buffers[:function] = []
1838
+ end
1839
+ begin
1840
+
1841
+ @buffers[:ident] = []
1842
+ end
1843
+ begin
1844
+
1845
+ (@buffers[:ident] ||= []) << data[p].ord
1846
+ end
1847
+ begin
1848
+
1849
+ @buffers[:function] << data[p].ord
1850
+ end
1851
+ when 26 then
1852
+ begin
1853
+
1854
+ @buffers[:term_stack] << term()
1855
+ end
1856
+ begin
1857
+
1858
+ @buffers[:function] = []
1859
+ end
1860
+ begin
1861
+
1862
+ @buffers[:ident] = []
1863
+ end
1864
+ begin
1865
+
1866
+ (@buffers[:ident] ||= []) << data[p].ord
1867
+ end
1868
+ begin
1869
+
1870
+ @buffers[:function] << data[p].ord
1871
+ end
1872
+ end
1873
+ end
1874
+ end
1875
+ if _goto_level <= _again
1876
+ if cs == 0
1877
+ _goto_level = _out
1878
+ next
1879
+ end
1880
+ p += 1
1881
+ if p != pe
1882
+ _goto_level = _resume
1883
+ next
1884
+ end
1885
+ end
1886
+ if _goto_level <= _test_eof
1887
+ if p == eof
1888
+ case _bel_eof_actions[cs]
1889
+ when 1 then
1890
+ begin
1891
+
1892
+ unless @buffers[:ident].is_a?(::AST::Node)
1893
+ @buffers[:ident] ||= []
1894
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1895
+ end
1896
+ end
1897
+ when 12 then
1898
+ begin
1899
+
1900
+ @buffers[:string] ||= []
1901
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1902
+ end
1903
+ when 20 then
1904
+ begin
1905
+
1906
+ unless @buffers[:ident].is_a?(::AST::Node)
1907
+ @buffers[:ident] ||= []
1908
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1909
+ end
1910
+ end
1911
+ begin
1912
+
1913
+ @buffers[:ident] ||= []
1914
+ yield @buffers[:ident]
1915
+ end
1916
+ when 7 then
1917
+ begin
1918
+
1919
+ unless @buffers[:ident].is_a?(::AST::Node)
1920
+ @buffers[:ident] ||= []
1921
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1922
+ end
1923
+ end
1924
+ begin
1925
+
1926
+ @buffers[:string] ||= []
1927
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1928
+ end
1929
+ when 10 then
1930
+ begin
1931
+
1932
+ @buffers[:string] ||= []
1933
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1934
+ end
1935
+ begin
1936
+
1937
+ unless @buffers[:ident].is_a?(::AST::Node)
1938
+ @buffers[:ident] ||= []
1939
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1940
+ end
1941
+ end
1942
+ when 22 then
1943
+ begin
1944
+
1945
+ @buffers[:string] ||= []
1946
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1947
+ end
1948
+ begin
1949
+
1950
+ @buffers[:string] ||= []
1951
+ yield @buffers[:string]
1952
+ end
1953
+ end
1954
+ end
1955
+
1956
+ end
1957
+ if _goto_level <= _out
1958
+ break
1959
+ end
1960
+ end
1961
+ end
1962
+
1963
+ class << self
1964
+ attr_accessor :_bel_trans_keys
1965
+ private :_bel_trans_keys, :_bel_trans_keys=
1966
+ end
1967
+ self._bel_trans_keys = [
1968
+ 0, 0, 48, 122, 9, 122,
1969
+ 9, 40, 9, 122, 9,
1970
+ 122, 34, 92, 9, 44,
1971
+ 9, 44, 9, 122, 9, 122,
1972
+ 9, 44, 10, 10, 92,
1973
+ 92, 9, 122, 48, 122,
1974
+ 10, 122, 34, 34, 34, 92,
1975
+ 10, 10, 92, 92, 9,
1976
+ 122, 9, 122, 34, 92,
1977
+ 10, 10, 92, 92, 10, 122,
1978
+ 10, 122, 48, 122, 9,
1979
+ 122, 9, 40, 9, 122,
1980
+ 9, 122, 34, 92, 9, 44,
1981
+ 9, 44, 9, 122, 9,
1982
+ 122, 9, 44, 92, 92,
1983
+ 9, 122, 0, 0, 0, 0,
1984
+ 0, 0, 0, 0, 0,
1985
+ 0, 0
1986
+ ]
1987
+
1988
+ class << self
1989
+ attr_accessor :_bel_key_spans
1990
+ private :_bel_key_spans, :_bel_key_spans=
1991
+ end
1992
+ self._bel_key_spans = [
1993
+ 0, 75, 114, 32, 114, 114, 59, 36,
1994
+ 36, 114, 114, 36, 1, 1, 114, 75,
1995
+ 113, 1, 59, 1, 1, 114, 114, 59,
1996
+ 1, 1, 113, 113, 75, 114, 32, 114,
1997
+ 114, 59, 36, 36, 114, 114, 36, 1,
1998
+ 114, 0, 0, 0, 0, 0
1999
+ ]
2000
+
2001
+ class << self
2002
+ attr_accessor :_bel_index_offsets
2003
+ private :_bel_index_offsets, :_bel_index_offsets=
2004
+ end
2005
+ self._bel_index_offsets = [
2006
+ 0, 0, 76, 191, 224, 339, 454, 514,
2007
+ 551, 588, 703, 818, 855, 857, 859, 974,
2008
+ 1050, 1164, 1166, 1226, 1228, 1230, 1345, 1460,
2009
+ 1520, 1522, 1524, 1638, 1752, 1828, 1943, 1976,
2010
+ 2091, 2206, 2266, 2303, 2340, 2455, 2570, 2607,
2011
+ 2609, 2724, 2725, 2726, 2727, 2728
2012
+ ]
2013
+
2014
+ class << self
2015
+ attr_accessor :_bel_indicies
2016
+ private :_bel_indicies, :_bel_indicies=
2017
+ end
2018
+ self._bel_indicies = [
2019
+ 1, 1, 1, 1, 1, 1, 1, 1,
2020
+ 1, 1, 0, 0, 0, 0, 0, 0,
2021
+ 0, 1, 1, 1, 1, 1, 1, 1,
2022
+ 1, 1, 1, 1, 1, 1, 1, 1,
2023
+ 1, 1, 1, 1, 1, 1, 1, 1,
2024
+ 1, 1, 1, 0, 0, 0, 0, 1,
2025
+ 0, 1, 1, 1, 1, 1, 1, 1,
2026
+ 1, 1, 1, 1, 1, 1, 1, 1,
2027
+ 1, 1, 1, 1, 1, 1, 1, 1,
2028
+ 1, 1, 1, 0, 2, 0, 0, 0,
2029
+ 0, 0, 0, 0, 0, 0, 0, 0,
2030
+ 0, 0, 0, 0, 0, 0, 0, 0,
2031
+ 0, 0, 0, 2, 0, 0, 0, 0,
2032
+ 0, 0, 0, 3, 0, 0, 0, 0,
2033
+ 0, 0, 0, 4, 4, 4, 4, 4,
2034
+ 4, 4, 4, 4, 4, 0, 0, 0,
2035
+ 0, 0, 0, 0, 4, 4, 4, 4,
2036
+ 4, 4, 4, 4, 4, 4, 4, 4,
2037
+ 4, 4, 4, 4, 4, 4, 4, 4,
2038
+ 4, 4, 4, 4, 4, 4, 0, 0,
2039
+ 0, 0, 4, 0, 4, 4, 4, 4,
2040
+ 4, 4, 4, 4, 4, 4, 4, 4,
2041
+ 4, 4, 4, 4, 4, 4, 4, 4,
2042
+ 4, 4, 4, 4, 4, 4, 0, 5,
2043
+ 6, 6, 6, 6, 6, 6, 6, 6,
2044
+ 6, 6, 6, 6, 6, 6, 6, 6,
2045
+ 6, 6, 6, 6, 6, 6, 5, 6,
2046
+ 6, 6, 6, 6, 6, 6, 7, 6,
2047
+ 9, 8, 8, 8, 8, 8, 8, 8,
2048
+ 8, 8, 8, 8, 8, 8, 8, 8,
2049
+ 8, 8, 8, 8, 8, 8, 8, 9,
2050
+ 8, 10, 8, 8, 8, 8, 8, 8,
2051
+ 8, 8, 8, 8, 8, 8, 8, 11,
2052
+ 11, 11, 11, 11, 11, 11, 11, 11,
2053
+ 11, 8, 8, 8, 8, 8, 8, 8,
2054
+ 11, 11, 11, 11, 11, 11, 11, 11,
2055
+ 11, 11, 11, 11, 11, 11, 11, 11,
2056
+ 11, 11, 11, 11, 11, 11, 11, 11,
2057
+ 11, 11, 8, 8, 8, 8, 11, 8,
2058
+ 11, 11, 11, 11, 11, 11, 11, 11,
2059
+ 11, 11, 11, 11, 11, 11, 11, 11,
2060
+ 11, 11, 11, 11, 11, 11, 11, 11,
2061
+ 11, 11, 8, 9, 12, 12, 12, 12,
2062
+ 12, 12, 12, 12, 12, 12, 12, 12,
2063
+ 12, 12, 12, 12, 12, 12, 12, 12,
2064
+ 12, 12, 9, 12, 10, 12, 12, 12,
2065
+ 12, 12, 12, 12, 12, 12, 12, 12,
2066
+ 12, 12, 13, 13, 13, 13, 13, 13,
2067
+ 13, 13, 13, 13, 12, 12, 12, 12,
2068
+ 12, 12, 12, 13, 13, 13, 13, 13,
2069
+ 13, 13, 13, 13, 13, 13, 13, 13,
2070
+ 13, 13, 13, 13, 13, 13, 13, 13,
2071
+ 13, 13, 13, 13, 13, 12, 12, 12,
2072
+ 12, 13, 12, 13, 13, 13, 13, 13,
2073
+ 13, 13, 13, 13, 13, 13, 13, 13,
2074
+ 13, 13, 13, 13, 13, 13, 13, 13,
2075
+ 13, 13, 13, 13, 13, 12, 15, 14,
2076
+ 14, 14, 14, 14, 14, 14, 14, 14,
2077
+ 14, 14, 14, 14, 14, 14, 14, 14,
2078
+ 14, 14, 14, 14, 14, 14, 14, 14,
2079
+ 14, 14, 14, 14, 14, 14, 14, 14,
2080
+ 14, 14, 14, 14, 14, 14, 14, 14,
2081
+ 14, 14, 14, 14, 14, 14, 14, 14,
2082
+ 14, 14, 14, 14, 14, 14, 14, 14,
2083
+ 16, 14, 18, 17, 17, 17, 17, 17,
2084
+ 17, 17, 17, 17, 17, 17, 17, 17,
2085
+ 17, 17, 17, 17, 17, 17, 17, 17,
2086
+ 17, 18, 17, 17, 17, 17, 17, 17,
2087
+ 17, 17, 19, 17, 17, 20, 17, 21,
2088
+ 6, 6, 6, 6, 6, 6, 6, 6,
2089
+ 6, 6, 6, 6, 6, 6, 6, 6,
2090
+ 6, 6, 6, 6, 6, 6, 21, 6,
2091
+ 6, 6, 6, 6, 6, 6, 6, 6,
2092
+ 6, 6, 22, 6, 22, 8, 8, 8,
2093
+ 8, 8, 8, 8, 8, 8, 8, 8,
2094
+ 8, 8, 8, 8, 8, 8, 8, 8,
2095
+ 8, 8, 8, 22, 8, 10, 8, 8,
2096
+ 8, 8, 8, 8, 8, 8, 8, 8,
2097
+ 8, 8, 8, 11, 11, 11, 11, 11,
2098
+ 11, 11, 11, 11, 11, 8, 8, 8,
2099
+ 8, 8, 8, 8, 11, 11, 11, 11,
2100
+ 11, 11, 11, 11, 11, 11, 11, 11,
2101
+ 11, 11, 11, 11, 11, 11, 11, 11,
2102
+ 11, 11, 11, 11, 11, 11, 8, 8,
2103
+ 8, 8, 11, 8, 11, 11, 11, 11,
2104
+ 11, 11, 11, 11, 11, 11, 11, 11,
2105
+ 11, 11, 11, 11, 11, 11, 11, 11,
2106
+ 11, 11, 11, 11, 11, 11, 8, 23,
2107
+ 0, 0, 0, 0, 0, 0, 0, 0,
2108
+ 0, 0, 0, 0, 0, 0, 0, 0,
2109
+ 0, 0, 0, 0, 0, 0, 23, 0,
2110
+ 0, 0, 0, 0, 0, 0, 24, 25,
2111
+ 0, 0, 26, 0, 0, 0, 27, 27,
2112
+ 27, 27, 27, 27, 27, 27, 27, 27,
2113
+ 28, 0, 0, 0, 0, 0, 0, 27,
2114
+ 27, 27, 27, 27, 27, 27, 27, 27,
2115
+ 27, 27, 27, 27, 27, 27, 27, 27,
2116
+ 27, 27, 27, 27, 27, 27, 27, 27,
2117
+ 27, 0, 0, 0, 0, 27, 0, 27,
2118
+ 27, 27, 27, 27, 27, 27, 27, 27,
2119
+ 27, 27, 27, 27, 27, 27, 27, 27,
2120
+ 27, 27, 27, 27, 27, 27, 27, 27,
2121
+ 27, 0, 21, 6, 6, 6, 6, 6,
2122
+ 6, 6, 6, 6, 6, 6, 6, 6,
2123
+ 6, 6, 6, 6, 6, 6, 6, 6,
2124
+ 6, 21, 6, 6, 6, 6, 6, 6,
2125
+ 6, 6, 29, 6, 6, 22, 6, 30,
2126
+ 6, 16, 14, 23, 0, 0, 0, 0,
2127
+ 0, 0, 0, 0, 0, 0, 0, 0,
2128
+ 0, 0, 0, 0, 0, 0, 0, 0,
2129
+ 0, 0, 23, 0, 0, 0, 0, 0,
2130
+ 0, 0, 0, 25, 0, 0, 26, 0,
2131
+ 0, 0, 31, 31, 31, 31, 31, 31,
2132
+ 31, 31, 31, 31, 0, 0, 0, 0,
2133
+ 0, 0, 0, 31, 31, 31, 31, 31,
2134
+ 31, 31, 31, 31, 31, 31, 31, 31,
2135
+ 31, 31, 31, 31, 31, 31, 31, 31,
2136
+ 31, 31, 31, 31, 31, 0, 0, 0,
2137
+ 0, 31, 0, 31, 31, 31, 31, 31,
2138
+ 31, 31, 31, 31, 31, 31, 31, 31,
2139
+ 31, 31, 31, 31, 31, 31, 31, 31,
2140
+ 31, 31, 31, 31, 31, 0, 33, 33,
2141
+ 33, 33, 33, 33, 33, 33, 33, 33,
2142
+ 32, 32, 32, 32, 32, 32, 32, 33,
2143
+ 33, 33, 33, 33, 33, 33, 33, 33,
2144
+ 33, 33, 33, 33, 33, 33, 33, 33,
2145
+ 33, 33, 33, 33, 33, 33, 33, 33,
2146
+ 33, 32, 32, 32, 32, 33, 32, 33,
2147
+ 33, 33, 33, 33, 33, 33, 33, 33,
2148
+ 33, 33, 33, 33, 33, 33, 33, 33,
2149
+ 33, 33, 33, 33, 33, 33, 33, 33,
2150
+ 33, 32, 34, 32, 32, 32, 32, 32,
2151
+ 32, 32, 32, 32, 32, 32, 32, 32,
2152
+ 32, 32, 32, 32, 32, 32, 32, 32,
2153
+ 32, 32, 32, 32, 32, 32, 32, 32,
2154
+ 32, 32, 32, 32, 32, 32, 32, 32,
2155
+ 35, 35, 35, 35, 35, 35, 35, 35,
2156
+ 35, 35, 32, 32, 32, 32, 32, 32,
2157
+ 32, 35, 35, 35, 35, 35, 35, 35,
2158
+ 35, 35, 35, 35, 35, 35, 35, 35,
2159
+ 35, 35, 35, 35, 35, 35, 35, 35,
2160
+ 35, 35, 35, 32, 32, 32, 32, 35,
2161
+ 32, 35, 35, 35, 35, 35, 35, 35,
2162
+ 35, 35, 35, 35, 35, 35, 35, 35,
2163
+ 35, 35, 35, 35, 35, 35, 35, 35,
2164
+ 35, 35, 35, 32, 37, 36, 39, 38,
2165
+ 38, 38, 38, 38, 38, 38, 38, 38,
2166
+ 38, 38, 38, 38, 38, 38, 38, 38,
2167
+ 38, 38, 38, 38, 38, 38, 38, 38,
2168
+ 38, 38, 38, 38, 38, 38, 38, 38,
2169
+ 38, 38, 38, 38, 38, 38, 38, 38,
2170
+ 38, 38, 38, 38, 38, 38, 38, 38,
2171
+ 38, 38, 38, 38, 38, 38, 38, 38,
2172
+ 40, 38, 41, 36, 40, 38, 42, 8,
2173
+ 8, 8, 8, 8, 8, 8, 8, 8,
2174
+ 8, 8, 8, 8, 8, 8, 8, 8,
2175
+ 8, 8, 8, 8, 8, 42, 8, 43,
2176
+ 8, 8, 8, 8, 8, 8, 8, 8,
2177
+ 8, 8, 8, 8, 8, 44, 44, 44,
2178
+ 44, 44, 44, 44, 44, 44, 44, 8,
2179
+ 8, 8, 8, 8, 8, 8, 44, 44,
2180
+ 44, 44, 44, 44, 44, 44, 44, 44,
2181
+ 44, 44, 44, 44, 44, 44, 44, 44,
2182
+ 44, 44, 44, 44, 44, 44, 44, 44,
2183
+ 8, 8, 8, 8, 44, 8, 44, 44,
2184
+ 44, 44, 44, 44, 44, 44, 44, 44,
2185
+ 44, 44, 44, 44, 44, 44, 44, 44,
2186
+ 44, 44, 44, 44, 44, 44, 44, 44,
2187
+ 8, 42, 12, 12, 12, 12, 12, 12,
2188
+ 12, 12, 12, 12, 12, 12, 12, 12,
2189
+ 12, 12, 12, 12, 12, 12, 12, 12,
2190
+ 42, 12, 43, 12, 12, 12, 12, 12,
2191
+ 12, 12, 12, 12, 12, 12, 12, 12,
2192
+ 45, 45, 45, 45, 45, 45, 45, 45,
2193
+ 45, 45, 12, 12, 12, 12, 12, 12,
2194
+ 12, 45, 45, 45, 45, 45, 45, 45,
2195
+ 45, 45, 45, 45, 45, 45, 45, 45,
2196
+ 45, 45, 45, 45, 45, 45, 45, 45,
2197
+ 45, 45, 45, 12, 12, 12, 12, 45,
2198
+ 12, 45, 45, 45, 45, 45, 45, 45,
2199
+ 45, 45, 45, 45, 45, 45, 45, 45,
2200
+ 45, 45, 45, 45, 45, 45, 45, 45,
2201
+ 45, 45, 45, 12, 47, 46, 46, 46,
2202
+ 46, 46, 46, 46, 46, 46, 46, 46,
2203
+ 46, 46, 46, 46, 46, 46, 46, 46,
2204
+ 46, 46, 46, 46, 46, 46, 46, 46,
2205
+ 46, 46, 46, 46, 46, 46, 46, 46,
2206
+ 46, 46, 46, 46, 46, 46, 46, 46,
2207
+ 46, 46, 46, 46, 46, 46, 46, 46,
2208
+ 46, 46, 46, 46, 46, 46, 48, 46,
2209
+ 49, 17, 48, 46, 50, 0, 0, 0,
2210
+ 0, 0, 0, 0, 0, 0, 0, 0,
2211
+ 0, 0, 0, 0, 0, 0, 0, 0,
2212
+ 0, 0, 0, 0, 0, 0, 0, 0,
2213
+ 0, 0, 0, 0, 0, 0, 0, 0,
2214
+ 0, 0, 51, 51, 51, 51, 51, 51,
2215
+ 51, 51, 51, 51, 0, 0, 0, 0,
2216
+ 0, 0, 0, 51, 51, 51, 51, 51,
2217
+ 51, 51, 51, 51, 51, 51, 51, 51,
2218
+ 51, 51, 51, 51, 51, 51, 51, 51,
2219
+ 51, 51, 51, 51, 51, 0, 0, 0,
2220
+ 0, 51, 0, 51, 51, 51, 51, 51,
2221
+ 51, 51, 51, 51, 51, 51, 51, 51,
2222
+ 51, 51, 51, 51, 51, 51, 51, 51,
2223
+ 51, 51, 51, 51, 51, 0, 50, 0,
2224
+ 0, 0, 0, 0, 0, 0, 0, 0,
2225
+ 0, 0, 0, 0, 0, 0, 0, 0,
2226
+ 0, 0, 0, 0, 0, 0, 0, 0,
2227
+ 0, 0, 0, 0, 0, 0, 0, 0,
2228
+ 0, 0, 0, 0, 52, 52, 52, 52,
2229
+ 52, 52, 52, 52, 52, 52, 53, 0,
2230
+ 0, 0, 0, 0, 0, 52, 52, 52,
2231
+ 52, 52, 52, 52, 52, 52, 52, 52,
2232
+ 52, 52, 52, 52, 52, 52, 52, 52,
2233
+ 52, 52, 52, 52, 52, 52, 52, 0,
2234
+ 0, 0, 0, 52, 0, 52, 52, 52,
2235
+ 52, 52, 52, 52, 52, 52, 52, 52,
2236
+ 52, 52, 52, 52, 52, 52, 52, 52,
2237
+ 52, 52, 52, 52, 52, 52, 52, 0,
2238
+ 54, 54, 54, 54, 54, 54, 54, 54,
2239
+ 54, 54, 0, 0, 0, 0, 0, 0,
2240
+ 0, 54, 54, 54, 54, 54, 54, 54,
2241
+ 54, 54, 54, 54, 54, 54, 54, 54,
2242
+ 54, 54, 54, 54, 54, 54, 54, 54,
2243
+ 54, 54, 54, 0, 0, 0, 0, 54,
2244
+ 0, 54, 54, 54, 54, 54, 54, 54,
2245
+ 54, 54, 54, 54, 54, 54, 54, 54,
2246
+ 54, 54, 54, 54, 54, 54, 54, 54,
2247
+ 54, 54, 54, 0, 55, 0, 0, 0,
2248
+ 0, 0, 0, 0, 0, 0, 0, 0,
2249
+ 0, 0, 0, 0, 0, 0, 0, 0,
2250
+ 0, 0, 0, 55, 0, 0, 0, 0,
2251
+ 0, 0, 0, 56, 0, 0, 0, 0,
2252
+ 0, 0, 0, 57, 57, 57, 57, 57,
2253
+ 57, 57, 57, 57, 57, 0, 0, 0,
2254
+ 0, 0, 0, 0, 57, 57, 57, 57,
2255
+ 57, 57, 57, 57, 57, 57, 57, 57,
2256
+ 57, 57, 57, 57, 57, 57, 57, 57,
2257
+ 57, 57, 57, 57, 57, 57, 0, 0,
2258
+ 0, 0, 57, 0, 57, 57, 57, 57,
2259
+ 57, 57, 57, 57, 57, 57, 57, 57,
2260
+ 57, 57, 57, 57, 57, 57, 57, 57,
2261
+ 57, 57, 57, 57, 57, 57, 0, 58,
2262
+ 6, 6, 6, 6, 6, 6, 6, 6,
2263
+ 6, 6, 6, 6, 6, 6, 6, 6,
2264
+ 6, 6, 6, 6, 6, 6, 58, 6,
2265
+ 6, 6, 6, 6, 6, 6, 59, 6,
2266
+ 60, 8, 8, 8, 8, 8, 8, 8,
2267
+ 8, 8, 8, 8, 8, 8, 8, 8,
2268
+ 8, 8, 8, 8, 8, 8, 8, 60,
2269
+ 8, 61, 8, 8, 8, 8, 8, 8,
2270
+ 8, 8, 8, 8, 8, 8, 8, 62,
2271
+ 62, 62, 62, 62, 62, 62, 62, 62,
2272
+ 62, 8, 8, 8, 8, 8, 8, 8,
2273
+ 62, 62, 62, 62, 62, 62, 62, 62,
2274
+ 62, 62, 62, 62, 62, 62, 62, 62,
2275
+ 62, 62, 62, 62, 62, 62, 62, 62,
2276
+ 62, 62, 8, 8, 8, 8, 62, 8,
2277
+ 62, 62, 62, 62, 62, 62, 62, 62,
2278
+ 62, 62, 62, 62, 62, 62, 62, 62,
2279
+ 62, 62, 62, 62, 62, 62, 62, 62,
2280
+ 62, 62, 8, 60, 12, 12, 12, 12,
2281
+ 12, 12, 12, 12, 12, 12, 12, 12,
2282
+ 12, 12, 12, 12, 12, 12, 12, 12,
2283
+ 12, 12, 60, 12, 61, 12, 12, 12,
2284
+ 12, 12, 12, 12, 12, 12, 12, 12,
2285
+ 12, 12, 63, 63, 63, 63, 63, 63,
2286
+ 63, 63, 63, 63, 12, 12, 12, 12,
2287
+ 12, 12, 12, 63, 63, 63, 63, 63,
2288
+ 63, 63, 63, 63, 63, 63, 63, 63,
2289
+ 63, 63, 63, 63, 63, 63, 63, 63,
2290
+ 63, 63, 63, 63, 63, 12, 12, 12,
2291
+ 12, 63, 12, 63, 63, 63, 63, 63,
2292
+ 63, 63, 63, 63, 63, 63, 63, 63,
2293
+ 63, 63, 63, 63, 63, 63, 63, 63,
2294
+ 63, 63, 63, 63, 63, 12, 65, 64,
2295
+ 64, 64, 64, 64, 64, 64, 64, 64,
2296
+ 64, 64, 64, 64, 64, 64, 64, 64,
2297
+ 64, 64, 64, 64, 64, 64, 64, 64,
2298
+ 64, 64, 64, 64, 64, 64, 64, 64,
2299
+ 64, 64, 64, 64, 64, 64, 64, 64,
2300
+ 64, 64, 64, 64, 64, 64, 64, 64,
2301
+ 64, 64, 64, 64, 64, 64, 64, 64,
2302
+ 66, 64, 67, 17, 17, 17, 17, 17,
2303
+ 17, 17, 17, 17, 17, 17, 17, 17,
2304
+ 17, 17, 17, 17, 17, 17, 17, 17,
2305
+ 17, 67, 17, 17, 17, 17, 17, 17,
2306
+ 17, 17, 68, 17, 17, 69, 17, 70,
2307
+ 6, 6, 6, 6, 6, 6, 6, 6,
2308
+ 6, 6, 6, 6, 6, 6, 6, 6,
2309
+ 6, 6, 6, 6, 6, 6, 70, 6,
2310
+ 6, 6, 6, 6, 6, 6, 6, 6,
2311
+ 6, 6, 71, 6, 71, 8, 8, 8,
2312
+ 8, 8, 8, 8, 8, 8, 8, 8,
2313
+ 8, 8, 8, 8, 8, 8, 8, 8,
2314
+ 8, 8, 8, 71, 8, 61, 8, 8,
2315
+ 8, 8, 8, 8, 8, 8, 8, 8,
2316
+ 8, 8, 8, 62, 62, 62, 62, 62,
2317
+ 62, 62, 62, 62, 62, 8, 8, 8,
2318
+ 8, 8, 8, 8, 62, 62, 62, 62,
2319
+ 62, 62, 62, 62, 62, 62, 62, 62,
2320
+ 62, 62, 62, 62, 62, 62, 62, 62,
2321
+ 62, 62, 62, 62, 62, 62, 8, 8,
2322
+ 8, 8, 62, 8, 62, 62, 62, 62,
2323
+ 62, 62, 62, 62, 62, 62, 62, 62,
2324
+ 62, 62, 62, 62, 62, 62, 62, 62,
2325
+ 62, 62, 62, 62, 62, 62, 8, 72,
2326
+ 0, 0, 0, 0, 0, 0, 0, 0,
2327
+ 0, 0, 0, 0, 0, 0, 0, 0,
2328
+ 0, 0, 0, 0, 0, 0, 72, 0,
2329
+ 0, 0, 0, 0, 0, 0, 73, 74,
2330
+ 0, 0, 75, 0, 0, 0, 76, 76,
2331
+ 76, 76, 76, 76, 76, 76, 76, 76,
2332
+ 77, 0, 0, 0, 0, 0, 0, 76,
2333
+ 76, 76, 76, 76, 76, 76, 76, 76,
2334
+ 76, 76, 76, 76, 76, 76, 76, 76,
2335
+ 76, 76, 76, 76, 76, 76, 76, 76,
2336
+ 76, 0, 0, 0, 0, 76, 0, 76,
2337
+ 76, 76, 76, 76, 76, 76, 76, 76,
2338
+ 76, 76, 76, 76, 76, 76, 76, 76,
2339
+ 76, 76, 76, 76, 76, 76, 76, 76,
2340
+ 76, 0, 70, 6, 6, 6, 6, 6,
2341
+ 6, 6, 6, 6, 6, 6, 6, 6,
2342
+ 6, 6, 6, 6, 6, 6, 6, 6,
2343
+ 6, 70, 6, 6, 6, 6, 6, 6,
2344
+ 6, 6, 78, 6, 6, 71, 6, 66,
2345
+ 64, 72, 0, 0, 0, 0, 0, 0,
2346
+ 0, 0, 0, 0, 0, 0, 0, 0,
2347
+ 0, 0, 0, 0, 0, 0, 0, 0,
2348
+ 72, 0, 0, 0, 0, 0, 0, 0,
2349
+ 0, 74, 0, 0, 75, 0, 0, 0,
2350
+ 79, 79, 79, 79, 79, 79, 79, 79,
2351
+ 79, 79, 0, 0, 0, 0, 0, 0,
2352
+ 0, 79, 79, 79, 79, 79, 79, 79,
2353
+ 79, 79, 79, 79, 79, 79, 79, 79,
2354
+ 79, 79, 79, 79, 79, 79, 79, 79,
2355
+ 79, 79, 79, 0, 0, 0, 0, 79,
2356
+ 0, 79, 79, 79, 79, 79, 79, 79,
2357
+ 79, 79, 79, 79, 79, 79, 79, 79,
2358
+ 79, 79, 79, 79, 79, 79, 79, 79,
2359
+ 79, 79, 79, 0, 6, 6, 6, 6,
2360
+ 6, 0
2361
+ ]
2362
+
2363
+ class << self
2364
+ attr_accessor :_bel_trans_targs
2365
+ private :_bel_trans_targs, :_bel_trans_targs=
2366
+ end
2367
+ self._bel_trans_targs = [
2368
+ 0, 2, 3, 4, 2, 3, 0, 4,
2369
+ 0, 5, 6, 10, 0, 14, 6, 7,
2370
+ 13, 0, 8, 12, 9, 8, 9, 8,
2371
+ 11, 12, 9, 10, 5, 12, 41, 14,
2372
+ 0, 16, 42, 16, 0, 18, 18, 19,
2373
+ 20, 43, 22, 23, 27, 26, 23, 24,
2374
+ 25, 44, 44, 26, 27, 22, 29, 30,
2375
+ 31, 29, 30, 31, 32, 33, 37, 40,
2376
+ 33, 34, 39, 35, 45, 36, 35, 36,
2377
+ 35, 38, 45, 36, 37, 32, 45, 40
2378
+ ]
2379
+
2380
+ class << self
2381
+ attr_accessor :_bel_trans_actions
2382
+ private :_bel_trans_actions, :_bel_trans_actions=
2383
+ end
2384
+ self._bel_trans_actions = [
2385
+ 1, 2, 3, 4, 5, 0, 0, 6,
2386
+ 7, 0, 8, 9, 10, 11, 13, 13,
2387
+ 13, 12, 14, 14, 14, 0, 0, 15,
2388
+ 16, 15, 15, 5, 17, 0, 18, 19,
2389
+ 20, 11, 21, 19, 22, 8, 13, 13,
2390
+ 13, 23, 0, 8, 11, 11, 13, 13,
2391
+ 13, 24, 25, 19, 19, 17, 26, 3,
2392
+ 4, 5, 0, 6, 0, 8, 9, 11,
2393
+ 13, 13, 13, 14, 27, 14, 0, 0,
2394
+ 15, 16, 28, 15, 5, 17, 29, 19
2395
+ ]
2396
+
2397
+ class << self
2398
+ attr_accessor :_bel_eof_actions
2399
+ private :_bel_eof_actions, :_bel_eof_actions=
2400
+ end
2401
+ self._bel_eof_actions = [
2402
+ 0, 1, 1, 0, 7, 10, 12, 12,
2403
+ 0, 7, 1, 0, 0, 12, 1, 20,
2404
+ 20, 22, 22, 22, 22, 7, 10, 12,
2405
+ 12, 12, 1, 1, 1, 1, 0, 7,
2406
+ 10, 12, 12, 0, 7, 1, 0, 12,
2407
+ 1, 0, 0, 0, 0, 0
2408
+ ]
2409
+
2410
+ class << self
2411
+ attr_accessor :bel_start
2412
+ end
2413
+ self.bel_start = 1;
2414
+ class << self
2415
+ attr_accessor :bel_first_final
2416
+ end
2417
+ self.bel_first_final = 41;
2418
+ class << self
2419
+ attr_accessor :bel_error
2420
+ end
2421
+ self.bel_error = 0;
2422
+
2423
+ class << self
2424
+ attr_accessor :bel_en_ident
2425
+ end
2426
+ self.bel_en_ident = 15;
2427
+ class << self
2428
+ attr_accessor :bel_en_string
2429
+ end
2430
+ self.bel_en_string = 17;
2431
+ class << self
2432
+ attr_accessor :bel_en_bel_parameter
2433
+ end
2434
+ self.bel_en_bel_parameter = 21;
2435
+ class << self
2436
+ attr_accessor :bel_en_inner_term
2437
+ end
2438
+ self.bel_en_inner_term = 28;
2439
+ class << self
2440
+ attr_accessor :bel_en_term
2441
+ end
2442
+ self.bel_en_term = 1;
2443
+
2444
+
2445
+ begin
2446
+ p ||= 0
2447
+ pe ||= data.length
2448
+ cs = bel_start
2449
+ top = 0
2450
+ end
2451
+
2452
+ begin
2453
+ testEof = false
2454
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
2455
+ _goto_level = 0
2456
+ _resume = 10
2457
+ _eof_trans = 15
2458
+ _again = 20
2459
+ _test_eof = 30
2460
+ _out = 40
2461
+ while true
2462
+ if _goto_level <= 0
2463
+ if p == pe
2464
+ _goto_level = _test_eof
2465
+ next
2466
+ end
2467
+ if cs == 0
2468
+ _goto_level = _out
2469
+ next
2470
+ end
2471
+ end
2472
+ if _goto_level <= _resume
2473
+ _keys = cs << 1
2474
+ _inds = _bel_index_offsets[cs]
2475
+ _slen = _bel_key_spans[cs]
2476
+ _wide = data[p].ord
2477
+ _trans = if ( _slen > 0 &&
2478
+ _bel_trans_keys[_keys] <= _wide &&
2479
+ _wide <= _bel_trans_keys[_keys + 1]
2480
+ ) then
2481
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
2482
+ else
2483
+ _bel_indicies[ _inds + _slen ]
2484
+ end
2485
+ cs = _bel_trans_targs[_trans]
2486
+ if _bel_trans_actions[_trans] != 0
2487
+ case _bel_trans_actions[_trans]
2488
+ when 19 then
2489
+ begin
2490
+
2491
+ (@buffers[:ident] ||= []) << data[p].ord
2492
+ end
2493
+ when 1 then
2494
+ begin
2495
+
2496
+ unless @buffers[:ident].is_a?(::AST::Node)
2497
+ @buffers[:ident] ||= []
2498
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2499
+ end
2500
+ end
2501
+ when 13 then
2502
+ begin
2503
+
2504
+ (@buffers[:string] ||= []) << data[p].ord
2505
+ end
2506
+ when 12 then
2507
+ begin
2508
+
2509
+ @buffers[:string] ||= []
2510
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2511
+ end
2512
+ when 6 then
2513
+ begin
2514
+
2515
+ fx = @buffers[:function]
2516
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
2517
+ end
2518
+ when 29 then
2519
+ begin
2520
+
2521
+ inner_term = @buffers[:term_stack].pop
2522
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
2523
+ begin
2524
+ top -= 1
2525
+ cs = stack[top]
2526
+ _goto_level = _again
2527
+ next
2528
+ end
2529
+
2530
+ end
2531
+ when 18 then
2532
+ begin
2533
+
2534
+ yield @buffers[:term_stack][-1]
2535
+ end
2536
+ when 11 then
2537
+ begin
2538
+
2539
+ @buffers[:ident] = []
2540
+ end
2541
+ begin
2542
+
2543
+ (@buffers[:ident] ||= []) << data[p].ord
2544
+ end
2545
+ when 5 then
2546
+ begin
2547
+
2548
+ (@buffers[:ident] ||= []) << data[p].ord
2549
+ end
2550
+ begin
2551
+
2552
+ @buffers[:function] << data[p].ord
2553
+ end
2554
+ when 21 then
2555
+ begin
2556
+
2557
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2558
+ end
2559
+ begin
2560
+
2561
+ yield @buffers[:ident]
2562
+ end
2563
+ when 17 then
2564
+ begin
2565
+
2566
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2567
+ end
2568
+ begin
2569
+
2570
+ @buffers[:parameter] = parameter(prefix(@buffers[:ident]))
2571
+ end
2572
+ when 3 then
2573
+ begin
2574
+
2575
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2576
+ end
2577
+ begin
2578
+
2579
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
2580
+ end
2581
+ when 16 then
2582
+ begin
2583
+
2584
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2585
+ end
2586
+ begin
2587
+
2588
+ p -= @buffers[:function].length + 1
2589
+ begin
2590
+ stack[top] = cs
2591
+ top+= 1
2592
+ cs = 28
2593
+ _goto_level = _again
2594
+ next
2595
+ end
2596
+
2597
+ end
2598
+ when 20 then
2599
+ begin
2600
+
2601
+ unless @buffers[:ident].is_a?(::AST::Node)
2602
+ @buffers[:ident] ||= []
2603
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2604
+ end
2605
+ end
2606
+ begin
2607
+
2608
+ @buffers[:ident] ||= []
2609
+ yield @buffers[:ident]
2610
+ end
2611
+ when 7 then
2612
+ begin
2613
+
2614
+ unless @buffers[:ident].is_a?(::AST::Node)
2615
+ @buffers[:ident] ||= []
2616
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2617
+ end
2618
+ end
2619
+ begin
2620
+
2621
+ @buffers[:string] ||= []
2622
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2623
+ end
2624
+ when 8 then
2625
+ begin
2626
+
2627
+ @buffers[:string] = []
2628
+ end
2629
+ begin
2630
+
2631
+ (@buffers[:string] ||= []) << data[p].ord
2632
+ end
2633
+ when 23 then
2634
+ begin
2635
+
2636
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
2637
+ end
2638
+ begin
2639
+
2640
+ yield @buffers[:string]
2641
+ end
2642
+ when 10 then
2643
+ begin
2644
+
2645
+ @buffers[:string] ||= []
2646
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2647
+ end
2648
+ begin
2649
+
2650
+ unless @buffers[:ident].is_a?(::AST::Node)
2651
+ @buffers[:ident] ||= []
2652
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2653
+ end
2654
+ end
2655
+ when 22 then
2656
+ begin
2657
+
2658
+ @buffers[:string] ||= []
2659
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2660
+ end
2661
+ begin
2662
+
2663
+ @buffers[:string] ||= []
2664
+ yield @buffers[:string]
2665
+ end
2666
+ when 25 then
2667
+ begin
2668
+
2669
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2670
+ end
2671
+ begin
2672
+
2673
+ @buffers[:parameter] ||= parameter(prefix(nil))
2674
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
2675
+ end
2676
+ begin
2677
+
2678
+ yield @buffers[:parameter]
2679
+ end
2680
+ when 15 then
2681
+ begin
2682
+
2683
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2684
+ end
2685
+ begin
2686
+
2687
+ @buffers[:parameter] ||= parameter(prefix(nil))
2688
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
2689
+ end
2690
+ begin
2691
+
2692
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
2693
+ @buffers[:parameter] = nil
2694
+ end
2695
+ when 4 then
2696
+ begin
2697
+
2698
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2699
+ end
2700
+ begin
2701
+
2702
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
2703
+ end
2704
+ begin
2705
+
2706
+ fx = @buffers[:function]
2707
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
2708
+ end
2709
+ when 24 then
2710
+ begin
2711
+
2712
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
2713
+ end
2714
+ begin
2715
+
2716
+ @buffers[:parameter] ||= parameter(prefix(nil))
2717
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
2718
+ end
2719
+ begin
2720
+
2721
+ yield @buffers[:parameter]
2722
+ end
2723
+ when 14 then
2724
+ begin
2725
+
2726
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
2727
+ end
2728
+ begin
2729
+
2730
+ @buffers[:parameter] ||= parameter(prefix(nil))
2731
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
2732
+ end
2733
+ begin
2734
+
2735
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
2736
+ @buffers[:parameter] = nil
2737
+ end
2738
+ when 9 then
2739
+ begin
2740
+
2741
+ @buffers[:ident] = []
2742
+ end
2743
+ begin
2744
+
2745
+ (@buffers[:ident] ||= []) << data[p].ord
2746
+ end
2747
+ begin
2748
+
2749
+ @buffers[:function] = []
2750
+ end
2751
+ begin
2752
+
2753
+ @buffers[:function] << data[p].ord
2754
+ end
2755
+ when 28 then
2756
+ begin
2757
+
2758
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
2759
+ end
2760
+ begin
2761
+
2762
+ @buffers[:parameter] ||= parameter(prefix(nil))
2763
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
2764
+ end
2765
+ begin
2766
+
2767
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
2768
+ @buffers[:parameter] = nil
2769
+ end
2770
+ begin
2771
+
2772
+ inner_term = @buffers[:term_stack].pop
2773
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
2774
+ begin
2775
+ top -= 1
2776
+ cs = stack[top]
2777
+ _goto_level = _again
2778
+ next
2779
+ end
2780
+
2781
+ end
2782
+ when 27 then
2783
+ begin
2784
+
2785
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
2786
+ end
2787
+ begin
2788
+
2789
+ @buffers[:parameter] ||= parameter(prefix(nil))
2790
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
2791
+ end
2792
+ begin
2793
+
2794
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
2795
+ @buffers[:parameter] = nil
2796
+ end
2797
+ begin
2798
+
2799
+ inner_term = @buffers[:term_stack].pop
2800
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
2801
+ begin
2802
+ top -= 1
2803
+ cs = stack[top]
2804
+ _goto_level = _again
2805
+ next
2806
+ end
2807
+
2808
+ end
2809
+ when 2 then
2810
+ begin
2811
+
2812
+ @buffers[:term_stack] = [ term() ]
2813
+ end
2814
+ begin
2815
+
2816
+ @buffers[:function] = []
2817
+ end
2818
+ begin
2819
+
2820
+ @buffers[:ident] = []
2821
+ end
2822
+ begin
2823
+
2824
+ (@buffers[:ident] ||= []) << data[p].ord
2825
+ end
2826
+ begin
2827
+
2828
+ @buffers[:function] << data[p].ord
2829
+ end
2830
+ when 26 then
2831
+ begin
2832
+
2833
+ @buffers[:term_stack] << term()
2834
+ end
2835
+ begin
2836
+
2837
+ @buffers[:function] = []
2838
+ end
2839
+ begin
2840
+
2841
+ @buffers[:ident] = []
2842
+ end
2843
+ begin
2844
+
2845
+ (@buffers[:ident] ||= []) << data[p].ord
2846
+ end
2847
+ begin
2848
+
2849
+ @buffers[:function] << data[p].ord
2850
+ end
2851
+ end
2852
+ end
2853
+ end
2854
+ if _goto_level <= _again
2855
+ if cs == 0
2856
+ _goto_level = _out
2857
+ next
2858
+ end
2859
+ p += 1
2860
+ if p != pe
2861
+ _goto_level = _resume
2862
+ next
2863
+ end
2864
+ end
2865
+ if _goto_level <= _test_eof
2866
+ if p == eof
2867
+ case _bel_eof_actions[cs]
2868
+ when 1 then
2869
+ begin
2870
+
2871
+ unless @buffers[:ident].is_a?(::AST::Node)
2872
+ @buffers[:ident] ||= []
2873
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2874
+ end
2875
+ end
2876
+ when 12 then
2877
+ begin
2878
+
2879
+ @buffers[:string] ||= []
2880
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2881
+ end
2882
+ when 20 then
2883
+ begin
2884
+
2885
+ unless @buffers[:ident].is_a?(::AST::Node)
2886
+ @buffers[:ident] ||= []
2887
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2888
+ end
2889
+ end
2890
+ begin
2891
+
2892
+ @buffers[:ident] ||= []
2893
+ yield @buffers[:ident]
2894
+ end
2895
+ when 7 then
2896
+ begin
2897
+
2898
+ unless @buffers[:ident].is_a?(::AST::Node)
2899
+ @buffers[:ident] ||= []
2900
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2901
+ end
2902
+ end
2903
+ begin
2904
+
2905
+ @buffers[:string] ||= []
2906
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2907
+ end
2908
+ when 10 then
2909
+ begin
2910
+
2911
+ @buffers[:string] ||= []
2912
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2913
+ end
2914
+ begin
2915
+
2916
+ unless @buffers[:ident].is_a?(::AST::Node)
2917
+ @buffers[:ident] ||= []
2918
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
2919
+ end
2920
+ end
2921
+ when 22 then
2922
+ begin
2923
+
2924
+ @buffers[:string] ||= []
2925
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
2926
+ end
2927
+ begin
2928
+
2929
+ @buffers[:string] ||= []
2930
+ yield @buffers[:string]
2931
+ end
2932
+ end
2933
+ end
2934
+
2935
+ end
2936
+ if _goto_level <= _out
2937
+ break
2938
+ end
2939
+ end
2940
+ end
2941
+
2942
+
2943
+ =end
2944
+ # end: ragel
2945
+
2946
+ require_relative '../ast/node'
2947
+ require_relative '../mixin/buffer'
2948
+ require_relative '../nonblocking_io_wrapper'
2949
+
2950
+ module BELParser
2951
+ module Parsers
2952
+ module Expression
2953
+ module Term
2954
+
2955
+ class << self
2956
+
2957
+ MAX_LENGTH = 1024 * 128 # 128K
2958
+
2959
+ def parse(content)
2960
+ return nil unless content
2961
+
2962
+ Parser.new(content).each do |obj|
2963
+ yield obj
2964
+ end
2965
+ end
2966
+ end
2967
+
2968
+ private
2969
+
2970
+ class Parser
2971
+ include Enumerable
2972
+ include BELParser::Parsers::Buffer
2973
+ include BELParser::Parsers::AST::Sexp
2974
+
2975
+ def initialize(content)
2976
+ @content = content
2977
+ # begin: ragel
2978
+
2979
+ class << self
2980
+ attr_accessor :_bel_trans_keys
2981
+ private :_bel_trans_keys, :_bel_trans_keys=
2982
+ end
2983
+ self._bel_trans_keys = [
2984
+ 0, 0, 48, 122, 9, 122,
2985
+ 9, 40, 9, 122, 9,
2986
+ 122, 34, 92, 9, 44,
2987
+ 9, 44, 9, 122, 9, 122,
2988
+ 9, 44, 10, 10, 92,
2989
+ 92, 9, 122, 48, 122,
2990
+ 10, 122, 34, 34, 34, 92,
2991
+ 10, 10, 92, 92, 9,
2992
+ 122, 9, 122, 34, 92,
2993
+ 10, 10, 92, 92, 10, 122,
2994
+ 10, 122, 48, 122, 9,
2995
+ 122, 9, 40, 9, 122,
2996
+ 9, 122, 34, 92, 9, 44,
2997
+ 9, 44, 9, 122, 9,
2998
+ 122, 9, 44, 92, 92,
2999
+ 9, 122, 0, 0, 0, 0,
3000
+ 0, 0, 0, 0, 0,
3001
+ 0, 0
3002
+ ]
3003
+
3004
+ class << self
3005
+ attr_accessor :_bel_key_spans
3006
+ private :_bel_key_spans, :_bel_key_spans=
3007
+ end
3008
+ self._bel_key_spans = [
3009
+ 0, 75, 114, 32, 114, 114, 59, 36,
3010
+ 36, 114, 114, 36, 1, 1, 114, 75,
3011
+ 113, 1, 59, 1, 1, 114, 114, 59,
3012
+ 1, 1, 113, 113, 75, 114, 32, 114,
3013
+ 114, 59, 36, 36, 114, 114, 36, 1,
3014
+ 114, 0, 0, 0, 0, 0
3015
+ ]
3016
+
3017
+ class << self
3018
+ attr_accessor :_bel_index_offsets
3019
+ private :_bel_index_offsets, :_bel_index_offsets=
3020
+ end
3021
+ self._bel_index_offsets = [
3022
+ 0, 0, 76, 191, 224, 339, 454, 514,
3023
+ 551, 588, 703, 818, 855, 857, 859, 974,
3024
+ 1050, 1164, 1166, 1226, 1228, 1230, 1345, 1460,
3025
+ 1520, 1522, 1524, 1638, 1752, 1828, 1943, 1976,
3026
+ 2091, 2206, 2266, 2303, 2340, 2455, 2570, 2607,
3027
+ 2609, 2724, 2725, 2726, 2727, 2728
3028
+ ]
3029
+
3030
+ class << self
3031
+ attr_accessor :_bel_indicies
3032
+ private :_bel_indicies, :_bel_indicies=
3033
+ end
3034
+ self._bel_indicies = [
3035
+ 1, 1, 1, 1, 1, 1, 1, 1,
3036
+ 1, 1, 0, 0, 0, 0, 0, 0,
3037
+ 0, 1, 1, 1, 1, 1, 1, 1,
3038
+ 1, 1, 1, 1, 1, 1, 1, 1,
3039
+ 1, 1, 1, 1, 1, 1, 1, 1,
3040
+ 1, 1, 1, 0, 0, 0, 0, 1,
3041
+ 0, 1, 1, 1, 1, 1, 1, 1,
3042
+ 1, 1, 1, 1, 1, 1, 1, 1,
3043
+ 1, 1, 1, 1, 1, 1, 1, 1,
3044
+ 1, 1, 1, 0, 2, 0, 0, 0,
3045
+ 0, 0, 0, 0, 0, 0, 0, 0,
3046
+ 0, 0, 0, 0, 0, 0, 0, 0,
3047
+ 0, 0, 0, 2, 0, 0, 0, 0,
3048
+ 0, 0, 0, 3, 0, 0, 0, 0,
3049
+ 0, 0, 0, 4, 4, 4, 4, 4,
3050
+ 4, 4, 4, 4, 4, 0, 0, 0,
3051
+ 0, 0, 0, 0, 4, 4, 4, 4,
3052
+ 4, 4, 4, 4, 4, 4, 4, 4,
3053
+ 4, 4, 4, 4, 4, 4, 4, 4,
3054
+ 4, 4, 4, 4, 4, 4, 0, 0,
3055
+ 0, 0, 4, 0, 4, 4, 4, 4,
3056
+ 4, 4, 4, 4, 4, 4, 4, 4,
3057
+ 4, 4, 4, 4, 4, 4, 4, 4,
3058
+ 4, 4, 4, 4, 4, 4, 0, 5,
3059
+ 6, 6, 6, 6, 6, 6, 6, 6,
3060
+ 6, 6, 6, 6, 6, 6, 6, 6,
3061
+ 6, 6, 6, 6, 6, 6, 5, 6,
3062
+ 6, 6, 6, 6, 6, 6, 7, 6,
3063
+ 9, 8, 8, 8, 8, 8, 8, 8,
3064
+ 8, 8, 8, 8, 8, 8, 8, 8,
3065
+ 8, 8, 8, 8, 8, 8, 8, 9,
3066
+ 8, 10, 8, 8, 8, 8, 8, 8,
3067
+ 8, 8, 8, 8, 8, 8, 8, 11,
3068
+ 11, 11, 11, 11, 11, 11, 11, 11,
3069
+ 11, 8, 8, 8, 8, 8, 8, 8,
3070
+ 11, 11, 11, 11, 11, 11, 11, 11,
3071
+ 11, 11, 11, 11, 11, 11, 11, 11,
3072
+ 11, 11, 11, 11, 11, 11, 11, 11,
3073
+ 11, 11, 8, 8, 8, 8, 11, 8,
3074
+ 11, 11, 11, 11, 11, 11, 11, 11,
3075
+ 11, 11, 11, 11, 11, 11, 11, 11,
3076
+ 11, 11, 11, 11, 11, 11, 11, 11,
3077
+ 11, 11, 8, 9, 12, 12, 12, 12,
3078
+ 12, 12, 12, 12, 12, 12, 12, 12,
3079
+ 12, 12, 12, 12, 12, 12, 12, 12,
3080
+ 12, 12, 9, 12, 10, 12, 12, 12,
3081
+ 12, 12, 12, 12, 12, 12, 12, 12,
3082
+ 12, 12, 13, 13, 13, 13, 13, 13,
3083
+ 13, 13, 13, 13, 12, 12, 12, 12,
3084
+ 12, 12, 12, 13, 13, 13, 13, 13,
3085
+ 13, 13, 13, 13, 13, 13, 13, 13,
3086
+ 13, 13, 13, 13, 13, 13, 13, 13,
3087
+ 13, 13, 13, 13, 13, 12, 12, 12,
3088
+ 12, 13, 12, 13, 13, 13, 13, 13,
3089
+ 13, 13, 13, 13, 13, 13, 13, 13,
3090
+ 13, 13, 13, 13, 13, 13, 13, 13,
3091
+ 13, 13, 13, 13, 13, 12, 15, 14,
3092
+ 14, 14, 14, 14, 14, 14, 14, 14,
3093
+ 14, 14, 14, 14, 14, 14, 14, 14,
3094
+ 14, 14, 14, 14, 14, 14, 14, 14,
3095
+ 14, 14, 14, 14, 14, 14, 14, 14,
3096
+ 14, 14, 14, 14, 14, 14, 14, 14,
3097
+ 14, 14, 14, 14, 14, 14, 14, 14,
3098
+ 14, 14, 14, 14, 14, 14, 14, 14,
3099
+ 16, 14, 18, 17, 17, 17, 17, 17,
3100
+ 17, 17, 17, 17, 17, 17, 17, 17,
3101
+ 17, 17, 17, 17, 17, 17, 17, 17,
3102
+ 17, 18, 17, 17, 17, 17, 17, 17,
3103
+ 17, 17, 19, 17, 17, 20, 17, 21,
3104
+ 6, 6, 6, 6, 6, 6, 6, 6,
3105
+ 6, 6, 6, 6, 6, 6, 6, 6,
3106
+ 6, 6, 6, 6, 6, 6, 21, 6,
3107
+ 6, 6, 6, 6, 6, 6, 6, 6,
3108
+ 6, 6, 22, 6, 22, 8, 8, 8,
3109
+ 8, 8, 8, 8, 8, 8, 8, 8,
3110
+ 8, 8, 8, 8, 8, 8, 8, 8,
3111
+ 8, 8, 8, 22, 8, 10, 8, 8,
3112
+ 8, 8, 8, 8, 8, 8, 8, 8,
3113
+ 8, 8, 8, 11, 11, 11, 11, 11,
3114
+ 11, 11, 11, 11, 11, 8, 8, 8,
3115
+ 8, 8, 8, 8, 11, 11, 11, 11,
3116
+ 11, 11, 11, 11, 11, 11, 11, 11,
3117
+ 11, 11, 11, 11, 11, 11, 11, 11,
3118
+ 11, 11, 11, 11, 11, 11, 8, 8,
3119
+ 8, 8, 11, 8, 11, 11, 11, 11,
3120
+ 11, 11, 11, 11, 11, 11, 11, 11,
3121
+ 11, 11, 11, 11, 11, 11, 11, 11,
3122
+ 11, 11, 11, 11, 11, 11, 8, 23,
3123
+ 0, 0, 0, 0, 0, 0, 0, 0,
3124
+ 0, 0, 0, 0, 0, 0, 0, 0,
3125
+ 0, 0, 0, 0, 0, 0, 23, 0,
3126
+ 0, 0, 0, 0, 0, 0, 24, 25,
3127
+ 0, 0, 26, 0, 0, 0, 27, 27,
3128
+ 27, 27, 27, 27, 27, 27, 27, 27,
3129
+ 28, 0, 0, 0, 0, 0, 0, 27,
3130
+ 27, 27, 27, 27, 27, 27, 27, 27,
3131
+ 27, 27, 27, 27, 27, 27, 27, 27,
3132
+ 27, 27, 27, 27, 27, 27, 27, 27,
3133
+ 27, 0, 0, 0, 0, 27, 0, 27,
3134
+ 27, 27, 27, 27, 27, 27, 27, 27,
3135
+ 27, 27, 27, 27, 27, 27, 27, 27,
3136
+ 27, 27, 27, 27, 27, 27, 27, 27,
3137
+ 27, 0, 21, 6, 6, 6, 6, 6,
3138
+ 6, 6, 6, 6, 6, 6, 6, 6,
3139
+ 6, 6, 6, 6, 6, 6, 6, 6,
3140
+ 6, 21, 6, 6, 6, 6, 6, 6,
3141
+ 6, 6, 29, 6, 6, 22, 6, 30,
3142
+ 6, 16, 14, 23, 0, 0, 0, 0,
3143
+ 0, 0, 0, 0, 0, 0, 0, 0,
3144
+ 0, 0, 0, 0, 0, 0, 0, 0,
3145
+ 0, 0, 23, 0, 0, 0, 0, 0,
3146
+ 0, 0, 0, 25, 0, 0, 26, 0,
3147
+ 0, 0, 31, 31, 31, 31, 31, 31,
3148
+ 31, 31, 31, 31, 0, 0, 0, 0,
3149
+ 0, 0, 0, 31, 31, 31, 31, 31,
3150
+ 31, 31, 31, 31, 31, 31, 31, 31,
3151
+ 31, 31, 31, 31, 31, 31, 31, 31,
3152
+ 31, 31, 31, 31, 31, 0, 0, 0,
3153
+ 0, 31, 0, 31, 31, 31, 31, 31,
3154
+ 31, 31, 31, 31, 31, 31, 31, 31,
3155
+ 31, 31, 31, 31, 31, 31, 31, 31,
3156
+ 31, 31, 31, 31, 31, 0, 33, 33,
3157
+ 33, 33, 33, 33, 33, 33, 33, 33,
3158
+ 32, 32, 32, 32, 32, 32, 32, 33,
3159
+ 33, 33, 33, 33, 33, 33, 33, 33,
3160
+ 33, 33, 33, 33, 33, 33, 33, 33,
3161
+ 33, 33, 33, 33, 33, 33, 33, 33,
3162
+ 33, 32, 32, 32, 32, 33, 32, 33,
3163
+ 33, 33, 33, 33, 33, 33, 33, 33,
3164
+ 33, 33, 33, 33, 33, 33, 33, 33,
3165
+ 33, 33, 33, 33, 33, 33, 33, 33,
3166
+ 33, 32, 34, 32, 32, 32, 32, 32,
3167
+ 32, 32, 32, 32, 32, 32, 32, 32,
3168
+ 32, 32, 32, 32, 32, 32, 32, 32,
3169
+ 32, 32, 32, 32, 32, 32, 32, 32,
3170
+ 32, 32, 32, 32, 32, 32, 32, 32,
3171
+ 35, 35, 35, 35, 35, 35, 35, 35,
3172
+ 35, 35, 32, 32, 32, 32, 32, 32,
3173
+ 32, 35, 35, 35, 35, 35, 35, 35,
3174
+ 35, 35, 35, 35, 35, 35, 35, 35,
3175
+ 35, 35, 35, 35, 35, 35, 35, 35,
3176
+ 35, 35, 35, 32, 32, 32, 32, 35,
3177
+ 32, 35, 35, 35, 35, 35, 35, 35,
3178
+ 35, 35, 35, 35, 35, 35, 35, 35,
3179
+ 35, 35, 35, 35, 35, 35, 35, 35,
3180
+ 35, 35, 35, 32, 37, 36, 39, 38,
3181
+ 38, 38, 38, 38, 38, 38, 38, 38,
3182
+ 38, 38, 38, 38, 38, 38, 38, 38,
3183
+ 38, 38, 38, 38, 38, 38, 38, 38,
3184
+ 38, 38, 38, 38, 38, 38, 38, 38,
3185
+ 38, 38, 38, 38, 38, 38, 38, 38,
3186
+ 38, 38, 38, 38, 38, 38, 38, 38,
3187
+ 38, 38, 38, 38, 38, 38, 38, 38,
3188
+ 40, 38, 41, 36, 40, 38, 42, 8,
3189
+ 8, 8, 8, 8, 8, 8, 8, 8,
3190
+ 8, 8, 8, 8, 8, 8, 8, 8,
3191
+ 8, 8, 8, 8, 8, 42, 8, 43,
3192
+ 8, 8, 8, 8, 8, 8, 8, 8,
3193
+ 8, 8, 8, 8, 8, 44, 44, 44,
3194
+ 44, 44, 44, 44, 44, 44, 44, 8,
3195
+ 8, 8, 8, 8, 8, 8, 44, 44,
3196
+ 44, 44, 44, 44, 44, 44, 44, 44,
3197
+ 44, 44, 44, 44, 44, 44, 44, 44,
3198
+ 44, 44, 44, 44, 44, 44, 44, 44,
3199
+ 8, 8, 8, 8, 44, 8, 44, 44,
3200
+ 44, 44, 44, 44, 44, 44, 44, 44,
3201
+ 44, 44, 44, 44, 44, 44, 44, 44,
3202
+ 44, 44, 44, 44, 44, 44, 44, 44,
3203
+ 8, 42, 12, 12, 12, 12, 12, 12,
3204
+ 12, 12, 12, 12, 12, 12, 12, 12,
3205
+ 12, 12, 12, 12, 12, 12, 12, 12,
3206
+ 42, 12, 43, 12, 12, 12, 12, 12,
3207
+ 12, 12, 12, 12, 12, 12, 12, 12,
3208
+ 45, 45, 45, 45, 45, 45, 45, 45,
3209
+ 45, 45, 12, 12, 12, 12, 12, 12,
3210
+ 12, 45, 45, 45, 45, 45, 45, 45,
3211
+ 45, 45, 45, 45, 45, 45, 45, 45,
3212
+ 45, 45, 45, 45, 45, 45, 45, 45,
3213
+ 45, 45, 45, 12, 12, 12, 12, 45,
3214
+ 12, 45, 45, 45, 45, 45, 45, 45,
3215
+ 45, 45, 45, 45, 45, 45, 45, 45,
3216
+ 45, 45, 45, 45, 45, 45, 45, 45,
3217
+ 45, 45, 45, 12, 47, 46, 46, 46,
3218
+ 46, 46, 46, 46, 46, 46, 46, 46,
3219
+ 46, 46, 46, 46, 46, 46, 46, 46,
3220
+ 46, 46, 46, 46, 46, 46, 46, 46,
3221
+ 46, 46, 46, 46, 46, 46, 46, 46,
3222
+ 46, 46, 46, 46, 46, 46, 46, 46,
3223
+ 46, 46, 46, 46, 46, 46, 46, 46,
3224
+ 46, 46, 46, 46, 46, 46, 48, 46,
3225
+ 49, 17, 48, 46, 50, 0, 0, 0,
3226
+ 0, 0, 0, 0, 0, 0, 0, 0,
3227
+ 0, 0, 0, 0, 0, 0, 0, 0,
3228
+ 0, 0, 0, 0, 0, 0, 0, 0,
3229
+ 0, 0, 0, 0, 0, 0, 0, 0,
3230
+ 0, 0, 51, 51, 51, 51, 51, 51,
3231
+ 51, 51, 51, 51, 0, 0, 0, 0,
3232
+ 0, 0, 0, 51, 51, 51, 51, 51,
3233
+ 51, 51, 51, 51, 51, 51, 51, 51,
3234
+ 51, 51, 51, 51, 51, 51, 51, 51,
3235
+ 51, 51, 51, 51, 51, 0, 0, 0,
3236
+ 0, 51, 0, 51, 51, 51, 51, 51,
3237
+ 51, 51, 51, 51, 51, 51, 51, 51,
3238
+ 51, 51, 51, 51, 51, 51, 51, 51,
3239
+ 51, 51, 51, 51, 51, 0, 50, 0,
3240
+ 0, 0, 0, 0, 0, 0, 0, 0,
3241
+ 0, 0, 0, 0, 0, 0, 0, 0,
3242
+ 0, 0, 0, 0, 0, 0, 0, 0,
3243
+ 0, 0, 0, 0, 0, 0, 0, 0,
3244
+ 0, 0, 0, 0, 52, 52, 52, 52,
3245
+ 52, 52, 52, 52, 52, 52, 53, 0,
3246
+ 0, 0, 0, 0, 0, 52, 52, 52,
3247
+ 52, 52, 52, 52, 52, 52, 52, 52,
3248
+ 52, 52, 52, 52, 52, 52, 52, 52,
3249
+ 52, 52, 52, 52, 52, 52, 52, 0,
3250
+ 0, 0, 0, 52, 0, 52, 52, 52,
3251
+ 52, 52, 52, 52, 52, 52, 52, 52,
3252
+ 52, 52, 52, 52, 52, 52, 52, 52,
3253
+ 52, 52, 52, 52, 52, 52, 52, 0,
3254
+ 54, 54, 54, 54, 54, 54, 54, 54,
3255
+ 54, 54, 0, 0, 0, 0, 0, 0,
3256
+ 0, 54, 54, 54, 54, 54, 54, 54,
3257
+ 54, 54, 54, 54, 54, 54, 54, 54,
3258
+ 54, 54, 54, 54, 54, 54, 54, 54,
3259
+ 54, 54, 54, 0, 0, 0, 0, 54,
3260
+ 0, 54, 54, 54, 54, 54, 54, 54,
3261
+ 54, 54, 54, 54, 54, 54, 54, 54,
3262
+ 54, 54, 54, 54, 54, 54, 54, 54,
3263
+ 54, 54, 54, 0, 55, 0, 0, 0,
3264
+ 0, 0, 0, 0, 0, 0, 0, 0,
3265
+ 0, 0, 0, 0, 0, 0, 0, 0,
3266
+ 0, 0, 0, 55, 0, 0, 0, 0,
3267
+ 0, 0, 0, 56, 0, 0, 0, 0,
3268
+ 0, 0, 0, 57, 57, 57, 57, 57,
3269
+ 57, 57, 57, 57, 57, 0, 0, 0,
3270
+ 0, 0, 0, 0, 57, 57, 57, 57,
3271
+ 57, 57, 57, 57, 57, 57, 57, 57,
3272
+ 57, 57, 57, 57, 57, 57, 57, 57,
3273
+ 57, 57, 57, 57, 57, 57, 0, 0,
3274
+ 0, 0, 57, 0, 57, 57, 57, 57,
3275
+ 57, 57, 57, 57, 57, 57, 57, 57,
3276
+ 57, 57, 57, 57, 57, 57, 57, 57,
3277
+ 57, 57, 57, 57, 57, 57, 0, 58,
3278
+ 6, 6, 6, 6, 6, 6, 6, 6,
3279
+ 6, 6, 6, 6, 6, 6, 6, 6,
3280
+ 6, 6, 6, 6, 6, 6, 58, 6,
3281
+ 6, 6, 6, 6, 6, 6, 59, 6,
3282
+ 60, 8, 8, 8, 8, 8, 8, 8,
3283
+ 8, 8, 8, 8, 8, 8, 8, 8,
3284
+ 8, 8, 8, 8, 8, 8, 8, 60,
3285
+ 8, 61, 8, 8, 8, 8, 8, 8,
3286
+ 8, 8, 8, 8, 8, 8, 8, 62,
3287
+ 62, 62, 62, 62, 62, 62, 62, 62,
3288
+ 62, 8, 8, 8, 8, 8, 8, 8,
3289
+ 62, 62, 62, 62, 62, 62, 62, 62,
3290
+ 62, 62, 62, 62, 62, 62, 62, 62,
3291
+ 62, 62, 62, 62, 62, 62, 62, 62,
3292
+ 62, 62, 8, 8, 8, 8, 62, 8,
3293
+ 62, 62, 62, 62, 62, 62, 62, 62,
3294
+ 62, 62, 62, 62, 62, 62, 62, 62,
3295
+ 62, 62, 62, 62, 62, 62, 62, 62,
3296
+ 62, 62, 8, 60, 12, 12, 12, 12,
3297
+ 12, 12, 12, 12, 12, 12, 12, 12,
3298
+ 12, 12, 12, 12, 12, 12, 12, 12,
3299
+ 12, 12, 60, 12, 61, 12, 12, 12,
3300
+ 12, 12, 12, 12, 12, 12, 12, 12,
3301
+ 12, 12, 63, 63, 63, 63, 63, 63,
3302
+ 63, 63, 63, 63, 12, 12, 12, 12,
3303
+ 12, 12, 12, 63, 63, 63, 63, 63,
3304
+ 63, 63, 63, 63, 63, 63, 63, 63,
3305
+ 63, 63, 63, 63, 63, 63, 63, 63,
3306
+ 63, 63, 63, 63, 63, 12, 12, 12,
3307
+ 12, 63, 12, 63, 63, 63, 63, 63,
3308
+ 63, 63, 63, 63, 63, 63, 63, 63,
3309
+ 63, 63, 63, 63, 63, 63, 63, 63,
3310
+ 63, 63, 63, 63, 63, 12, 65, 64,
3311
+ 64, 64, 64, 64, 64, 64, 64, 64,
3312
+ 64, 64, 64, 64, 64, 64, 64, 64,
3313
+ 64, 64, 64, 64, 64, 64, 64, 64,
3314
+ 64, 64, 64, 64, 64, 64, 64, 64,
3315
+ 64, 64, 64, 64, 64, 64, 64, 64,
3316
+ 64, 64, 64, 64, 64, 64, 64, 64,
3317
+ 64, 64, 64, 64, 64, 64, 64, 64,
3318
+ 66, 64, 67, 17, 17, 17, 17, 17,
3319
+ 17, 17, 17, 17, 17, 17, 17, 17,
3320
+ 17, 17, 17, 17, 17, 17, 17, 17,
3321
+ 17, 67, 17, 17, 17, 17, 17, 17,
3322
+ 17, 17, 68, 17, 17, 69, 17, 70,
3323
+ 6, 6, 6, 6, 6, 6, 6, 6,
3324
+ 6, 6, 6, 6, 6, 6, 6, 6,
3325
+ 6, 6, 6, 6, 6, 6, 70, 6,
3326
+ 6, 6, 6, 6, 6, 6, 6, 6,
3327
+ 6, 6, 71, 6, 71, 8, 8, 8,
3328
+ 8, 8, 8, 8, 8, 8, 8, 8,
3329
+ 8, 8, 8, 8, 8, 8, 8, 8,
3330
+ 8, 8, 8, 71, 8, 61, 8, 8,
3331
+ 8, 8, 8, 8, 8, 8, 8, 8,
3332
+ 8, 8, 8, 62, 62, 62, 62, 62,
3333
+ 62, 62, 62, 62, 62, 8, 8, 8,
3334
+ 8, 8, 8, 8, 62, 62, 62, 62,
3335
+ 62, 62, 62, 62, 62, 62, 62, 62,
3336
+ 62, 62, 62, 62, 62, 62, 62, 62,
3337
+ 62, 62, 62, 62, 62, 62, 8, 8,
3338
+ 8, 8, 62, 8, 62, 62, 62, 62,
3339
+ 62, 62, 62, 62, 62, 62, 62, 62,
3340
+ 62, 62, 62, 62, 62, 62, 62, 62,
3341
+ 62, 62, 62, 62, 62, 62, 8, 72,
3342
+ 0, 0, 0, 0, 0, 0, 0, 0,
3343
+ 0, 0, 0, 0, 0, 0, 0, 0,
3344
+ 0, 0, 0, 0, 0, 0, 72, 0,
3345
+ 0, 0, 0, 0, 0, 0, 73, 74,
3346
+ 0, 0, 75, 0, 0, 0, 76, 76,
3347
+ 76, 76, 76, 76, 76, 76, 76, 76,
3348
+ 77, 0, 0, 0, 0, 0, 0, 76,
3349
+ 76, 76, 76, 76, 76, 76, 76, 76,
3350
+ 76, 76, 76, 76, 76, 76, 76, 76,
3351
+ 76, 76, 76, 76, 76, 76, 76, 76,
3352
+ 76, 0, 0, 0, 0, 76, 0, 76,
3353
+ 76, 76, 76, 76, 76, 76, 76, 76,
3354
+ 76, 76, 76, 76, 76, 76, 76, 76,
3355
+ 76, 76, 76, 76, 76, 76, 76, 76,
3356
+ 76, 0, 70, 6, 6, 6, 6, 6,
3357
+ 6, 6, 6, 6, 6, 6, 6, 6,
3358
+ 6, 6, 6, 6, 6, 6, 6, 6,
3359
+ 6, 70, 6, 6, 6, 6, 6, 6,
3360
+ 6, 6, 78, 6, 6, 71, 6, 66,
3361
+ 64, 72, 0, 0, 0, 0, 0, 0,
3362
+ 0, 0, 0, 0, 0, 0, 0, 0,
3363
+ 0, 0, 0, 0, 0, 0, 0, 0,
3364
+ 72, 0, 0, 0, 0, 0, 0, 0,
3365
+ 0, 74, 0, 0, 75, 0, 0, 0,
3366
+ 79, 79, 79, 79, 79, 79, 79, 79,
3367
+ 79, 79, 0, 0, 0, 0, 0, 0,
3368
+ 0, 79, 79, 79, 79, 79, 79, 79,
3369
+ 79, 79, 79, 79, 79, 79, 79, 79,
3370
+ 79, 79, 79, 79, 79, 79, 79, 79,
3371
+ 79, 79, 79, 0, 0, 0, 0, 79,
3372
+ 0, 79, 79, 79, 79, 79, 79, 79,
3373
+ 79, 79, 79, 79, 79, 79, 79, 79,
3374
+ 79, 79, 79, 79, 79, 79, 79, 79,
3375
+ 79, 79, 79, 0, 6, 6, 6, 6,
3376
+ 6, 0
3377
+ ]
3378
+
3379
+ class << self
3380
+ attr_accessor :_bel_trans_targs
3381
+ private :_bel_trans_targs, :_bel_trans_targs=
3382
+ end
3383
+ self._bel_trans_targs = [
3384
+ 0, 2, 3, 4, 2, 3, 0, 4,
3385
+ 0, 5, 6, 10, 0, 14, 6, 7,
3386
+ 13, 0, 8, 12, 9, 8, 9, 8,
3387
+ 11, 12, 9, 10, 5, 12, 41, 14,
3388
+ 0, 16, 42, 16, 0, 18, 18, 19,
3389
+ 20, 43, 22, 23, 27, 26, 23, 24,
3390
+ 25, 44, 44, 26, 27, 22, 29, 30,
3391
+ 31, 29, 30, 31, 32, 33, 37, 40,
3392
+ 33, 34, 39, 35, 45, 36, 35, 36,
3393
+ 35, 38, 45, 36, 37, 32, 45, 40
3394
+ ]
3395
+
3396
+ class << self
3397
+ attr_accessor :_bel_trans_actions
3398
+ private :_bel_trans_actions, :_bel_trans_actions=
3399
+ end
3400
+ self._bel_trans_actions = [
3401
+ 1, 2, 3, 4, 5, 0, 0, 6,
3402
+ 7, 0, 8, 9, 10, 11, 13, 13,
3403
+ 13, 12, 14, 14, 14, 0, 0, 15,
3404
+ 16, 15, 15, 5, 17, 0, 18, 19,
3405
+ 20, 11, 21, 19, 22, 8, 13, 13,
3406
+ 13, 23, 0, 8, 11, 11, 13, 13,
3407
+ 13, 24, 25, 19, 19, 17, 26, 3,
3408
+ 4, 5, 0, 6, 0, 8, 9, 11,
3409
+ 13, 13, 13, 14, 27, 14, 0, 0,
3410
+ 15, 16, 28, 15, 5, 17, 29, 19
3411
+ ]
3412
+
3413
+ class << self
3414
+ attr_accessor :_bel_eof_actions
3415
+ private :_bel_eof_actions, :_bel_eof_actions=
3416
+ end
3417
+ self._bel_eof_actions = [
3418
+ 0, 1, 1, 0, 7, 10, 12, 12,
3419
+ 0, 7, 1, 0, 0, 12, 1, 20,
3420
+ 20, 22, 22, 22, 22, 7, 10, 12,
3421
+ 12, 12, 1, 1, 1, 1, 0, 7,
3422
+ 10, 12, 12, 0, 7, 1, 0, 12,
3423
+ 1, 0, 0, 0, 0, 0
3424
+ ]
3425
+
3426
+ class << self
3427
+ attr_accessor :bel_start
3428
+ end
3429
+ self.bel_start = 1;
3430
+ class << self
3431
+ attr_accessor :bel_first_final
3432
+ end
3433
+ self.bel_first_final = 41;
3434
+ class << self
3435
+ attr_accessor :bel_error
3436
+ end
3437
+ self.bel_error = 0;
3438
+
3439
+ class << self
3440
+ attr_accessor :bel_en_ident
3441
+ end
3442
+ self.bel_en_ident = 15;
3443
+ class << self
3444
+ attr_accessor :bel_en_string
3445
+ end
3446
+ self.bel_en_string = 17;
3447
+ class << self
3448
+ attr_accessor :bel_en_bel_parameter
3449
+ end
3450
+ self.bel_en_bel_parameter = 21;
3451
+ class << self
3452
+ attr_accessor :bel_en_inner_term
3453
+ end
3454
+ self.bel_en_inner_term = 28;
3455
+ class << self
3456
+ attr_accessor :bel_en_term
3457
+ end
3458
+ self.bel_en_term = 1;
3459
+
3460
+
3461
+ # end: ragel
3462
+ end
3463
+
3464
+ def each
3465
+ @buffers = {}
3466
+ stack = []
3467
+ data = @content.unpack('C*')
3468
+ p = 0
3469
+ pe = data.length
3470
+ eof = data.length
3471
+
3472
+ # begin: ragel
3473
+
3474
+ begin
3475
+ p ||= 0
3476
+ pe ||= data.length
3477
+ cs = bel_start
3478
+ top = 0
3479
+ end
3480
+
3481
+
3482
+ begin
3483
+ testEof = false
3484
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
3485
+ _goto_level = 0
3486
+ _resume = 10
3487
+ _eof_trans = 15
3488
+ _again = 20
3489
+ _test_eof = 30
3490
+ _out = 40
3491
+ while true
3492
+ if _goto_level <= 0
3493
+ if p == pe
3494
+ _goto_level = _test_eof
3495
+ next
3496
+ end
3497
+ if cs == 0
3498
+ _goto_level = _out
3499
+ next
3500
+ end
3501
+ end
3502
+ if _goto_level <= _resume
3503
+ _keys = cs << 1
3504
+ _inds = _bel_index_offsets[cs]
3505
+ _slen = _bel_key_spans[cs]
3506
+ _wide = data[p].ord
3507
+ _trans = if ( _slen > 0 &&
3508
+ _bel_trans_keys[_keys] <= _wide &&
3509
+ _wide <= _bel_trans_keys[_keys + 1]
3510
+ ) then
3511
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
3512
+ else
3513
+ _bel_indicies[ _inds + _slen ]
3514
+ end
3515
+ cs = _bel_trans_targs[_trans]
3516
+ if _bel_trans_actions[_trans] != 0
3517
+ case _bel_trans_actions[_trans]
3518
+ when 19 then
3519
+ begin
3520
+
3521
+ (@buffers[:ident] ||= []) << data[p].ord
3522
+ end
3523
+ when 1 then
3524
+ begin
3525
+
3526
+ unless @buffers[:ident].is_a?(::AST::Node)
3527
+ @buffers[:ident] ||= []
3528
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3529
+ end
3530
+ end
3531
+ when 13 then
3532
+ begin
3533
+
3534
+ (@buffers[:string] ||= []) << data[p].ord
3535
+ end
3536
+ when 12 then
3537
+ begin
3538
+
3539
+ @buffers[:string] ||= []
3540
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3541
+ end
3542
+ when 6 then
3543
+ begin
3544
+
3545
+ fx = @buffers[:function]
3546
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
3547
+ end
3548
+ when 29 then
3549
+ begin
3550
+
3551
+ inner_term = @buffers[:term_stack].pop
3552
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
3553
+ begin
3554
+ top -= 1
3555
+ cs = stack[top]
3556
+ _goto_level = _again
3557
+ next
3558
+ end
3559
+
3560
+ end
3561
+ when 18 then
3562
+ begin
3563
+
3564
+ yield @buffers[:term_stack][-1]
3565
+ end
3566
+ when 11 then
3567
+ begin
3568
+
3569
+ @buffers[:ident] = []
3570
+ end
3571
+ begin
3572
+
3573
+ (@buffers[:ident] ||= []) << data[p].ord
3574
+ end
3575
+ when 5 then
3576
+ begin
3577
+
3578
+ (@buffers[:ident] ||= []) << data[p].ord
3579
+ end
3580
+ begin
3581
+
3582
+ @buffers[:function] << data[p].ord
3583
+ end
3584
+ when 21 then
3585
+ begin
3586
+
3587
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3588
+ end
3589
+ begin
3590
+
3591
+ yield @buffers[:ident]
3592
+ end
3593
+ when 17 then
3594
+ begin
3595
+
3596
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3597
+ end
3598
+ begin
3599
+
3600
+ @buffers[:parameter] = parameter(prefix(@buffers[:ident]))
3601
+ end
3602
+ when 3 then
3603
+ begin
3604
+
3605
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3606
+ end
3607
+ begin
3608
+
3609
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
3610
+ end
3611
+ when 16 then
3612
+ begin
3613
+
3614
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3615
+ end
3616
+ begin
3617
+
3618
+ p -= @buffers[:function].length + 1
3619
+ begin
3620
+ stack[top] = cs
3621
+ top+= 1
3622
+ cs = 28
3623
+ _goto_level = _again
3624
+ next
3625
+ end
3626
+
3627
+ end
3628
+ when 20 then
3629
+ begin
3630
+
3631
+ unless @buffers[:ident].is_a?(::AST::Node)
3632
+ @buffers[:ident] ||= []
3633
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3634
+ end
3635
+ end
3636
+ begin
3637
+
3638
+ @buffers[:ident] ||= []
3639
+ yield @buffers[:ident]
3640
+ end
3641
+ when 7 then
3642
+ begin
3643
+
3644
+ unless @buffers[:ident].is_a?(::AST::Node)
3645
+ @buffers[:ident] ||= []
3646
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3647
+ end
3648
+ end
3649
+ begin
3650
+
3651
+ @buffers[:string] ||= []
3652
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3653
+ end
3654
+ when 8 then
3655
+ begin
3656
+
3657
+ @buffers[:string] = []
3658
+ end
3659
+ begin
3660
+
3661
+ (@buffers[:string] ||= []) << data[p].ord
3662
+ end
3663
+ when 23 then
3664
+ begin
3665
+
3666
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
3667
+ end
3668
+ begin
3669
+
3670
+ yield @buffers[:string]
3671
+ end
3672
+ when 10 then
3673
+ begin
3674
+
3675
+ @buffers[:string] ||= []
3676
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3677
+ end
3678
+ begin
3679
+
3680
+ unless @buffers[:ident].is_a?(::AST::Node)
3681
+ @buffers[:ident] ||= []
3682
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3683
+ end
3684
+ end
3685
+ when 22 then
3686
+ begin
3687
+
3688
+ @buffers[:string] ||= []
3689
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3690
+ end
3691
+ begin
3692
+
3693
+ @buffers[:string] ||= []
3694
+ yield @buffers[:string]
3695
+ end
3696
+ when 25 then
3697
+ begin
3698
+
3699
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3700
+ end
3701
+ begin
3702
+
3703
+ @buffers[:parameter] ||= parameter(prefix(nil))
3704
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
3705
+ end
3706
+ begin
3707
+
3708
+ yield @buffers[:parameter]
3709
+ end
3710
+ when 15 then
3711
+ begin
3712
+
3713
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3714
+ end
3715
+ begin
3716
+
3717
+ @buffers[:parameter] ||= parameter(prefix(nil))
3718
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
3719
+ end
3720
+ begin
3721
+
3722
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
3723
+ @buffers[:parameter] = nil
3724
+ end
3725
+ when 4 then
3726
+ begin
3727
+
3728
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3729
+ end
3730
+ begin
3731
+
3732
+ @buffers[:function] = identifier(utf8_string(@buffers[:function]))
3733
+ end
3734
+ begin
3735
+
3736
+ fx = @buffers[:function]
3737
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << function(fx)
3738
+ end
3739
+ when 24 then
3740
+ begin
3741
+
3742
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
3743
+ end
3744
+ begin
3745
+
3746
+ @buffers[:parameter] ||= parameter(prefix(nil))
3747
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
3748
+ end
3749
+ begin
3750
+
3751
+ yield @buffers[:parameter]
3752
+ end
3753
+ when 14 then
3754
+ begin
3755
+
3756
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
3757
+ end
3758
+ begin
3759
+
3760
+ @buffers[:parameter] ||= parameter(prefix(nil))
3761
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
3762
+ end
3763
+ begin
3764
+
3765
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
3766
+ @buffers[:parameter] = nil
3767
+ end
3768
+ when 9 then
3769
+ begin
3770
+
3771
+ @buffers[:ident] = []
3772
+ end
3773
+ begin
3774
+
3775
+ (@buffers[:ident] ||= []) << data[p].ord
3776
+ end
3777
+ begin
3778
+
3779
+ @buffers[:function] = []
3780
+ end
3781
+ begin
3782
+
3783
+ @buffers[:function] << data[p].ord
3784
+ end
3785
+ when 28 then
3786
+ begin
3787
+
3788
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
3789
+ end
3790
+ begin
3791
+
3792
+ @buffers[:parameter] ||= parameter(prefix(nil))
3793
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:ident])
3794
+ end
3795
+ begin
3796
+
3797
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
3798
+ @buffers[:parameter] = nil
3799
+ end
3800
+ begin
3801
+
3802
+ inner_term = @buffers[:term_stack].pop
3803
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
3804
+ begin
3805
+ top -= 1
3806
+ cs = stack[top]
3807
+ _goto_level = _again
3808
+ next
3809
+ end
3810
+
3811
+ end
3812
+ when 27 then
3813
+ begin
3814
+
3815
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
3816
+ end
3817
+ begin
3818
+
3819
+ @buffers[:parameter] ||= parameter(prefix(nil))
3820
+ @buffers[:parameter] = @buffers[:parameter] << value(@buffers[:string])
3821
+ end
3822
+ begin
3823
+
3824
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(@buffers[:parameter])
3825
+ @buffers[:parameter] = nil
3826
+ end
3827
+ begin
3828
+
3829
+ inner_term = @buffers[:term_stack].pop
3830
+ @buffers[:term_stack][-1] = @buffers[:term_stack][-1] << argument(inner_term)
3831
+ begin
3832
+ top -= 1
3833
+ cs = stack[top]
3834
+ _goto_level = _again
3835
+ next
3836
+ end
3837
+
3838
+ end
3839
+ when 2 then
3840
+ begin
3841
+
3842
+ @buffers[:term_stack] = [ term() ]
3843
+ end
3844
+ begin
3845
+
3846
+ @buffers[:function] = []
3847
+ end
3848
+ begin
3849
+
3850
+ @buffers[:ident] = []
3851
+ end
3852
+ begin
3853
+
3854
+ (@buffers[:ident] ||= []) << data[p].ord
3855
+ end
3856
+ begin
3857
+
3858
+ @buffers[:function] << data[p].ord
3859
+ end
3860
+ when 26 then
3861
+ begin
3862
+
3863
+ @buffers[:term_stack] << term()
3864
+ end
3865
+ begin
3866
+
3867
+ @buffers[:function] = []
3868
+ end
3869
+ begin
3870
+
3871
+ @buffers[:ident] = []
3872
+ end
3873
+ begin
3874
+
3875
+ (@buffers[:ident] ||= []) << data[p].ord
3876
+ end
3877
+ begin
3878
+
3879
+ @buffers[:function] << data[p].ord
3880
+ end
3881
+ end
3882
+ end
3883
+ end
3884
+ if _goto_level <= _again
3885
+ if cs == 0
3886
+ _goto_level = _out
3887
+ next
3888
+ end
3889
+ p += 1
3890
+ if p != pe
3891
+ _goto_level = _resume
3892
+ next
3893
+ end
3894
+ end
3895
+ if _goto_level <= _test_eof
3896
+ if p == eof
3897
+ case _bel_eof_actions[cs]
3898
+ when 1 then
3899
+ begin
3900
+
3901
+ unless @buffers[:ident].is_a?(::AST::Node)
3902
+ @buffers[:ident] ||= []
3903
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3904
+ end
3905
+ end
3906
+ when 12 then
3907
+ begin
3908
+
3909
+ @buffers[:string] ||= []
3910
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3911
+ end
3912
+ when 20 then
3913
+ begin
3914
+
3915
+ unless @buffers[:ident].is_a?(::AST::Node)
3916
+ @buffers[:ident] ||= []
3917
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3918
+ end
3919
+ end
3920
+ begin
3921
+
3922
+ @buffers[:ident] ||= []
3923
+ yield @buffers[:ident]
3924
+ end
3925
+ when 7 then
3926
+ begin
3927
+
3928
+ unless @buffers[:ident].is_a?(::AST::Node)
3929
+ @buffers[:ident] ||= []
3930
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3931
+ end
3932
+ end
3933
+ begin
3934
+
3935
+ @buffers[:string] ||= []
3936
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3937
+ end
3938
+ when 10 then
3939
+ begin
3940
+
3941
+ @buffers[:string] ||= []
3942
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3943
+ end
3944
+ begin
3945
+
3946
+ unless @buffers[:ident].is_a?(::AST::Node)
3947
+ @buffers[:ident] ||= []
3948
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
3949
+ end
3950
+ end
3951
+ when 22 then
3952
+ begin
3953
+
3954
+ @buffers[:string] ||= []
3955
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
3956
+ end
3957
+ begin
3958
+
3959
+ @buffers[:string] ||= []
3960
+ yield @buffers[:string]
3961
+ end
3962
+ end
3963
+ end
3964
+
3965
+ end
3966
+ if _goto_level <= _out
3967
+ break
3968
+ end
3969
+ end
3970
+ end
3971
+
3972
+ # end: ragel
3973
+ end
3974
+ end
3975
+ end
3976
+ end
3977
+ end
3978
+ end
3979
+
3980
+ if __FILE__ == $0
3981
+ $stdin.each_line do |line|
3982
+ BELParser::Parsers::Expression::Term.parse(line) { |obj|
3983
+ puts obj.inspect
3984
+ }
3985
+ end
3986
+ end
3987
+
3988
+ # vim: ft=ruby ts=2 sw=2:
3989
+ # encoding: utf-8