bel_parser 1.0.0.alpha.38-java → 1.0.0.alpha.39-java

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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/bel_parser/ast_filter.rb +6 -2
  4. data/lib/bel_parser/parsers/ast/node.rb +113 -58
  5. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +4175 -3097
  6. data/lib/bel_parser/parsers/bel_script/define_annotation.rl +142 -49
  7. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +980 -461
  8. data/lib/bel_parser/parsers/bel_script/define_namespace.rl +79 -39
  9. data/lib/bel_parser/parsers/bel_script/set.rb +4878 -2743
  10. data/lib/bel_parser/parsers/bel_script/set.rl +114 -32
  11. data/lib/bel_parser/parsers/bel_script/set_document.rb +5839 -5292
  12. data/lib/bel_parser/parsers/bel_script/set_document.rl +130 -27
  13. data/lib/bel_parser/parsers/bel_script/unset.rb +321 -234
  14. data/lib/bel_parser/parsers/bel_script/unset.rl +49 -21
  15. data/lib/bel_parser/parsers/common/blank_line.rb +12 -11
  16. data/lib/bel_parser/parsers/common/blank_line.rl +12 -12
  17. data/lib/bel_parser/parsers/common/comment_line.rb +65 -40
  18. data/lib/bel_parser/parsers/common/comment_line.rl +26 -26
  19. data/lib/bel_parser/parsers/common/common.rl +60 -0
  20. data/lib/bel_parser/parsers/common/function.rb +319 -0
  21. data/lib/bel_parser/parsers/common/function.rl +149 -0
  22. data/lib/bel_parser/parsers/common/identifier.rb +72 -68
  23. data/lib/bel_parser/parsers/common/identifier.rl +73 -29
  24. data/lib/bel_parser/parsers/common/list.rb +1617 -1243
  25. data/lib/bel_parser/parsers/common/list.rl +120 -60
  26. data/lib/bel_parser/parsers/common/string.rb +114 -41
  27. data/lib/bel_parser/parsers/common/string.rl +91 -28
  28. data/lib/bel_parser/parsers/common.rb +1 -0
  29. data/lib/bel_parser/parsers/expression/comment.rb +70 -38
  30. data/lib/bel_parser/parsers/expression/comment.rl +37 -20
  31. data/lib/bel_parser/parsers/expression/nested_statement.rb +63116 -13958
  32. data/lib/bel_parser/parsers/expression/nested_statement.rl +53 -23
  33. data/lib/bel_parser/parsers/expression/observed_term.rb +32497 -5188
  34. data/lib/bel_parser/parsers/expression/observed_term.rl +25 -20
  35. data/lib/bel_parser/parsers/expression/parameter.rb +2861 -847
  36. data/lib/bel_parser/parsers/expression/parameter.rl +178 -21
  37. data/lib/bel_parser/parsers/expression/relationship.rb +73 -55
  38. data/lib/bel_parser/parsers/expression/relationship.rl +41 -23
  39. data/lib/bel_parser/parsers/expression/simple_statement.rb +42895 -7846
  40. data/lib/bel_parser/parsers/expression/simple_statement.rl +41 -24
  41. data/lib/bel_parser/parsers/expression/term.rb +16498 -2602
  42. data/lib/bel_parser/parsers/expression/term.rl +52 -35
  43. data/lib/bel_parser/parsers/line_parser.rb +1 -0
  44. data/lib/bel_parser/parsers/mixin/buffer.rb +4 -0
  45. data/lib/bel_parser/parsers/tracer.rb +19 -0
  46. data/lib/bel_parser/script/state/namespace_definition.rb +1 -0
  47. metadata +10 -7
@@ -6,50 +6,76 @@
6
6
  include 'simple_statement.rl';
7
7
 
8
8
  action statement_init {
9
+ trace('NESTED_STATEMENT statement_init')
9
10
  @buffers[:statement_stack] = [ statement() ]
10
11
  }
11
12
 
12
13
  action inner_statement_init {
14
+ trace('NESTED_STATEMENT inner_statement_init')
13
15
  @buffers[:statement_stack] << statement()
14
16
  }
15
17
 
16
18
  action ast_subject {
17
- @buffers[:statement_stack][-1] = @buffers[:statement_stack][-1] << @buffers[:subject]
19
+ trace('NESTED_STATEMENT ast_subject')
20
+ subject_node = @buffers[:subject]
21
+ stmt = @buffers[:statement_stack][-1] << subject_node
22
+ @buffers[:statement_stack][-1] = stmt
18
23
  }
19
24
 
20
25
  action ast_relationship {
21
- @buffers[:statement_stack][-1] = @buffers[:statement_stack][-1] << @buffers[:relationship]
26
+ trace('NESTED_STATEMENT ast_relationship')
27
+ rel_node = @buffers[:relationship]
28
+ stmt = @buffers[:statement_stack][-1] << rel_node
29
+ @buffers[:statement_stack][-1] = stmt
22
30
  }
23
31
 
24
32
  action ast_object {
25
- @buffers[:statement_stack][-1] = @buffers[:statement_stack][-1] << @buffers[:object]
33
+ trace('NESTED_STATEMENT ast_object')
34
+ object_node = object(@buffers[:object])
35
+ stmt = @buffers[:statement_stack][-1] << object_node
36
+ @buffers[:statement_stack][-1] = stmt
26
37
  }
27
38
 
28
39
  action statement_object_statement {
40
+ trace('NESTED_STATEMENT statement_object_statement')
29
41
  @buffers[:object] = @buffers[:statement_stack][-1]
30
42
  }
31
43
 
32
44
  action call_nested_statement {
45
+ trace('NESTED_STATEMENT call_nested_statement')
33
46
  fcall inner_statement;
34
47
  }
35
48
 
36
49
  action fret {
50
+ trace('NESTED_STATEMENT fret')
37
51
  inner_statement = @buffers[:statement_stack].pop
38
52
  @buffers[:object] = inner_statement
39
- @buffers[:statement_stack][-1] = @buffers[:statement_stack][-1] << object(inner_statement)
53
+ obj_node = object(inner_statement)
54
+ stmt = @buffers[:statement_stack][-1] << obj_node
55
+ @buffers[:statement_stack][-1] = stmt
56
+ nested_stmt = nested_statement(stmt)
57
+ nested_stmt.complete = true
58
+ @buffers[:nested_statement] = nested_stmt
40
59
  fret;
41
60
  }
42
61
 
62
+ action nested_statement_comment {
63
+ trace('NESTED_STATEMENT nested_statement_comment')
64
+ comment = @buffers[:comment]
65
+ @buffers[:nested_statement] =
66
+ nested_statement(
67
+ @buffers[:nested_statement].statement << comment)
68
+ }
69
+
43
70
  action yield_nested_statement {
44
- comment = @buffers[:comment] ||= comment(nil)
45
- statement = @buffers[:statement_stack][-1] << comment
46
- yield nested_statement(statement)
71
+ trace('NESTED_STATEMENT yield_nested_statement')
72
+ yield @buffers[:nested_statement]
47
73
  }
48
74
 
49
75
  inner_statement :=
50
76
  outer_term >inner_statement_init %statement_subject %ast_subject
51
77
  SP+
52
- RELATIONSHIP %ast_relationship
78
+ relationship %relationship_end %ast_relationship
53
79
  SP+
54
80
  (
55
81
  outer_term @statement_object @ast_object |
@@ -59,18 +85,19 @@
59
85
  outer_statement =
60
86
  outer_term >statement_init %statement_subject %ast_subject
61
87
  SP+
62
- RELATIONSHIP %ast_relationship
88
+ relationship %relationship_end %ast_relationship
63
89
  SP+
64
90
  '(' @call_nested_statement
65
91
  ')'
66
92
  # ')' @ast_object
67
93
  ;
68
94
 
95
+
69
96
  nested_statement :=
70
97
  outer_statement
71
98
  SP*
72
- COMMENT? %yield_nested_statement
73
- NL;
99
+ comment? %nested_statement_comment %yield_nested_statement
100
+ NL?;
74
101
  }%%
75
102
  =end
76
103
  # end: ragel
@@ -78,6 +105,7 @@
78
105
  require_relative '../ast/node'
79
106
  require_relative '../mixin/buffer'
80
107
  require_relative '../nonblocking_io_wrapper'
108
+ require_relative '../tracer'
81
109
 
82
110
  module BELParser
83
111
  module Parsers
@@ -103,27 +131,29 @@ module BELParser
103
131
  include Enumerable
104
132
  include BELParser::Parsers::Buffer
105
133
  include BELParser::Parsers::AST::Sexp
134
+ include BELParser::Parsers::Tracer
106
135
 
107
136
  def initialize(content)
108
137
  @content = content
109
- # begin: ragel
138
+ # begin: ragel
110
139
  %% write data;
111
- # end: ragel
140
+ # end: ragel
112
141
  end
113
142
 
114
143
  def each
115
- @buffers = {}
116
- eof = :ignored
117
- stack = []
118
- data = @content.unpack('C*')
119
- p = 0
120
- pe = data.length
121
- eof = data.length
122
-
123
- # begin: ragel
144
+ @buffers = {}
145
+ @incomplete = {}
146
+ eof = :ignored
147
+ stack = []
148
+ data = @content.unpack('C*')
149
+ p = 0
150
+ pe = data.length
151
+ eof = data.length
152
+
153
+ # begin: ragel
124
154
  %% write init;
125
155
  %% write exec;
126
- # end: ragel
156
+ # end: ragel
127
157
  end
128
158
  end
129
159
  end