bel_parser 1.0.0.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,141 @@
1
+ # begin: ragel
2
+ =begin
3
+ %%{
4
+ machine bel;
5
+
6
+ include 'common.rl';
7
+ include 'identifier.rl';
8
+ include 'string.rl';
9
+ include 'list.rl';
10
+
11
+ DEFINE_KW = [dD][eE][fF][iI][nN][eE];
12
+ ANNOTATION_KW = [aA][nN][nN][oO][tT][aA][tT][iI][oO][nN];
13
+ AS_KW = [aA][sS];
14
+ LIST_KW = [lL][iI][sS][tT];
15
+ PATTERN_KW = [pP][aA][tT][tT][eE][rR][nN];
16
+ URL_KW = [uU][rR][lL];
17
+
18
+ action annotation_keyword {
19
+ @buffers[:define_annotation] = define_annotation()
20
+ }
21
+
22
+ action keyword {
23
+ @buffers[:define_annotation] = define_annotation(
24
+ keyword(@buffers[:ident]))
25
+ }
26
+
27
+ action list_keyword {
28
+ @buffers[:define_annotation] = @buffers[:define_annotation] << domain()
29
+ }
30
+
31
+ action pattern_keyword {
32
+ @buffers[:define_annotation] = @buffers[:define_annotation] << domain(pattern())
33
+ }
34
+
35
+ action url_keyword {
36
+ @buffers[:define_annotation] = @buffers[:define_annotation] << domain(url())
37
+ }
38
+
39
+ action pattern {
40
+ keyword, domain = @buffers[:define_annotation].children
41
+ domain = domain(
42
+ domain.children[0] << @buffers[:string])
43
+ @buffers[:define_annotation] = define_annotation(keyword, domain)
44
+ }
45
+
46
+ action url {
47
+ keyword, domain = @buffers[:define_annotation].children
48
+ domain = domain(
49
+ domain.children[0] << @buffers[:string])
50
+ @buffers[:define_annotation] = define_annotation(keyword, domain)
51
+ }
52
+
53
+ action list {
54
+ keyword, domain = @buffers[:define_annotation].children
55
+ domain = domain(
56
+ @buffers[:list])
57
+ @buffers[:define_annotation] = define_annotation(keyword, domain)
58
+ }
59
+
60
+ action yield_define_annotation {
61
+ yield @buffers[:define_annotation]
62
+ }
63
+
64
+ # Define FSM
65
+ define_annotation :=
66
+ DEFINE_KW SP+ ANNOTATION_KW @annotation_keyword SP+
67
+ IDENT %keyword SP+
68
+ AS_KW SP+
69
+ (
70
+ (LIST_KW %list_keyword SP+ LIST %list SP* NL @yield_define_annotation) |
71
+ (PATTERN_KW %pattern_keyword SP+ STRING %pattern SP* NL @yield_define_annotation) |
72
+ (URL_KW %url_keyword SP+ STRING %url SP* NL @yield_define_annotation)
73
+ );
74
+ }%%
75
+ =end
76
+ # end: ragel
77
+
78
+ require_relative '../ast/node'
79
+ require_relative '../mixin/buffer'
80
+ require_relative '../nonblocking_io_wrapper'
81
+
82
+ module BELParser
83
+ module Parsers
84
+ module BELScript
85
+ module DefineAnnotation
86
+
87
+ class << self
88
+
89
+ MAX_LENGTH = 1024 * 128 # 128K
90
+
91
+ def parse(content)
92
+ return nil unless content
93
+
94
+ Parser.new(content).each do |obj|
95
+ yield obj
96
+ end
97
+ end
98
+ end
99
+
100
+ private
101
+
102
+ class Parser
103
+ include Enumerable
104
+ include BELParser::Parsers::Buffer
105
+ include BELParser::Parsers::AST::Sexp
106
+
107
+ def initialize(content)
108
+ @content = content
109
+ # begin: ragel
110
+ %% write data;
111
+ # end: ragel
112
+ end
113
+
114
+ def each
115
+ @buffers = {}
116
+ data = @content.unpack('C*')
117
+ p = 0
118
+ pe = data.length
119
+ eof = data.length
120
+
121
+ # begin: ragel
122
+ %% write init;
123
+ %% write exec;
124
+ # end: ragel
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
131
+
132
+ if __FILE__ == $0
133
+ $stdin.each_line do |line|
134
+ BELParser::Parsers::BELScript::DefineAnnotation.parse(line) { |obj|
135
+ puts obj.inspect
136
+ }
137
+ end
138
+ end
139
+
140
+ # vim: ft=ruby ts=2 sw=2:
141
+ # encoding: utf-8
@@ -0,0 +1,1780 @@
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, 68, 100, 69, 101,
11
+ 70, 102, 73, 105, 78,
12
+ 110, 69, 101, 9, 32,
13
+ 9, 110, 65, 97, 77, 109,
14
+ 69, 101, 83, 115, 80,
15
+ 112, 65, 97, 67, 99,
16
+ 69, 101, 9, 32, 9, 122,
17
+ 9, 122, 9, 97, 83,
18
+ 115, 9, 32, 9, 117,
19
+ 82, 114, 76, 108, 9, 32,
20
+ 9, 34, 34, 92, 9,
21
+ 32, 9, 32, 92, 92,
22
+ 48, 122, 10, 122, 34, 34,
23
+ 34, 92, 10, 10, 92,
24
+ 92, 0, 0, 0, 0,
25
+ 0, 0, 0
26
+ ]
27
+
28
+ class << self
29
+ attr_accessor :_bel_key_spans
30
+ private :_bel_key_spans, :_bel_key_spans=
31
+ end
32
+ self._bel_key_spans = [
33
+ 0, 33, 33, 33, 33, 33, 33, 24,
34
+ 102, 33, 33, 33, 33, 33, 33, 33,
35
+ 33, 24, 114, 114, 89, 33, 24, 109,
36
+ 33, 33, 24, 26, 59, 24, 24, 1,
37
+ 75, 113, 1, 59, 1, 1, 0, 0,
38
+ 0
39
+ ]
40
+
41
+ class << self
42
+ attr_accessor :_bel_index_offsets
43
+ private :_bel_index_offsets, :_bel_index_offsets=
44
+ end
45
+ self._bel_index_offsets = [
46
+ 0, 0, 34, 68, 102, 136, 170, 204,
47
+ 229, 332, 366, 400, 434, 468, 502, 536,
48
+ 570, 604, 629, 744, 859, 949, 983, 1008,
49
+ 1118, 1152, 1186, 1211, 1238, 1298, 1323, 1348,
50
+ 1350, 1426, 1540, 1542, 1602, 1604, 1606, 1607,
51
+ 1608
52
+ ]
53
+
54
+ class << self
55
+ attr_accessor :_bel_indicies
56
+ private :_bel_indicies, :_bel_indicies=
57
+ end
58
+ self._bel_indicies = [
59
+ 0, 1, 1, 1, 1, 1, 1, 1,
60
+ 1, 1, 1, 1, 1, 1, 1, 1,
61
+ 1, 1, 1, 1, 1, 1, 1, 1,
62
+ 1, 1, 1, 1, 1, 1, 1, 1,
63
+ 0, 1, 2, 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, 1, 1, 1, 1, 1,
67
+ 1, 1, 2, 1, 3, 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, 1, 1, 1, 1, 1,
71
+ 1, 1, 1, 1, 3, 1, 4, 1,
72
+ 1, 1, 1, 1, 1, 1, 1, 1,
73
+ 1, 1, 1, 1, 1, 1, 1, 1,
74
+ 1, 1, 1, 1, 1, 1, 1, 1,
75
+ 1, 1, 1, 1, 1, 1, 4, 1,
76
+ 5, 1, 1, 1, 1, 1, 1, 1,
77
+ 1, 1, 1, 1, 1, 1, 1, 1,
78
+ 1, 1, 1, 1, 1, 1, 1, 1,
79
+ 1, 1, 1, 1, 1, 1, 1, 1,
80
+ 5, 1, 6, 1, 1, 1, 1, 1,
81
+ 1, 1, 1, 1, 1, 1, 1, 1,
82
+ 1, 1, 1, 1, 1, 1, 1, 1,
83
+ 1, 1, 1, 1, 1, 1, 1, 1,
84
+ 1, 1, 6, 1, 7, 1, 1, 1,
85
+ 1, 1, 1, 1, 1, 1, 1, 1,
86
+ 1, 1, 1, 1, 1, 1, 1, 1,
87
+ 1, 1, 1, 7, 1, 7, 1, 1,
88
+ 1, 1, 1, 1, 1, 1, 1, 1,
89
+ 1, 1, 1, 1, 1, 1, 1, 1,
90
+ 1, 1, 1, 1, 7, 1, 1, 1,
91
+ 1, 1, 1, 1, 1, 1, 1, 1,
92
+ 1, 1, 1, 1, 1, 1, 1, 1,
93
+ 1, 1, 1, 1, 1, 1, 1, 1,
94
+ 1, 1, 1, 1, 1, 1, 1, 1,
95
+ 1, 1, 1, 1, 1, 1, 1, 1,
96
+ 1, 1, 8, 1, 1, 1, 1, 1,
97
+ 1, 1, 1, 1, 1, 1, 1, 1,
98
+ 1, 1, 1, 1, 1, 1, 1, 1,
99
+ 1, 1, 1, 1, 1, 1, 1, 1,
100
+ 1, 1, 8, 1, 9, 1, 1, 1,
101
+ 1, 1, 1, 1, 1, 1, 1, 1,
102
+ 1, 1, 1, 1, 1, 1, 1, 1,
103
+ 1, 1, 1, 1, 1, 1, 1, 1,
104
+ 1, 1, 1, 1, 9, 1, 10, 1,
105
+ 1, 1, 1, 1, 1, 1, 1, 1,
106
+ 1, 1, 1, 1, 1, 1, 1, 1,
107
+ 1, 1, 1, 1, 1, 1, 1, 1,
108
+ 1, 1, 1, 1, 1, 1, 10, 1,
109
+ 11, 1, 1, 1, 1, 1, 1, 1,
110
+ 1, 1, 1, 1, 1, 1, 1, 1,
111
+ 1, 1, 1, 1, 1, 1, 1, 1,
112
+ 1, 1, 1, 1, 1, 1, 1, 1,
113
+ 11, 1, 12, 1, 1, 1, 1, 1,
114
+ 1, 1, 1, 1, 1, 1, 1, 1,
115
+ 1, 1, 1, 1, 1, 1, 1, 1,
116
+ 1, 1, 1, 1, 1, 1, 1, 1,
117
+ 1, 1, 12, 1, 13, 1, 1, 1,
118
+ 1, 1, 1, 1, 1, 1, 1, 1,
119
+ 1, 1, 1, 1, 1, 1, 1, 1,
120
+ 1, 1, 1, 1, 1, 1, 1, 1,
121
+ 1, 1, 1, 1, 13, 1, 14, 1,
122
+ 1, 1, 1, 1, 1, 1, 1, 1,
123
+ 1, 1, 1, 1, 1, 1, 1, 1,
124
+ 1, 1, 1, 1, 1, 1, 1, 1,
125
+ 1, 1, 1, 1, 1, 1, 14, 1,
126
+ 15, 1, 1, 1, 1, 1, 1, 1,
127
+ 1, 1, 1, 1, 1, 1, 1, 1,
128
+ 1, 1, 1, 1, 1, 1, 1, 1,
129
+ 1, 1, 1, 1, 1, 1, 1, 1,
130
+ 15, 1, 16, 1, 1, 1, 1, 1,
131
+ 1, 1, 1, 1, 1, 1, 1, 1,
132
+ 1, 1, 1, 1, 1, 1, 1, 1,
133
+ 1, 1, 1, 1, 1, 1, 1, 1,
134
+ 1, 1, 16, 1, 17, 1, 1, 1,
135
+ 1, 1, 1, 1, 1, 1, 1, 1,
136
+ 1, 1, 1, 1, 1, 1, 1, 1,
137
+ 1, 1, 1, 17, 1, 17, 18, 18,
138
+ 18, 18, 18, 18, 18, 18, 18, 18,
139
+ 18, 18, 18, 18, 18, 18, 18, 18,
140
+ 18, 18, 18, 18, 17, 18, 18, 18,
141
+ 18, 18, 18, 18, 18, 18, 18, 18,
142
+ 18, 18, 18, 18, 19, 19, 19, 19,
143
+ 19, 19, 19, 19, 19, 19, 18, 18,
144
+ 18, 18, 18, 18, 18, 19, 19, 19,
145
+ 19, 19, 19, 19, 19, 19, 19, 19,
146
+ 19, 19, 19, 19, 19, 19, 19, 19,
147
+ 19, 19, 19, 19, 19, 19, 19, 18,
148
+ 18, 18, 18, 19, 18, 19, 19, 19,
149
+ 19, 19, 19, 19, 19, 19, 19, 19,
150
+ 19, 19, 19, 19, 19, 19, 19, 19,
151
+ 19, 19, 19, 19, 19, 19, 19, 18,
152
+ 20, 18, 18, 18, 18, 18, 18, 18,
153
+ 18, 18, 18, 18, 18, 18, 18, 18,
154
+ 18, 18, 18, 18, 18, 18, 18, 20,
155
+ 18, 18, 18, 18, 18, 18, 18, 18,
156
+ 18, 18, 18, 18, 18, 18, 18, 21,
157
+ 21, 21, 21, 21, 21, 21, 21, 21,
158
+ 21, 18, 18, 18, 18, 18, 18, 18,
159
+ 21, 21, 21, 21, 21, 21, 21, 21,
160
+ 21, 21, 21, 21, 21, 21, 21, 21,
161
+ 21, 21, 21, 21, 21, 21, 21, 21,
162
+ 21, 21, 18, 18, 18, 18, 21, 18,
163
+ 21, 21, 21, 21, 21, 21, 21, 21,
164
+ 21, 21, 21, 21, 21, 21, 21, 21,
165
+ 21, 21, 21, 21, 21, 21, 21, 21,
166
+ 21, 21, 18, 22, 1, 1, 1, 1,
167
+ 1, 1, 1, 1, 1, 1, 1, 1,
168
+ 1, 1, 1, 1, 1, 1, 1, 1,
169
+ 1, 1, 22, 1, 1, 1, 1, 1,
170
+ 1, 1, 1, 1, 1, 1, 1, 1,
171
+ 1, 1, 1, 1, 1, 1, 1, 1,
172
+ 1, 1, 1, 1, 1, 1, 1, 1,
173
+ 1, 1, 1, 23, 1, 1, 1, 1,
174
+ 1, 1, 1, 1, 1, 1, 1, 1,
175
+ 1, 1, 1, 1, 1, 1, 1, 1,
176
+ 1, 1, 1, 1, 1, 1, 1, 1,
177
+ 1, 1, 1, 23, 1, 24, 1, 1,
178
+ 1, 1, 1, 1, 1, 1, 1, 1,
179
+ 1, 1, 1, 1, 1, 1, 1, 1,
180
+ 1, 1, 1, 1, 1, 1, 1, 1,
181
+ 1, 1, 1, 1, 1, 24, 1, 25,
182
+ 1, 1, 1, 1, 1, 1, 1, 1,
183
+ 1, 1, 1, 1, 1, 1, 1, 1,
184
+ 1, 1, 1, 1, 1, 1, 25, 1,
185
+ 25, 1, 1, 1, 1, 1, 1, 1,
186
+ 1, 1, 1, 1, 1, 1, 1, 1,
187
+ 1, 1, 1, 1, 1, 1, 1, 25,
188
+ 1, 1, 1, 1, 1, 1, 1, 1,
189
+ 1, 1, 1, 1, 1, 1, 1, 1,
190
+ 1, 1, 1, 1, 1, 1, 1, 1,
191
+ 1, 1, 1, 1, 1, 1, 1, 1,
192
+ 1, 1, 1, 1, 1, 1, 1, 1,
193
+ 1, 1, 1, 1, 1, 1, 1, 1,
194
+ 1, 1, 1, 1, 26, 1, 1, 1,
195
+ 1, 1, 1, 1, 1, 1, 1, 1,
196
+ 1, 1, 1, 1, 1, 1, 1, 1,
197
+ 1, 1, 1, 1, 1, 1, 1, 1,
198
+ 1, 1, 1, 1, 26, 1, 27, 1,
199
+ 1, 1, 1, 1, 1, 1, 1, 1,
200
+ 1, 1, 1, 1, 1, 1, 1, 1,
201
+ 1, 1, 1, 1, 1, 1, 1, 1,
202
+ 1, 1, 1, 1, 1, 1, 27, 1,
203
+ 28, 1, 1, 1, 1, 1, 1, 1,
204
+ 1, 1, 1, 1, 1, 1, 1, 1,
205
+ 1, 1, 1, 1, 1, 1, 1, 1,
206
+ 1, 1, 1, 1, 1, 1, 1, 1,
207
+ 28, 1, 29, 1, 1, 1, 1, 1,
208
+ 1, 1, 1, 1, 1, 1, 1, 1,
209
+ 1, 1, 1, 1, 1, 1, 1, 1,
210
+ 1, 29, 1, 29, 30, 30, 30, 30,
211
+ 30, 30, 30, 30, 30, 30, 30, 30,
212
+ 30, 30, 30, 30, 30, 30, 30, 30,
213
+ 30, 30, 29, 30, 31, 30, 33, 32,
214
+ 32, 32, 32, 32, 32, 32, 32, 32,
215
+ 32, 32, 32, 32, 32, 32, 32, 32,
216
+ 32, 32, 32, 32, 32, 32, 32, 32,
217
+ 32, 32, 32, 32, 32, 32, 32, 32,
218
+ 32, 32, 32, 32, 32, 32, 32, 32,
219
+ 32, 32, 32, 32, 32, 32, 32, 32,
220
+ 32, 32, 32, 32, 32, 32, 32, 32,
221
+ 34, 32, 35, 36, 30, 30, 30, 30,
222
+ 30, 30, 30, 30, 30, 30, 30, 30,
223
+ 30, 30, 30, 30, 30, 30, 30, 30,
224
+ 30, 35, 30, 37, 38, 1, 1, 1,
225
+ 1, 1, 1, 1, 1, 1, 1, 1,
226
+ 1, 1, 1, 1, 1, 1, 1, 1,
227
+ 1, 1, 37, 1, 34, 32, 40, 40,
228
+ 40, 40, 40, 40, 40, 40, 40, 40,
229
+ 39, 39, 39, 39, 39, 39, 39, 40,
230
+ 40, 40, 40, 40, 40, 40, 40, 40,
231
+ 40, 40, 40, 40, 40, 40, 40, 40,
232
+ 40, 40, 40, 40, 40, 40, 40, 40,
233
+ 40, 39, 39, 39, 39, 40, 39, 40,
234
+ 40, 40, 40, 40, 40, 40, 40, 40,
235
+ 40, 40, 40, 40, 40, 40, 40, 40,
236
+ 40, 40, 40, 40, 40, 40, 40, 40,
237
+ 40, 39, 41, 39, 39, 39, 39, 39,
238
+ 39, 39, 39, 39, 39, 39, 39, 39,
239
+ 39, 39, 39, 39, 39, 39, 39, 39,
240
+ 39, 39, 39, 39, 39, 39, 39, 39,
241
+ 39, 39, 39, 39, 39, 39, 39, 39,
242
+ 42, 42, 42, 42, 42, 42, 42, 42,
243
+ 42, 42, 39, 39, 39, 39, 39, 39,
244
+ 39, 42, 42, 42, 42, 42, 42, 42,
245
+ 42, 42, 42, 42, 42, 42, 42, 42,
246
+ 42, 42, 42, 42, 42, 42, 42, 42,
247
+ 42, 42, 42, 39, 39, 39, 39, 42,
248
+ 39, 42, 42, 42, 42, 42, 42, 42,
249
+ 42, 42, 42, 42, 42, 42, 42, 42,
250
+ 42, 42, 42, 42, 42, 42, 42, 42,
251
+ 42, 42, 42, 39, 44, 43, 46, 45,
252
+ 45, 45, 45, 45, 45, 45, 45, 45,
253
+ 45, 45, 45, 45, 45, 45, 45, 45,
254
+ 45, 45, 45, 45, 45, 45, 45, 45,
255
+ 45, 45, 45, 45, 45, 45, 45, 45,
256
+ 45, 45, 45, 45, 45, 45, 45, 45,
257
+ 45, 45, 45, 45, 45, 45, 45, 45,
258
+ 45, 45, 45, 45, 45, 45, 45, 45,
259
+ 47, 45, 48, 43, 47, 45, 1, 1,
260
+ 1, 0
261
+ ]
262
+
263
+ class << self
264
+ attr_accessor :_bel_trans_targs
265
+ private :_bel_trans_targs, :_bel_trans_targs=
266
+ end
267
+ self._bel_trans_targs = [
268
+ 2, 0, 3, 4, 5, 6, 7, 8,
269
+ 9, 10, 11, 12, 13, 14, 15, 16,
270
+ 17, 18, 0, 19, 20, 19, 20, 21,
271
+ 22, 23, 24, 25, 26, 27, 0, 28,
272
+ 28, 29, 31, 30, 38, 30, 38, 0,
273
+ 33, 39, 33, 0, 35, 35, 36, 37,
274
+ 40
275
+ ]
276
+
277
+ class << self
278
+ attr_accessor :_bel_trans_actions
279
+ private :_bel_trans_actions, :_bel_trans_actions=
280
+ end
281
+ self._bel_trans_actions = [
282
+ 0, 0, 0, 0, 0, 0, 0, 0,
283
+ 0, 0, 0, 0, 0, 0, 0, 0,
284
+ 1, 0, 2, 3, 4, 5, 0, 0,
285
+ 0, 0, 0, 0, 6, 0, 7, 8,
286
+ 9, 9, 9, 10, 11, 0, 12, 13,
287
+ 3, 14, 5, 15, 8, 9, 9, 9,
288
+ 16
289
+ ]
290
+
291
+ class << self
292
+ attr_accessor :_bel_eof_actions
293
+ private :_bel_eof_actions, :_bel_eof_actions=
294
+ end
295
+ self._bel_eof_actions = [
296
+ 0, 0, 0, 0, 0, 0, 0, 0,
297
+ 0, 0, 0, 0, 0, 0, 0, 0,
298
+ 0, 0, 2, 2, 0, 0, 0, 0,
299
+ 0, 0, 0, 7, 7, 7, 0, 7,
300
+ 13, 13, 15, 15, 15, 15, 0, 0,
301
+ 0
302
+ ]
303
+
304
+ class << self
305
+ attr_accessor :bel_start
306
+ end
307
+ self.bel_start = 1;
308
+ class << self
309
+ attr_accessor :bel_first_final
310
+ end
311
+ self.bel_first_final = 38;
312
+ class << self
313
+ attr_accessor :bel_error
314
+ end
315
+ self.bel_error = 0;
316
+
317
+ class << self
318
+ attr_accessor :bel_en_ident
319
+ end
320
+ self.bel_en_ident = 32;
321
+ class << self
322
+ attr_accessor :bel_en_string
323
+ end
324
+ self.bel_en_string = 34;
325
+ class << self
326
+ attr_accessor :bel_en_define_namespace
327
+ end
328
+ self.bel_en_define_namespace = 1;
329
+
330
+
331
+ begin
332
+ p ||= 0
333
+ pe ||= data.length
334
+ cs = bel_start
335
+ end
336
+
337
+ begin
338
+ testEof = false
339
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
340
+ _goto_level = 0
341
+ _resume = 10
342
+ _eof_trans = 15
343
+ _again = 20
344
+ _test_eof = 30
345
+ _out = 40
346
+ while true
347
+ if _goto_level <= 0
348
+ if p == pe
349
+ _goto_level = _test_eof
350
+ next
351
+ end
352
+ if cs == 0
353
+ _goto_level = _out
354
+ next
355
+ end
356
+ end
357
+ if _goto_level <= _resume
358
+ _keys = cs << 1
359
+ _inds = _bel_index_offsets[cs]
360
+ _slen = _bel_key_spans[cs]
361
+ _wide = data[p].ord
362
+ _trans = if ( _slen > 0 &&
363
+ _bel_trans_keys[_keys] <= _wide &&
364
+ _wide <= _bel_trans_keys[_keys + 1]
365
+ ) then
366
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
367
+ else
368
+ _bel_indicies[ _inds + _slen ]
369
+ end
370
+ cs = _bel_trans_targs[_trans]
371
+ if _bel_trans_actions[_trans] != 0
372
+ case _bel_trans_actions[_trans]
373
+ when 5 then
374
+ begin
375
+
376
+ (@buffers[:ident] ||= []) << data[p].ord
377
+ end
378
+ when 2 then
379
+ begin
380
+
381
+ unless @buffers[:ident].is_a?(::AST::Node)
382
+ @buffers[:ident] ||= []
383
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
384
+ end
385
+ end
386
+ when 9 then
387
+ begin
388
+
389
+ (@buffers[:string] ||= []) << data[p].ord
390
+ end
391
+ when 7 then
392
+ begin
393
+
394
+ @buffers[:string] ||= []
395
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
396
+ end
397
+ when 1 then
398
+ begin
399
+
400
+ @buffers[:define_namespace] = define_namespace()
401
+ end
402
+ when 6 then
403
+ begin
404
+
405
+ @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
406
+ end
407
+ when 12 then
408
+ begin
409
+
410
+ yield @buffers[:define_namespace]
411
+ end
412
+ when 3 then
413
+ begin
414
+
415
+ @buffers[:ident] = []
416
+ end
417
+ begin
418
+
419
+ (@buffers[:ident] ||= []) << data[p].ord
420
+ end
421
+ when 14 then
422
+ begin
423
+
424
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
425
+ end
426
+ begin
427
+
428
+ yield @buffers[:ident]
429
+ end
430
+ when 4 then
431
+ begin
432
+
433
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
434
+ end
435
+ begin
436
+
437
+ @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
438
+ end
439
+ when 13 then
440
+ begin
441
+
442
+ unless @buffers[:ident].is_a?(::AST::Node)
443
+ @buffers[:ident] ||= []
444
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
445
+ end
446
+ end
447
+ begin
448
+
449
+ @buffers[:ident] ||= []
450
+ yield @buffers[:ident]
451
+ end
452
+ when 8 then
453
+ begin
454
+
455
+ @buffers[:string] = []
456
+ end
457
+ begin
458
+
459
+ (@buffers[:string] ||= []) << data[p].ord
460
+ end
461
+ when 16 then
462
+ begin
463
+
464
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
465
+ end
466
+ begin
467
+
468
+ yield @buffers[:string]
469
+ end
470
+ when 10 then
471
+ begin
472
+
473
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
474
+ end
475
+ begin
476
+
477
+ keyword, domain = @buffers[:define_namespace].children
478
+ domain = domain(
479
+ domain.children[0] << @buffers[:string])
480
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
481
+ end
482
+ when 15 then
483
+ begin
484
+
485
+ @buffers[:string] ||= []
486
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
487
+ end
488
+ begin
489
+
490
+ @buffers[:string] ||= []
491
+ yield @buffers[:string]
492
+ end
493
+ when 11 then
494
+ begin
495
+
496
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
497
+ end
498
+ begin
499
+
500
+ keyword, domain = @buffers[:define_namespace].children
501
+ domain = domain(
502
+ domain.children[0] << @buffers[:string])
503
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
504
+ end
505
+ begin
506
+
507
+ yield @buffers[:define_namespace]
508
+ end
509
+ end
510
+ end
511
+ end
512
+ if _goto_level <= _again
513
+ if cs == 0
514
+ _goto_level = _out
515
+ next
516
+ end
517
+ p += 1
518
+ if p != pe
519
+ _goto_level = _resume
520
+ next
521
+ end
522
+ end
523
+ if _goto_level <= _test_eof
524
+ if p == eof
525
+ case _bel_eof_actions[cs]
526
+ when 2 then
527
+ begin
528
+
529
+ unless @buffers[:ident].is_a?(::AST::Node)
530
+ @buffers[:ident] ||= []
531
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
532
+ end
533
+ end
534
+ when 7 then
535
+ begin
536
+
537
+ @buffers[:string] ||= []
538
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
539
+ end
540
+ when 13 then
541
+ begin
542
+
543
+ unless @buffers[:ident].is_a?(::AST::Node)
544
+ @buffers[:ident] ||= []
545
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
546
+ end
547
+ end
548
+ begin
549
+
550
+ @buffers[:ident] ||= []
551
+ yield @buffers[:ident]
552
+ end
553
+ when 15 then
554
+ begin
555
+
556
+ @buffers[:string] ||= []
557
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
558
+ end
559
+ begin
560
+
561
+ @buffers[:string] ||= []
562
+ yield @buffers[:string]
563
+ end
564
+ end
565
+ end
566
+
567
+ end
568
+ if _goto_level <= _out
569
+ break
570
+ end
571
+ end
572
+ end
573
+
574
+ class << self
575
+ attr_accessor :_bel_trans_keys
576
+ private :_bel_trans_keys, :_bel_trans_keys=
577
+ end
578
+ self._bel_trans_keys = [
579
+ 0, 0, 68, 100, 69, 101,
580
+ 70, 102, 73, 105, 78,
581
+ 110, 69, 101, 9, 32,
582
+ 9, 110, 65, 97, 77, 109,
583
+ 69, 101, 83, 115, 80,
584
+ 112, 65, 97, 67, 99,
585
+ 69, 101, 9, 32, 9, 122,
586
+ 9, 122, 9, 97, 83,
587
+ 115, 9, 32, 9, 117,
588
+ 82, 114, 76, 108, 9, 32,
589
+ 9, 34, 34, 92, 9,
590
+ 32, 9, 32, 92, 92,
591
+ 48, 122, 10, 122, 34, 34,
592
+ 34, 92, 10, 10, 92,
593
+ 92, 0, 0, 0, 0,
594
+ 0, 0, 0
595
+ ]
596
+
597
+ class << self
598
+ attr_accessor :_bel_key_spans
599
+ private :_bel_key_spans, :_bel_key_spans=
600
+ end
601
+ self._bel_key_spans = [
602
+ 0, 33, 33, 33, 33, 33, 33, 24,
603
+ 102, 33, 33, 33, 33, 33, 33, 33,
604
+ 33, 24, 114, 114, 89, 33, 24, 109,
605
+ 33, 33, 24, 26, 59, 24, 24, 1,
606
+ 75, 113, 1, 59, 1, 1, 0, 0,
607
+ 0
608
+ ]
609
+
610
+ class << self
611
+ attr_accessor :_bel_index_offsets
612
+ private :_bel_index_offsets, :_bel_index_offsets=
613
+ end
614
+ self._bel_index_offsets = [
615
+ 0, 0, 34, 68, 102, 136, 170, 204,
616
+ 229, 332, 366, 400, 434, 468, 502, 536,
617
+ 570, 604, 629, 744, 859, 949, 983, 1008,
618
+ 1118, 1152, 1186, 1211, 1238, 1298, 1323, 1348,
619
+ 1350, 1426, 1540, 1542, 1602, 1604, 1606, 1607,
620
+ 1608
621
+ ]
622
+
623
+ class << self
624
+ attr_accessor :_bel_indicies
625
+ private :_bel_indicies, :_bel_indicies=
626
+ end
627
+ self._bel_indicies = [
628
+ 0, 1, 1, 1, 1, 1, 1, 1,
629
+ 1, 1, 1, 1, 1, 1, 1, 1,
630
+ 1, 1, 1, 1, 1, 1, 1, 1,
631
+ 1, 1, 1, 1, 1, 1, 1, 1,
632
+ 0, 1, 2, 1, 1, 1, 1, 1,
633
+ 1, 1, 1, 1, 1, 1, 1, 1,
634
+ 1, 1, 1, 1, 1, 1, 1, 1,
635
+ 1, 1, 1, 1, 1, 1, 1, 1,
636
+ 1, 1, 2, 1, 3, 1, 1, 1,
637
+ 1, 1, 1, 1, 1, 1, 1, 1,
638
+ 1, 1, 1, 1, 1, 1, 1, 1,
639
+ 1, 1, 1, 1, 1, 1, 1, 1,
640
+ 1, 1, 1, 1, 3, 1, 4, 1,
641
+ 1, 1, 1, 1, 1, 1, 1, 1,
642
+ 1, 1, 1, 1, 1, 1, 1, 1,
643
+ 1, 1, 1, 1, 1, 1, 1, 1,
644
+ 1, 1, 1, 1, 1, 1, 4, 1,
645
+ 5, 1, 1, 1, 1, 1, 1, 1,
646
+ 1, 1, 1, 1, 1, 1, 1, 1,
647
+ 1, 1, 1, 1, 1, 1, 1, 1,
648
+ 1, 1, 1, 1, 1, 1, 1, 1,
649
+ 5, 1, 6, 1, 1, 1, 1, 1,
650
+ 1, 1, 1, 1, 1, 1, 1, 1,
651
+ 1, 1, 1, 1, 1, 1, 1, 1,
652
+ 1, 1, 1, 1, 1, 1, 1, 1,
653
+ 1, 1, 6, 1, 7, 1, 1, 1,
654
+ 1, 1, 1, 1, 1, 1, 1, 1,
655
+ 1, 1, 1, 1, 1, 1, 1, 1,
656
+ 1, 1, 1, 7, 1, 7, 1, 1,
657
+ 1, 1, 1, 1, 1, 1, 1, 1,
658
+ 1, 1, 1, 1, 1, 1, 1, 1,
659
+ 1, 1, 1, 1, 7, 1, 1, 1,
660
+ 1, 1, 1, 1, 1, 1, 1, 1,
661
+ 1, 1, 1, 1, 1, 1, 1, 1,
662
+ 1, 1, 1, 1, 1, 1, 1, 1,
663
+ 1, 1, 1, 1, 1, 1, 1, 1,
664
+ 1, 1, 1, 1, 1, 1, 1, 1,
665
+ 1, 1, 8, 1, 1, 1, 1, 1,
666
+ 1, 1, 1, 1, 1, 1, 1, 1,
667
+ 1, 1, 1, 1, 1, 1, 1, 1,
668
+ 1, 1, 1, 1, 1, 1, 1, 1,
669
+ 1, 1, 8, 1, 9, 1, 1, 1,
670
+ 1, 1, 1, 1, 1, 1, 1, 1,
671
+ 1, 1, 1, 1, 1, 1, 1, 1,
672
+ 1, 1, 1, 1, 1, 1, 1, 1,
673
+ 1, 1, 1, 1, 9, 1, 10, 1,
674
+ 1, 1, 1, 1, 1, 1, 1, 1,
675
+ 1, 1, 1, 1, 1, 1, 1, 1,
676
+ 1, 1, 1, 1, 1, 1, 1, 1,
677
+ 1, 1, 1, 1, 1, 1, 10, 1,
678
+ 11, 1, 1, 1, 1, 1, 1, 1,
679
+ 1, 1, 1, 1, 1, 1, 1, 1,
680
+ 1, 1, 1, 1, 1, 1, 1, 1,
681
+ 1, 1, 1, 1, 1, 1, 1, 1,
682
+ 11, 1, 12, 1, 1, 1, 1, 1,
683
+ 1, 1, 1, 1, 1, 1, 1, 1,
684
+ 1, 1, 1, 1, 1, 1, 1, 1,
685
+ 1, 1, 1, 1, 1, 1, 1, 1,
686
+ 1, 1, 12, 1, 13, 1, 1, 1,
687
+ 1, 1, 1, 1, 1, 1, 1, 1,
688
+ 1, 1, 1, 1, 1, 1, 1, 1,
689
+ 1, 1, 1, 1, 1, 1, 1, 1,
690
+ 1, 1, 1, 1, 13, 1, 14, 1,
691
+ 1, 1, 1, 1, 1, 1, 1, 1,
692
+ 1, 1, 1, 1, 1, 1, 1, 1,
693
+ 1, 1, 1, 1, 1, 1, 1, 1,
694
+ 1, 1, 1, 1, 1, 1, 14, 1,
695
+ 15, 1, 1, 1, 1, 1, 1, 1,
696
+ 1, 1, 1, 1, 1, 1, 1, 1,
697
+ 1, 1, 1, 1, 1, 1, 1, 1,
698
+ 1, 1, 1, 1, 1, 1, 1, 1,
699
+ 15, 1, 16, 1, 1, 1, 1, 1,
700
+ 1, 1, 1, 1, 1, 1, 1, 1,
701
+ 1, 1, 1, 1, 1, 1, 1, 1,
702
+ 1, 1, 1, 1, 1, 1, 1, 1,
703
+ 1, 1, 16, 1, 17, 1, 1, 1,
704
+ 1, 1, 1, 1, 1, 1, 1, 1,
705
+ 1, 1, 1, 1, 1, 1, 1, 1,
706
+ 1, 1, 1, 17, 1, 17, 18, 18,
707
+ 18, 18, 18, 18, 18, 18, 18, 18,
708
+ 18, 18, 18, 18, 18, 18, 18, 18,
709
+ 18, 18, 18, 18, 17, 18, 18, 18,
710
+ 18, 18, 18, 18, 18, 18, 18, 18,
711
+ 18, 18, 18, 18, 19, 19, 19, 19,
712
+ 19, 19, 19, 19, 19, 19, 18, 18,
713
+ 18, 18, 18, 18, 18, 19, 19, 19,
714
+ 19, 19, 19, 19, 19, 19, 19, 19,
715
+ 19, 19, 19, 19, 19, 19, 19, 19,
716
+ 19, 19, 19, 19, 19, 19, 19, 18,
717
+ 18, 18, 18, 19, 18, 19, 19, 19,
718
+ 19, 19, 19, 19, 19, 19, 19, 19,
719
+ 19, 19, 19, 19, 19, 19, 19, 19,
720
+ 19, 19, 19, 19, 19, 19, 19, 18,
721
+ 20, 18, 18, 18, 18, 18, 18, 18,
722
+ 18, 18, 18, 18, 18, 18, 18, 18,
723
+ 18, 18, 18, 18, 18, 18, 18, 20,
724
+ 18, 18, 18, 18, 18, 18, 18, 18,
725
+ 18, 18, 18, 18, 18, 18, 18, 21,
726
+ 21, 21, 21, 21, 21, 21, 21, 21,
727
+ 21, 18, 18, 18, 18, 18, 18, 18,
728
+ 21, 21, 21, 21, 21, 21, 21, 21,
729
+ 21, 21, 21, 21, 21, 21, 21, 21,
730
+ 21, 21, 21, 21, 21, 21, 21, 21,
731
+ 21, 21, 18, 18, 18, 18, 21, 18,
732
+ 21, 21, 21, 21, 21, 21, 21, 21,
733
+ 21, 21, 21, 21, 21, 21, 21, 21,
734
+ 21, 21, 21, 21, 21, 21, 21, 21,
735
+ 21, 21, 18, 22, 1, 1, 1, 1,
736
+ 1, 1, 1, 1, 1, 1, 1, 1,
737
+ 1, 1, 1, 1, 1, 1, 1, 1,
738
+ 1, 1, 22, 1, 1, 1, 1, 1,
739
+ 1, 1, 1, 1, 1, 1, 1, 1,
740
+ 1, 1, 1, 1, 1, 1, 1, 1,
741
+ 1, 1, 1, 1, 1, 1, 1, 1,
742
+ 1, 1, 1, 23, 1, 1, 1, 1,
743
+ 1, 1, 1, 1, 1, 1, 1, 1,
744
+ 1, 1, 1, 1, 1, 1, 1, 1,
745
+ 1, 1, 1, 1, 1, 1, 1, 1,
746
+ 1, 1, 1, 23, 1, 24, 1, 1,
747
+ 1, 1, 1, 1, 1, 1, 1, 1,
748
+ 1, 1, 1, 1, 1, 1, 1, 1,
749
+ 1, 1, 1, 1, 1, 1, 1, 1,
750
+ 1, 1, 1, 1, 1, 24, 1, 25,
751
+ 1, 1, 1, 1, 1, 1, 1, 1,
752
+ 1, 1, 1, 1, 1, 1, 1, 1,
753
+ 1, 1, 1, 1, 1, 1, 25, 1,
754
+ 25, 1, 1, 1, 1, 1, 1, 1,
755
+ 1, 1, 1, 1, 1, 1, 1, 1,
756
+ 1, 1, 1, 1, 1, 1, 1, 25,
757
+ 1, 1, 1, 1, 1, 1, 1, 1,
758
+ 1, 1, 1, 1, 1, 1, 1, 1,
759
+ 1, 1, 1, 1, 1, 1, 1, 1,
760
+ 1, 1, 1, 1, 1, 1, 1, 1,
761
+ 1, 1, 1, 1, 1, 1, 1, 1,
762
+ 1, 1, 1, 1, 1, 1, 1, 1,
763
+ 1, 1, 1, 1, 26, 1, 1, 1,
764
+ 1, 1, 1, 1, 1, 1, 1, 1,
765
+ 1, 1, 1, 1, 1, 1, 1, 1,
766
+ 1, 1, 1, 1, 1, 1, 1, 1,
767
+ 1, 1, 1, 1, 26, 1, 27, 1,
768
+ 1, 1, 1, 1, 1, 1, 1, 1,
769
+ 1, 1, 1, 1, 1, 1, 1, 1,
770
+ 1, 1, 1, 1, 1, 1, 1, 1,
771
+ 1, 1, 1, 1, 1, 1, 27, 1,
772
+ 28, 1, 1, 1, 1, 1, 1, 1,
773
+ 1, 1, 1, 1, 1, 1, 1, 1,
774
+ 1, 1, 1, 1, 1, 1, 1, 1,
775
+ 1, 1, 1, 1, 1, 1, 1, 1,
776
+ 28, 1, 29, 1, 1, 1, 1, 1,
777
+ 1, 1, 1, 1, 1, 1, 1, 1,
778
+ 1, 1, 1, 1, 1, 1, 1, 1,
779
+ 1, 29, 1, 29, 30, 30, 30, 30,
780
+ 30, 30, 30, 30, 30, 30, 30, 30,
781
+ 30, 30, 30, 30, 30, 30, 30, 30,
782
+ 30, 30, 29, 30, 31, 30, 33, 32,
783
+ 32, 32, 32, 32, 32, 32, 32, 32,
784
+ 32, 32, 32, 32, 32, 32, 32, 32,
785
+ 32, 32, 32, 32, 32, 32, 32, 32,
786
+ 32, 32, 32, 32, 32, 32, 32, 32,
787
+ 32, 32, 32, 32, 32, 32, 32, 32,
788
+ 32, 32, 32, 32, 32, 32, 32, 32,
789
+ 32, 32, 32, 32, 32, 32, 32, 32,
790
+ 34, 32, 35, 36, 30, 30, 30, 30,
791
+ 30, 30, 30, 30, 30, 30, 30, 30,
792
+ 30, 30, 30, 30, 30, 30, 30, 30,
793
+ 30, 35, 30, 37, 38, 1, 1, 1,
794
+ 1, 1, 1, 1, 1, 1, 1, 1,
795
+ 1, 1, 1, 1, 1, 1, 1, 1,
796
+ 1, 1, 37, 1, 34, 32, 40, 40,
797
+ 40, 40, 40, 40, 40, 40, 40, 40,
798
+ 39, 39, 39, 39, 39, 39, 39, 40,
799
+ 40, 40, 40, 40, 40, 40, 40, 40,
800
+ 40, 40, 40, 40, 40, 40, 40, 40,
801
+ 40, 40, 40, 40, 40, 40, 40, 40,
802
+ 40, 39, 39, 39, 39, 40, 39, 40,
803
+ 40, 40, 40, 40, 40, 40, 40, 40,
804
+ 40, 40, 40, 40, 40, 40, 40, 40,
805
+ 40, 40, 40, 40, 40, 40, 40, 40,
806
+ 40, 39, 41, 39, 39, 39, 39, 39,
807
+ 39, 39, 39, 39, 39, 39, 39, 39,
808
+ 39, 39, 39, 39, 39, 39, 39, 39,
809
+ 39, 39, 39, 39, 39, 39, 39, 39,
810
+ 39, 39, 39, 39, 39, 39, 39, 39,
811
+ 42, 42, 42, 42, 42, 42, 42, 42,
812
+ 42, 42, 39, 39, 39, 39, 39, 39,
813
+ 39, 42, 42, 42, 42, 42, 42, 42,
814
+ 42, 42, 42, 42, 42, 42, 42, 42,
815
+ 42, 42, 42, 42, 42, 42, 42, 42,
816
+ 42, 42, 42, 39, 39, 39, 39, 42,
817
+ 39, 42, 42, 42, 42, 42, 42, 42,
818
+ 42, 42, 42, 42, 42, 42, 42, 42,
819
+ 42, 42, 42, 42, 42, 42, 42, 42,
820
+ 42, 42, 42, 39, 44, 43, 46, 45,
821
+ 45, 45, 45, 45, 45, 45, 45, 45,
822
+ 45, 45, 45, 45, 45, 45, 45, 45,
823
+ 45, 45, 45, 45, 45, 45, 45, 45,
824
+ 45, 45, 45, 45, 45, 45, 45, 45,
825
+ 45, 45, 45, 45, 45, 45, 45, 45,
826
+ 45, 45, 45, 45, 45, 45, 45, 45,
827
+ 45, 45, 45, 45, 45, 45, 45, 45,
828
+ 47, 45, 48, 43, 47, 45, 1, 1,
829
+ 1, 0
830
+ ]
831
+
832
+ class << self
833
+ attr_accessor :_bel_trans_targs
834
+ private :_bel_trans_targs, :_bel_trans_targs=
835
+ end
836
+ self._bel_trans_targs = [
837
+ 2, 0, 3, 4, 5, 6, 7, 8,
838
+ 9, 10, 11, 12, 13, 14, 15, 16,
839
+ 17, 18, 0, 19, 20, 19, 20, 21,
840
+ 22, 23, 24, 25, 26, 27, 0, 28,
841
+ 28, 29, 31, 30, 38, 30, 38, 0,
842
+ 33, 39, 33, 0, 35, 35, 36, 37,
843
+ 40
844
+ ]
845
+
846
+ class << self
847
+ attr_accessor :_bel_trans_actions
848
+ private :_bel_trans_actions, :_bel_trans_actions=
849
+ end
850
+ self._bel_trans_actions = [
851
+ 0, 0, 0, 0, 0, 0, 0, 0,
852
+ 0, 0, 0, 0, 0, 0, 0, 0,
853
+ 1, 0, 2, 3, 4, 5, 0, 0,
854
+ 0, 0, 0, 0, 6, 0, 7, 8,
855
+ 9, 9, 9, 10, 11, 0, 12, 13,
856
+ 3, 14, 5, 15, 8, 9, 9, 9,
857
+ 16
858
+ ]
859
+
860
+ class << self
861
+ attr_accessor :_bel_eof_actions
862
+ private :_bel_eof_actions, :_bel_eof_actions=
863
+ end
864
+ self._bel_eof_actions = [
865
+ 0, 0, 0, 0, 0, 0, 0, 0,
866
+ 0, 0, 0, 0, 0, 0, 0, 0,
867
+ 0, 0, 2, 2, 0, 0, 0, 0,
868
+ 0, 0, 0, 7, 7, 7, 0, 7,
869
+ 13, 13, 15, 15, 15, 15, 0, 0,
870
+ 0
871
+ ]
872
+
873
+ class << self
874
+ attr_accessor :bel_start
875
+ end
876
+ self.bel_start = 1;
877
+ class << self
878
+ attr_accessor :bel_first_final
879
+ end
880
+ self.bel_first_final = 38;
881
+ class << self
882
+ attr_accessor :bel_error
883
+ end
884
+ self.bel_error = 0;
885
+
886
+ class << self
887
+ attr_accessor :bel_en_ident
888
+ end
889
+ self.bel_en_ident = 32;
890
+ class << self
891
+ attr_accessor :bel_en_string
892
+ end
893
+ self.bel_en_string = 34;
894
+ class << self
895
+ attr_accessor :bel_en_define_namespace
896
+ end
897
+ self.bel_en_define_namespace = 1;
898
+
899
+
900
+ begin
901
+ p ||= 0
902
+ pe ||= data.length
903
+ cs = bel_start
904
+ end
905
+
906
+ begin
907
+ testEof = false
908
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
909
+ _goto_level = 0
910
+ _resume = 10
911
+ _eof_trans = 15
912
+ _again = 20
913
+ _test_eof = 30
914
+ _out = 40
915
+ while true
916
+ if _goto_level <= 0
917
+ if p == pe
918
+ _goto_level = _test_eof
919
+ next
920
+ end
921
+ if cs == 0
922
+ _goto_level = _out
923
+ next
924
+ end
925
+ end
926
+ if _goto_level <= _resume
927
+ _keys = cs << 1
928
+ _inds = _bel_index_offsets[cs]
929
+ _slen = _bel_key_spans[cs]
930
+ _wide = data[p].ord
931
+ _trans = if ( _slen > 0 &&
932
+ _bel_trans_keys[_keys] <= _wide &&
933
+ _wide <= _bel_trans_keys[_keys + 1]
934
+ ) then
935
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
936
+ else
937
+ _bel_indicies[ _inds + _slen ]
938
+ end
939
+ cs = _bel_trans_targs[_trans]
940
+ if _bel_trans_actions[_trans] != 0
941
+ case _bel_trans_actions[_trans]
942
+ when 5 then
943
+ begin
944
+
945
+ (@buffers[:ident] ||= []) << data[p].ord
946
+ end
947
+ when 2 then
948
+ begin
949
+
950
+ unless @buffers[:ident].is_a?(::AST::Node)
951
+ @buffers[:ident] ||= []
952
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
953
+ end
954
+ end
955
+ when 9 then
956
+ begin
957
+
958
+ (@buffers[:string] ||= []) << data[p].ord
959
+ end
960
+ when 7 then
961
+ begin
962
+
963
+ @buffers[:string] ||= []
964
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
965
+ end
966
+ when 1 then
967
+ begin
968
+
969
+ @buffers[:define_namespace] = define_namespace()
970
+ end
971
+ when 6 then
972
+ begin
973
+
974
+ @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
975
+ end
976
+ when 12 then
977
+ begin
978
+
979
+ yield @buffers[:define_namespace]
980
+ end
981
+ when 3 then
982
+ begin
983
+
984
+ @buffers[:ident] = []
985
+ end
986
+ begin
987
+
988
+ (@buffers[:ident] ||= []) << data[p].ord
989
+ end
990
+ when 14 then
991
+ begin
992
+
993
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
994
+ end
995
+ begin
996
+
997
+ yield @buffers[:ident]
998
+ end
999
+ when 4 then
1000
+ begin
1001
+
1002
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1003
+ end
1004
+ begin
1005
+
1006
+ @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
1007
+ end
1008
+ when 13 then
1009
+ begin
1010
+
1011
+ unless @buffers[:ident].is_a?(::AST::Node)
1012
+ @buffers[:ident] ||= []
1013
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1014
+ end
1015
+ end
1016
+ begin
1017
+
1018
+ @buffers[:ident] ||= []
1019
+ yield @buffers[:ident]
1020
+ end
1021
+ when 8 then
1022
+ begin
1023
+
1024
+ @buffers[:string] = []
1025
+ end
1026
+ begin
1027
+
1028
+ (@buffers[:string] ||= []) << data[p].ord
1029
+ end
1030
+ when 16 then
1031
+ begin
1032
+
1033
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1034
+ end
1035
+ begin
1036
+
1037
+ yield @buffers[:string]
1038
+ end
1039
+ when 10 then
1040
+ begin
1041
+
1042
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1043
+ end
1044
+ begin
1045
+
1046
+ keyword, domain = @buffers[:define_namespace].children
1047
+ domain = domain(
1048
+ domain.children[0] << @buffers[:string])
1049
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
1050
+ end
1051
+ when 15 then
1052
+ begin
1053
+
1054
+ @buffers[:string] ||= []
1055
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1056
+ end
1057
+ begin
1058
+
1059
+ @buffers[:string] ||= []
1060
+ yield @buffers[:string]
1061
+ end
1062
+ when 11 then
1063
+ begin
1064
+
1065
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1066
+ end
1067
+ begin
1068
+
1069
+ keyword, domain = @buffers[:define_namespace].children
1070
+ domain = domain(
1071
+ domain.children[0] << @buffers[:string])
1072
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
1073
+ end
1074
+ begin
1075
+
1076
+ yield @buffers[:define_namespace]
1077
+ end
1078
+ end
1079
+ end
1080
+ end
1081
+ if _goto_level <= _again
1082
+ if cs == 0
1083
+ _goto_level = _out
1084
+ next
1085
+ end
1086
+ p += 1
1087
+ if p != pe
1088
+ _goto_level = _resume
1089
+ next
1090
+ end
1091
+ end
1092
+ if _goto_level <= _test_eof
1093
+ if p == eof
1094
+ case _bel_eof_actions[cs]
1095
+ when 2 then
1096
+ begin
1097
+
1098
+ unless @buffers[:ident].is_a?(::AST::Node)
1099
+ @buffers[:ident] ||= []
1100
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1101
+ end
1102
+ end
1103
+ when 7 then
1104
+ begin
1105
+
1106
+ @buffers[:string] ||= []
1107
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1108
+ end
1109
+ when 13 then
1110
+ begin
1111
+
1112
+ unless @buffers[:ident].is_a?(::AST::Node)
1113
+ @buffers[:ident] ||= []
1114
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1115
+ end
1116
+ end
1117
+ begin
1118
+
1119
+ @buffers[:ident] ||= []
1120
+ yield @buffers[:ident]
1121
+ end
1122
+ when 15 then
1123
+ begin
1124
+
1125
+ @buffers[:string] ||= []
1126
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1127
+ end
1128
+ begin
1129
+
1130
+ @buffers[:string] ||= []
1131
+ yield @buffers[:string]
1132
+ end
1133
+ end
1134
+ end
1135
+
1136
+ end
1137
+ if _goto_level <= _out
1138
+ break
1139
+ end
1140
+ end
1141
+ end
1142
+
1143
+
1144
+ =end
1145
+ # end: ragel
1146
+
1147
+ require_relative '../ast/node'
1148
+ require_relative '../mixin/buffer'
1149
+ require_relative '../nonblocking_io_wrapper'
1150
+
1151
+ module BELParser
1152
+ module Parsers
1153
+ module BELScript
1154
+ module DefineNamespace
1155
+
1156
+ class << self
1157
+
1158
+ MAX_LENGTH = 1024 * 128 # 128K
1159
+
1160
+ def parse(content)
1161
+ return nil unless content
1162
+
1163
+ Parser.new(content).each do |obj|
1164
+ yield obj
1165
+ end
1166
+ end
1167
+ end
1168
+
1169
+ private
1170
+
1171
+ class Parser
1172
+ include Enumerable
1173
+ include BELParser::Parsers::Buffer
1174
+ include BELParser::Parsers::AST::Sexp
1175
+
1176
+ def initialize(content)
1177
+ @content = content
1178
+ # begin: ragel
1179
+
1180
+ class << self
1181
+ attr_accessor :_bel_trans_keys
1182
+ private :_bel_trans_keys, :_bel_trans_keys=
1183
+ end
1184
+ self._bel_trans_keys = [
1185
+ 0, 0, 68, 100, 69, 101,
1186
+ 70, 102, 73, 105, 78,
1187
+ 110, 69, 101, 9, 32,
1188
+ 9, 110, 65, 97, 77, 109,
1189
+ 69, 101, 83, 115, 80,
1190
+ 112, 65, 97, 67, 99,
1191
+ 69, 101, 9, 32, 9, 122,
1192
+ 9, 122, 9, 97, 83,
1193
+ 115, 9, 32, 9, 117,
1194
+ 82, 114, 76, 108, 9, 32,
1195
+ 9, 34, 34, 92, 9,
1196
+ 32, 9, 32, 92, 92,
1197
+ 48, 122, 10, 122, 34, 34,
1198
+ 34, 92, 10, 10, 92,
1199
+ 92, 0, 0, 0, 0,
1200
+ 0, 0, 0
1201
+ ]
1202
+
1203
+ class << self
1204
+ attr_accessor :_bel_key_spans
1205
+ private :_bel_key_spans, :_bel_key_spans=
1206
+ end
1207
+ self._bel_key_spans = [
1208
+ 0, 33, 33, 33, 33, 33, 33, 24,
1209
+ 102, 33, 33, 33, 33, 33, 33, 33,
1210
+ 33, 24, 114, 114, 89, 33, 24, 109,
1211
+ 33, 33, 24, 26, 59, 24, 24, 1,
1212
+ 75, 113, 1, 59, 1, 1, 0, 0,
1213
+ 0
1214
+ ]
1215
+
1216
+ class << self
1217
+ attr_accessor :_bel_index_offsets
1218
+ private :_bel_index_offsets, :_bel_index_offsets=
1219
+ end
1220
+ self._bel_index_offsets = [
1221
+ 0, 0, 34, 68, 102, 136, 170, 204,
1222
+ 229, 332, 366, 400, 434, 468, 502, 536,
1223
+ 570, 604, 629, 744, 859, 949, 983, 1008,
1224
+ 1118, 1152, 1186, 1211, 1238, 1298, 1323, 1348,
1225
+ 1350, 1426, 1540, 1542, 1602, 1604, 1606, 1607,
1226
+ 1608
1227
+ ]
1228
+
1229
+ class << self
1230
+ attr_accessor :_bel_indicies
1231
+ private :_bel_indicies, :_bel_indicies=
1232
+ end
1233
+ self._bel_indicies = [
1234
+ 0, 1, 1, 1, 1, 1, 1, 1,
1235
+ 1, 1, 1, 1, 1, 1, 1, 1,
1236
+ 1, 1, 1, 1, 1, 1, 1, 1,
1237
+ 1, 1, 1, 1, 1, 1, 1, 1,
1238
+ 0, 1, 2, 1, 1, 1, 1, 1,
1239
+ 1, 1, 1, 1, 1, 1, 1, 1,
1240
+ 1, 1, 1, 1, 1, 1, 1, 1,
1241
+ 1, 1, 1, 1, 1, 1, 1, 1,
1242
+ 1, 1, 2, 1, 3, 1, 1, 1,
1243
+ 1, 1, 1, 1, 1, 1, 1, 1,
1244
+ 1, 1, 1, 1, 1, 1, 1, 1,
1245
+ 1, 1, 1, 1, 1, 1, 1, 1,
1246
+ 1, 1, 1, 1, 3, 1, 4, 1,
1247
+ 1, 1, 1, 1, 1, 1, 1, 1,
1248
+ 1, 1, 1, 1, 1, 1, 1, 1,
1249
+ 1, 1, 1, 1, 1, 1, 1, 1,
1250
+ 1, 1, 1, 1, 1, 1, 4, 1,
1251
+ 5, 1, 1, 1, 1, 1, 1, 1,
1252
+ 1, 1, 1, 1, 1, 1, 1, 1,
1253
+ 1, 1, 1, 1, 1, 1, 1, 1,
1254
+ 1, 1, 1, 1, 1, 1, 1, 1,
1255
+ 5, 1, 6, 1, 1, 1, 1, 1,
1256
+ 1, 1, 1, 1, 1, 1, 1, 1,
1257
+ 1, 1, 1, 1, 1, 1, 1, 1,
1258
+ 1, 1, 1, 1, 1, 1, 1, 1,
1259
+ 1, 1, 6, 1, 7, 1, 1, 1,
1260
+ 1, 1, 1, 1, 1, 1, 1, 1,
1261
+ 1, 1, 1, 1, 1, 1, 1, 1,
1262
+ 1, 1, 1, 7, 1, 7, 1, 1,
1263
+ 1, 1, 1, 1, 1, 1, 1, 1,
1264
+ 1, 1, 1, 1, 1, 1, 1, 1,
1265
+ 1, 1, 1, 1, 7, 1, 1, 1,
1266
+ 1, 1, 1, 1, 1, 1, 1, 1,
1267
+ 1, 1, 1, 1, 1, 1, 1, 1,
1268
+ 1, 1, 1, 1, 1, 1, 1, 1,
1269
+ 1, 1, 1, 1, 1, 1, 1, 1,
1270
+ 1, 1, 1, 1, 1, 1, 1, 1,
1271
+ 1, 1, 8, 1, 1, 1, 1, 1,
1272
+ 1, 1, 1, 1, 1, 1, 1, 1,
1273
+ 1, 1, 1, 1, 1, 1, 1, 1,
1274
+ 1, 1, 1, 1, 1, 1, 1, 1,
1275
+ 1, 1, 8, 1, 9, 1, 1, 1,
1276
+ 1, 1, 1, 1, 1, 1, 1, 1,
1277
+ 1, 1, 1, 1, 1, 1, 1, 1,
1278
+ 1, 1, 1, 1, 1, 1, 1, 1,
1279
+ 1, 1, 1, 1, 9, 1, 10, 1,
1280
+ 1, 1, 1, 1, 1, 1, 1, 1,
1281
+ 1, 1, 1, 1, 1, 1, 1, 1,
1282
+ 1, 1, 1, 1, 1, 1, 1, 1,
1283
+ 1, 1, 1, 1, 1, 1, 10, 1,
1284
+ 11, 1, 1, 1, 1, 1, 1, 1,
1285
+ 1, 1, 1, 1, 1, 1, 1, 1,
1286
+ 1, 1, 1, 1, 1, 1, 1, 1,
1287
+ 1, 1, 1, 1, 1, 1, 1, 1,
1288
+ 11, 1, 12, 1, 1, 1, 1, 1,
1289
+ 1, 1, 1, 1, 1, 1, 1, 1,
1290
+ 1, 1, 1, 1, 1, 1, 1, 1,
1291
+ 1, 1, 1, 1, 1, 1, 1, 1,
1292
+ 1, 1, 12, 1, 13, 1, 1, 1,
1293
+ 1, 1, 1, 1, 1, 1, 1, 1,
1294
+ 1, 1, 1, 1, 1, 1, 1, 1,
1295
+ 1, 1, 1, 1, 1, 1, 1, 1,
1296
+ 1, 1, 1, 1, 13, 1, 14, 1,
1297
+ 1, 1, 1, 1, 1, 1, 1, 1,
1298
+ 1, 1, 1, 1, 1, 1, 1, 1,
1299
+ 1, 1, 1, 1, 1, 1, 1, 1,
1300
+ 1, 1, 1, 1, 1, 1, 14, 1,
1301
+ 15, 1, 1, 1, 1, 1, 1, 1,
1302
+ 1, 1, 1, 1, 1, 1, 1, 1,
1303
+ 1, 1, 1, 1, 1, 1, 1, 1,
1304
+ 1, 1, 1, 1, 1, 1, 1, 1,
1305
+ 15, 1, 16, 1, 1, 1, 1, 1,
1306
+ 1, 1, 1, 1, 1, 1, 1, 1,
1307
+ 1, 1, 1, 1, 1, 1, 1, 1,
1308
+ 1, 1, 1, 1, 1, 1, 1, 1,
1309
+ 1, 1, 16, 1, 17, 1, 1, 1,
1310
+ 1, 1, 1, 1, 1, 1, 1, 1,
1311
+ 1, 1, 1, 1, 1, 1, 1, 1,
1312
+ 1, 1, 1, 17, 1, 17, 18, 18,
1313
+ 18, 18, 18, 18, 18, 18, 18, 18,
1314
+ 18, 18, 18, 18, 18, 18, 18, 18,
1315
+ 18, 18, 18, 18, 17, 18, 18, 18,
1316
+ 18, 18, 18, 18, 18, 18, 18, 18,
1317
+ 18, 18, 18, 18, 19, 19, 19, 19,
1318
+ 19, 19, 19, 19, 19, 19, 18, 18,
1319
+ 18, 18, 18, 18, 18, 19, 19, 19,
1320
+ 19, 19, 19, 19, 19, 19, 19, 19,
1321
+ 19, 19, 19, 19, 19, 19, 19, 19,
1322
+ 19, 19, 19, 19, 19, 19, 19, 18,
1323
+ 18, 18, 18, 19, 18, 19, 19, 19,
1324
+ 19, 19, 19, 19, 19, 19, 19, 19,
1325
+ 19, 19, 19, 19, 19, 19, 19, 19,
1326
+ 19, 19, 19, 19, 19, 19, 19, 18,
1327
+ 20, 18, 18, 18, 18, 18, 18, 18,
1328
+ 18, 18, 18, 18, 18, 18, 18, 18,
1329
+ 18, 18, 18, 18, 18, 18, 18, 20,
1330
+ 18, 18, 18, 18, 18, 18, 18, 18,
1331
+ 18, 18, 18, 18, 18, 18, 18, 21,
1332
+ 21, 21, 21, 21, 21, 21, 21, 21,
1333
+ 21, 18, 18, 18, 18, 18, 18, 18,
1334
+ 21, 21, 21, 21, 21, 21, 21, 21,
1335
+ 21, 21, 21, 21, 21, 21, 21, 21,
1336
+ 21, 21, 21, 21, 21, 21, 21, 21,
1337
+ 21, 21, 18, 18, 18, 18, 21, 18,
1338
+ 21, 21, 21, 21, 21, 21, 21, 21,
1339
+ 21, 21, 21, 21, 21, 21, 21, 21,
1340
+ 21, 21, 21, 21, 21, 21, 21, 21,
1341
+ 21, 21, 18, 22, 1, 1, 1, 1,
1342
+ 1, 1, 1, 1, 1, 1, 1, 1,
1343
+ 1, 1, 1, 1, 1, 1, 1, 1,
1344
+ 1, 1, 22, 1, 1, 1, 1, 1,
1345
+ 1, 1, 1, 1, 1, 1, 1, 1,
1346
+ 1, 1, 1, 1, 1, 1, 1, 1,
1347
+ 1, 1, 1, 1, 1, 1, 1, 1,
1348
+ 1, 1, 1, 23, 1, 1, 1, 1,
1349
+ 1, 1, 1, 1, 1, 1, 1, 1,
1350
+ 1, 1, 1, 1, 1, 1, 1, 1,
1351
+ 1, 1, 1, 1, 1, 1, 1, 1,
1352
+ 1, 1, 1, 23, 1, 24, 1, 1,
1353
+ 1, 1, 1, 1, 1, 1, 1, 1,
1354
+ 1, 1, 1, 1, 1, 1, 1, 1,
1355
+ 1, 1, 1, 1, 1, 1, 1, 1,
1356
+ 1, 1, 1, 1, 1, 24, 1, 25,
1357
+ 1, 1, 1, 1, 1, 1, 1, 1,
1358
+ 1, 1, 1, 1, 1, 1, 1, 1,
1359
+ 1, 1, 1, 1, 1, 1, 25, 1,
1360
+ 25, 1, 1, 1, 1, 1, 1, 1,
1361
+ 1, 1, 1, 1, 1, 1, 1, 1,
1362
+ 1, 1, 1, 1, 1, 1, 1, 25,
1363
+ 1, 1, 1, 1, 1, 1, 1, 1,
1364
+ 1, 1, 1, 1, 1, 1, 1, 1,
1365
+ 1, 1, 1, 1, 1, 1, 1, 1,
1366
+ 1, 1, 1, 1, 1, 1, 1, 1,
1367
+ 1, 1, 1, 1, 1, 1, 1, 1,
1368
+ 1, 1, 1, 1, 1, 1, 1, 1,
1369
+ 1, 1, 1, 1, 26, 1, 1, 1,
1370
+ 1, 1, 1, 1, 1, 1, 1, 1,
1371
+ 1, 1, 1, 1, 1, 1, 1, 1,
1372
+ 1, 1, 1, 1, 1, 1, 1, 1,
1373
+ 1, 1, 1, 1, 26, 1, 27, 1,
1374
+ 1, 1, 1, 1, 1, 1, 1, 1,
1375
+ 1, 1, 1, 1, 1, 1, 1, 1,
1376
+ 1, 1, 1, 1, 1, 1, 1, 1,
1377
+ 1, 1, 1, 1, 1, 1, 27, 1,
1378
+ 28, 1, 1, 1, 1, 1, 1, 1,
1379
+ 1, 1, 1, 1, 1, 1, 1, 1,
1380
+ 1, 1, 1, 1, 1, 1, 1, 1,
1381
+ 1, 1, 1, 1, 1, 1, 1, 1,
1382
+ 28, 1, 29, 1, 1, 1, 1, 1,
1383
+ 1, 1, 1, 1, 1, 1, 1, 1,
1384
+ 1, 1, 1, 1, 1, 1, 1, 1,
1385
+ 1, 29, 1, 29, 30, 30, 30, 30,
1386
+ 30, 30, 30, 30, 30, 30, 30, 30,
1387
+ 30, 30, 30, 30, 30, 30, 30, 30,
1388
+ 30, 30, 29, 30, 31, 30, 33, 32,
1389
+ 32, 32, 32, 32, 32, 32, 32, 32,
1390
+ 32, 32, 32, 32, 32, 32, 32, 32,
1391
+ 32, 32, 32, 32, 32, 32, 32, 32,
1392
+ 32, 32, 32, 32, 32, 32, 32, 32,
1393
+ 32, 32, 32, 32, 32, 32, 32, 32,
1394
+ 32, 32, 32, 32, 32, 32, 32, 32,
1395
+ 32, 32, 32, 32, 32, 32, 32, 32,
1396
+ 34, 32, 35, 36, 30, 30, 30, 30,
1397
+ 30, 30, 30, 30, 30, 30, 30, 30,
1398
+ 30, 30, 30, 30, 30, 30, 30, 30,
1399
+ 30, 35, 30, 37, 38, 1, 1, 1,
1400
+ 1, 1, 1, 1, 1, 1, 1, 1,
1401
+ 1, 1, 1, 1, 1, 1, 1, 1,
1402
+ 1, 1, 37, 1, 34, 32, 40, 40,
1403
+ 40, 40, 40, 40, 40, 40, 40, 40,
1404
+ 39, 39, 39, 39, 39, 39, 39, 40,
1405
+ 40, 40, 40, 40, 40, 40, 40, 40,
1406
+ 40, 40, 40, 40, 40, 40, 40, 40,
1407
+ 40, 40, 40, 40, 40, 40, 40, 40,
1408
+ 40, 39, 39, 39, 39, 40, 39, 40,
1409
+ 40, 40, 40, 40, 40, 40, 40, 40,
1410
+ 40, 40, 40, 40, 40, 40, 40, 40,
1411
+ 40, 40, 40, 40, 40, 40, 40, 40,
1412
+ 40, 39, 41, 39, 39, 39, 39, 39,
1413
+ 39, 39, 39, 39, 39, 39, 39, 39,
1414
+ 39, 39, 39, 39, 39, 39, 39, 39,
1415
+ 39, 39, 39, 39, 39, 39, 39, 39,
1416
+ 39, 39, 39, 39, 39, 39, 39, 39,
1417
+ 42, 42, 42, 42, 42, 42, 42, 42,
1418
+ 42, 42, 39, 39, 39, 39, 39, 39,
1419
+ 39, 42, 42, 42, 42, 42, 42, 42,
1420
+ 42, 42, 42, 42, 42, 42, 42, 42,
1421
+ 42, 42, 42, 42, 42, 42, 42, 42,
1422
+ 42, 42, 42, 39, 39, 39, 39, 42,
1423
+ 39, 42, 42, 42, 42, 42, 42, 42,
1424
+ 42, 42, 42, 42, 42, 42, 42, 42,
1425
+ 42, 42, 42, 42, 42, 42, 42, 42,
1426
+ 42, 42, 42, 39, 44, 43, 46, 45,
1427
+ 45, 45, 45, 45, 45, 45, 45, 45,
1428
+ 45, 45, 45, 45, 45, 45, 45, 45,
1429
+ 45, 45, 45, 45, 45, 45, 45, 45,
1430
+ 45, 45, 45, 45, 45, 45, 45, 45,
1431
+ 45, 45, 45, 45, 45, 45, 45, 45,
1432
+ 45, 45, 45, 45, 45, 45, 45, 45,
1433
+ 45, 45, 45, 45, 45, 45, 45, 45,
1434
+ 47, 45, 48, 43, 47, 45, 1, 1,
1435
+ 1, 0
1436
+ ]
1437
+
1438
+ class << self
1439
+ attr_accessor :_bel_trans_targs
1440
+ private :_bel_trans_targs, :_bel_trans_targs=
1441
+ end
1442
+ self._bel_trans_targs = [
1443
+ 2, 0, 3, 4, 5, 6, 7, 8,
1444
+ 9, 10, 11, 12, 13, 14, 15, 16,
1445
+ 17, 18, 0, 19, 20, 19, 20, 21,
1446
+ 22, 23, 24, 25, 26, 27, 0, 28,
1447
+ 28, 29, 31, 30, 38, 30, 38, 0,
1448
+ 33, 39, 33, 0, 35, 35, 36, 37,
1449
+ 40
1450
+ ]
1451
+
1452
+ class << self
1453
+ attr_accessor :_bel_trans_actions
1454
+ private :_bel_trans_actions, :_bel_trans_actions=
1455
+ end
1456
+ self._bel_trans_actions = [
1457
+ 0, 0, 0, 0, 0, 0, 0, 0,
1458
+ 0, 0, 0, 0, 0, 0, 0, 0,
1459
+ 1, 0, 2, 3, 4, 5, 0, 0,
1460
+ 0, 0, 0, 0, 6, 0, 7, 8,
1461
+ 9, 9, 9, 10, 11, 0, 12, 13,
1462
+ 3, 14, 5, 15, 8, 9, 9, 9,
1463
+ 16
1464
+ ]
1465
+
1466
+ class << self
1467
+ attr_accessor :_bel_eof_actions
1468
+ private :_bel_eof_actions, :_bel_eof_actions=
1469
+ end
1470
+ self._bel_eof_actions = [
1471
+ 0, 0, 0, 0, 0, 0, 0, 0,
1472
+ 0, 0, 0, 0, 0, 0, 0, 0,
1473
+ 0, 0, 2, 2, 0, 0, 0, 0,
1474
+ 0, 0, 0, 7, 7, 7, 0, 7,
1475
+ 13, 13, 15, 15, 15, 15, 0, 0,
1476
+ 0
1477
+ ]
1478
+
1479
+ class << self
1480
+ attr_accessor :bel_start
1481
+ end
1482
+ self.bel_start = 1;
1483
+ class << self
1484
+ attr_accessor :bel_first_final
1485
+ end
1486
+ self.bel_first_final = 38;
1487
+ class << self
1488
+ attr_accessor :bel_error
1489
+ end
1490
+ self.bel_error = 0;
1491
+
1492
+ class << self
1493
+ attr_accessor :bel_en_ident
1494
+ end
1495
+ self.bel_en_ident = 32;
1496
+ class << self
1497
+ attr_accessor :bel_en_string
1498
+ end
1499
+ self.bel_en_string = 34;
1500
+ class << self
1501
+ attr_accessor :bel_en_define_namespace
1502
+ end
1503
+ self.bel_en_define_namespace = 1;
1504
+
1505
+
1506
+ # end: ragel
1507
+ end
1508
+
1509
+ def each
1510
+ @buffers = {}
1511
+ stack = []
1512
+ data = @content.unpack('C*')
1513
+ p = 0
1514
+ pe = data.length
1515
+ eof = data.length
1516
+
1517
+ # begin: ragel
1518
+
1519
+ begin
1520
+ p ||= 0
1521
+ pe ||= data.length
1522
+ cs = bel_start
1523
+ end
1524
+
1525
+
1526
+ begin
1527
+ testEof = false
1528
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
1529
+ _goto_level = 0
1530
+ _resume = 10
1531
+ _eof_trans = 15
1532
+ _again = 20
1533
+ _test_eof = 30
1534
+ _out = 40
1535
+ while true
1536
+ if _goto_level <= 0
1537
+ if p == pe
1538
+ _goto_level = _test_eof
1539
+ next
1540
+ end
1541
+ if cs == 0
1542
+ _goto_level = _out
1543
+ next
1544
+ end
1545
+ end
1546
+ if _goto_level <= _resume
1547
+ _keys = cs << 1
1548
+ _inds = _bel_index_offsets[cs]
1549
+ _slen = _bel_key_spans[cs]
1550
+ _wide = data[p].ord
1551
+ _trans = if ( _slen > 0 &&
1552
+ _bel_trans_keys[_keys] <= _wide &&
1553
+ _wide <= _bel_trans_keys[_keys + 1]
1554
+ ) then
1555
+ _bel_indicies[ _inds + _wide - _bel_trans_keys[_keys] ]
1556
+ else
1557
+ _bel_indicies[ _inds + _slen ]
1558
+ end
1559
+ cs = _bel_trans_targs[_trans]
1560
+ if _bel_trans_actions[_trans] != 0
1561
+ case _bel_trans_actions[_trans]
1562
+ when 5 then
1563
+ begin
1564
+
1565
+ (@buffers[:ident] ||= []) << data[p].ord
1566
+ end
1567
+ when 2 then
1568
+ begin
1569
+
1570
+ unless @buffers[:ident].is_a?(::AST::Node)
1571
+ @buffers[:ident] ||= []
1572
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1573
+ end
1574
+ end
1575
+ when 9 then
1576
+ begin
1577
+
1578
+ (@buffers[:string] ||= []) << data[p].ord
1579
+ end
1580
+ when 7 then
1581
+ begin
1582
+
1583
+ @buffers[:string] ||= []
1584
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1585
+ end
1586
+ when 1 then
1587
+ begin
1588
+
1589
+ @buffers[:define_namespace] = define_namespace()
1590
+ end
1591
+ when 6 then
1592
+ begin
1593
+
1594
+ @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
1595
+ end
1596
+ when 12 then
1597
+ begin
1598
+
1599
+ yield @buffers[:define_namespace]
1600
+ end
1601
+ when 3 then
1602
+ begin
1603
+
1604
+ @buffers[:ident] = []
1605
+ end
1606
+ begin
1607
+
1608
+ (@buffers[:ident] ||= []) << data[p].ord
1609
+ end
1610
+ when 14 then
1611
+ begin
1612
+
1613
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1614
+ end
1615
+ begin
1616
+
1617
+ yield @buffers[:ident]
1618
+ end
1619
+ when 4 then
1620
+ begin
1621
+
1622
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
1623
+ end
1624
+ begin
1625
+
1626
+ @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
1627
+ end
1628
+ when 13 then
1629
+ begin
1630
+
1631
+ unless @buffers[:ident].is_a?(::AST::Node)
1632
+ @buffers[:ident] ||= []
1633
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1634
+ end
1635
+ end
1636
+ begin
1637
+
1638
+ @buffers[:ident] ||= []
1639
+ yield @buffers[:ident]
1640
+ end
1641
+ when 8 then
1642
+ begin
1643
+
1644
+ @buffers[:string] = []
1645
+ end
1646
+ begin
1647
+
1648
+ (@buffers[:string] ||= []) << data[p].ord
1649
+ end
1650
+ when 16 then
1651
+ begin
1652
+
1653
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1654
+ end
1655
+ begin
1656
+
1657
+ yield @buffers[:string]
1658
+ end
1659
+ when 10 then
1660
+ begin
1661
+
1662
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1663
+ end
1664
+ begin
1665
+
1666
+ keyword, domain = @buffers[:define_namespace].children
1667
+ domain = domain(
1668
+ domain.children[0] << @buffers[:string])
1669
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
1670
+ end
1671
+ when 15 then
1672
+ begin
1673
+
1674
+ @buffers[:string] ||= []
1675
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1676
+ end
1677
+ begin
1678
+
1679
+ @buffers[:string] ||= []
1680
+ yield @buffers[:string]
1681
+ end
1682
+ when 11 then
1683
+ begin
1684
+
1685
+ @buffers[:string] = string(utf8_string(@buffers[:string]))
1686
+ end
1687
+ begin
1688
+
1689
+ keyword, domain = @buffers[:define_namespace].children
1690
+ domain = domain(
1691
+ domain.children[0] << @buffers[:string])
1692
+ @buffers[:define_namespace] = define_namespace(keyword, domain)
1693
+ end
1694
+ begin
1695
+
1696
+ yield @buffers[:define_namespace]
1697
+ end
1698
+ end
1699
+ end
1700
+ end
1701
+ if _goto_level <= _again
1702
+ if cs == 0
1703
+ _goto_level = _out
1704
+ next
1705
+ end
1706
+ p += 1
1707
+ if p != pe
1708
+ _goto_level = _resume
1709
+ next
1710
+ end
1711
+ end
1712
+ if _goto_level <= _test_eof
1713
+ if p == eof
1714
+ case _bel_eof_actions[cs]
1715
+ when 2 then
1716
+ begin
1717
+
1718
+ unless @buffers[:ident].is_a?(::AST::Node)
1719
+ @buffers[:ident] ||= []
1720
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1721
+ end
1722
+ end
1723
+ when 7 then
1724
+ begin
1725
+
1726
+ @buffers[:string] ||= []
1727
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1728
+ end
1729
+ when 13 then
1730
+ begin
1731
+
1732
+ unless @buffers[:ident].is_a?(::AST::Node)
1733
+ @buffers[:ident] ||= []
1734
+ @buffers[:ident] = identifier(utf8_string(@buffers[:ident]).sub(/\n$/, ''))
1735
+ end
1736
+ end
1737
+ begin
1738
+
1739
+ @buffers[:ident] ||= []
1740
+ yield @buffers[:ident]
1741
+ end
1742
+ when 15 then
1743
+ begin
1744
+
1745
+ @buffers[:string] ||= []
1746
+ @buffers[:string] = string(utf8_string(@buffers[:string]).sub(/\n$/, ''))
1747
+ end
1748
+ begin
1749
+
1750
+ @buffers[:string] ||= []
1751
+ yield @buffers[:string]
1752
+ end
1753
+ end
1754
+ end
1755
+
1756
+ end
1757
+ if _goto_level <= _out
1758
+ break
1759
+ end
1760
+ end
1761
+ end
1762
+
1763
+ # end: ragel
1764
+ end
1765
+ end
1766
+ end
1767
+ end
1768
+ end
1769
+ end
1770
+
1771
+ if __FILE__ == $0
1772
+ $stdin.each_line do |line|
1773
+ BELParser::Parsers::BELScript::DefineNamespace.parse(line) { |obj|
1774
+ puts obj.inspect
1775
+ }
1776
+ end
1777
+ end
1778
+
1779
+ # vim: ft=ruby ts=2 sw=2:
1780
+ # encoding: utf-8