bel_parser 1.0.0.alpha.6 → 1.0.0.alpha.7

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.
@@ -16,60 +16,60 @@
16
16
  URL_KW = [uU][rR][lL];
17
17
 
18
18
  action annotation_keyword {
19
- @buffers[:define_annotation] = define_annotation()
19
+ @buffers[:annotation_definition] = annotation_definition()
20
20
  }
21
21
 
22
22
  action keyword {
23
- @buffers[:define_annotation] = define_annotation(
24
- keyword(@buffers[:ident]))
23
+ @buffers[:annotation_definition] = annotation_definition(
24
+ keyword(@buffers[:ident]))
25
25
  }
26
26
 
27
27
  action list_keyword {
28
- @buffers[:define_annotation] = @buffers[:define_annotation] << domain()
28
+ @buffers[:annotation_definition] = @buffers[:annotation_definition] << domain()
29
29
  }
30
30
 
31
31
  action pattern_keyword {
32
- @buffers[:define_annotation] = @buffers[:define_annotation] << domain(pattern())
32
+ @buffers[:annotation_definition] = @buffers[:annotation_definition] << domain(pattern())
33
33
  }
34
34
 
35
35
  action url_keyword {
36
- @buffers[:define_annotation] = @buffers[:define_annotation] << domain(url())
36
+ @buffers[:annotation_definition] = @buffers[:annotation_definition] << domain(url())
37
37
  }
38
38
 
39
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)
40
+ keyword, domain = @buffers[:annotation_definition].children
41
+ domain = domain(
42
+ domain.children[0] << @buffers[:string])
43
+ @buffers[:annotation_definition] = annotation_definition(keyword, domain)
44
44
  }
45
45
 
46
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)
47
+ keyword, domain = @buffers[:annotation_definition].children
48
+ domain = domain(
49
+ domain.children[0] << @buffers[:string])
50
+ @buffers[:annotation_definition] = annotation_definition(keyword, domain)
51
51
  }
52
52
 
53
53
  action list {
54
- keyword, domain = @buffers[:define_annotation].children
55
- domain = domain(
56
- @buffers[:list])
57
- @buffers[:define_annotation] = define_annotation(keyword, domain)
54
+ keyword, domain = @buffers[:annotation_definition].children
55
+ domain = domain(
56
+ @buffers[:list])
57
+ @buffers[:annotation_definition] = annotation_definition(keyword, domain)
58
58
  }
59
59
 
60
- action yield_define_annotation {
61
- yield @buffers[:define_annotation]
60
+ action yield_annotation_definition {
61
+ yield @buffers[:annotation_definition]
62
62
  }
63
63
 
64
64
  # Define FSM
65
- define_annotation :=
65
+ annotation_definition :=
66
66
  DEFINE_KW SP+ ANNOTATION_KW @annotation_keyword SP+
67
67
  IDENT %keyword SP+
68
68
  AS_KW SP+
69
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)
70
+ (LIST_KW %list_keyword SP+ LIST %list SP* NL @yield_annotation_definition) |
71
+ (PATTERN_KW %pattern_keyword SP+ STRING %pattern SP* NL @yield_annotation_definition) |
72
+ (URL_KW %url_keyword SP+ STRING %url SP* NL @yield_annotation_definition)
73
73
  );
74
74
  }%%
75
75
  =end
@@ -397,17 +397,17 @@ begin
397
397
  when 1 then
398
398
  begin
399
399
 
400
- @buffers[:define_namespace] = define_namespace()
400
+ @buffers[:namespace_definition] = namespace_definition()
401
401
  end
402
402
  when 6 then
403
403
  begin
404
404
 
405
- @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
405
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << domain(url())
406
406
  end
407
407
  when 12 then
408
408
  begin
409
409
 
410
- yield @buffers[:define_namespace]
410
+ yield @buffers[:namespace_definition]
411
411
  end
412
412
  when 3 then
413
413
  begin
@@ -434,7 +434,7 @@ begin
434
434
  end
435
435
  begin
436
436
 
437
- @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
437
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << keyword(@buffers[:ident])
438
438
  end
439
439
  when 13 then
440
440
  begin
@@ -474,10 +474,10 @@ begin
474
474
  end
475
475
  begin
476
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)
477
+ keyword, domain = @buffers[:namespace_definition].children
478
+ domain = domain(
479
+ domain.children[0] << @buffers[:string])
480
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
481
481
  end
482
482
  when 15 then
483
483
  begin
@@ -497,14 +497,14 @@ begin
497
497
  end
498
498
  begin
499
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)
500
+ keyword, domain = @buffers[:namespace_definition].children
501
+ domain = domain(
502
+ domain.children[0] << @buffers[:string])
503
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
504
504
  end
505
505
  begin
506
506
 
507
- yield @buffers[:define_namespace]
507
+ yield @buffers[:namespace_definition]
508
508
  end
509
509
  end
510
510
  end
@@ -966,17 +966,17 @@ begin
966
966
  when 1 then
967
967
  begin
968
968
 
969
- @buffers[:define_namespace] = define_namespace()
969
+ @buffers[:namespace_definition] = namespace_definition()
970
970
  end
971
971
  when 6 then
972
972
  begin
973
973
 
974
- @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
974
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << domain(url())
975
975
  end
976
976
  when 12 then
977
977
  begin
978
978
 
979
- yield @buffers[:define_namespace]
979
+ yield @buffers[:namespace_definition]
980
980
  end
981
981
  when 3 then
982
982
  begin
@@ -1003,7 +1003,7 @@ begin
1003
1003
  end
1004
1004
  begin
1005
1005
 
1006
- @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
1006
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << keyword(@buffers[:ident])
1007
1007
  end
1008
1008
  when 13 then
1009
1009
  begin
@@ -1043,10 +1043,10 @@ begin
1043
1043
  end
1044
1044
  begin
1045
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)
1046
+ keyword, domain = @buffers[:namespace_definition].children
1047
+ domain = domain(
1048
+ domain.children[0] << @buffers[:string])
1049
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
1050
1050
  end
1051
1051
  when 15 then
1052
1052
  begin
@@ -1066,14 +1066,14 @@ begin
1066
1066
  end
1067
1067
  begin
1068
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)
1069
+ keyword, domain = @buffers[:namespace_definition].children
1070
+ domain = domain(
1071
+ domain.children[0] << @buffers[:string])
1072
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
1073
1073
  end
1074
1074
  begin
1075
1075
 
1076
- yield @buffers[:define_namespace]
1076
+ yield @buffers[:namespace_definition]
1077
1077
  end
1078
1078
  end
1079
1079
  end
@@ -1586,17 +1586,17 @@ begin
1586
1586
  when 1 then
1587
1587
  begin
1588
1588
 
1589
- @buffers[:define_namespace] = define_namespace()
1589
+ @buffers[:namespace_definition] = namespace_definition()
1590
1590
  end
1591
1591
  when 6 then
1592
1592
  begin
1593
1593
 
1594
- @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
1594
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << domain(url())
1595
1595
  end
1596
1596
  when 12 then
1597
1597
  begin
1598
1598
 
1599
- yield @buffers[:define_namespace]
1599
+ yield @buffers[:namespace_definition]
1600
1600
  end
1601
1601
  when 3 then
1602
1602
  begin
@@ -1623,7 +1623,7 @@ begin
1623
1623
  end
1624
1624
  begin
1625
1625
 
1626
- @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
1626
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << keyword(@buffers[:ident])
1627
1627
  end
1628
1628
  when 13 then
1629
1629
  begin
@@ -1663,10 +1663,10 @@ begin
1663
1663
  end
1664
1664
  begin
1665
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)
1666
+ keyword, domain = @buffers[:namespace_definition].children
1667
+ domain = domain(
1668
+ domain.children[0] << @buffers[:string])
1669
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
1670
1670
  end
1671
1671
  when 15 then
1672
1672
  begin
@@ -1686,14 +1686,14 @@ begin
1686
1686
  end
1687
1687
  begin
1688
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)
1689
+ keyword, domain = @buffers[:namespace_definition].children
1690
+ domain = domain(
1691
+ domain.children[0] << @buffers[:string])
1692
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
1693
1693
  end
1694
1694
  begin
1695
1695
 
1696
- yield @buffers[:define_namespace]
1696
+ yield @buffers[:namespace_definition]
1697
1697
  end
1698
1698
  end
1699
1699
  end
@@ -13,26 +13,26 @@
13
13
  URL_KW = [uU][rR][lL];
14
14
 
15
15
  action namespace_keyword {
16
- @buffers[:define_namespace] = define_namespace()
16
+ @buffers[:namespace_definition] = namespace_definition()
17
17
  }
18
18
 
19
19
  action keyword {
20
- @buffers[:define_namespace] = @buffers[:define_namespace] << keyword(@buffers[:ident])
20
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << keyword(@buffers[:ident])
21
21
  }
22
22
 
23
23
  action url_keyword {
24
- @buffers[:define_namespace] = @buffers[:define_namespace] << domain(url())
24
+ @buffers[:namespace_definition] = @buffers[:namespace_definition] << domain(url())
25
25
  }
26
26
 
27
27
  action string {
28
- keyword, domain = @buffers[:define_namespace].children
29
- domain = domain(
30
- domain.children[0] << @buffers[:string])
31
- @buffers[:define_namespace] = define_namespace(keyword, domain)
28
+ keyword, domain = @buffers[:namespace_definition].children
29
+ domain = domain(
30
+ domain.children[0] << @buffers[:string])
31
+ @buffers[:namespace_definition] = namespace_definition(keyword, domain)
32
32
  }
33
33
 
34
- action yield_define_namespace {
35
- yield @buffers[:define_namespace]
34
+ action yield_namespace_definition {
35
+ yield @buffers[:namespace_definition]
36
36
  }
37
37
 
38
38
  # Define FSM
@@ -49,7 +49,7 @@
49
49
  SP+
50
50
  STRING %string
51
51
  SP*
52
- NL @yield_define_namespace;
52
+ NL @yield_namespace_definition;
53
53
  }%%
54
54
  =end
55
55
  # end: ragel
@@ -16,8 +16,8 @@ module BELParser
16
16
  :simple_statement,
17
17
  :observed_term,
18
18
  :nested_statement,
19
- :define_annotation,
20
- :define_namespace,
19
+ :annotation_definition,
20
+ :namespace_definition,
21
21
  :set,
22
22
  :unset,
23
23
  :blank_line,
@@ -39,10 +39,9 @@ module BELParser
39
39
  end
40
40
 
41
41
  if __FILE__ == $PROGRAM_NAME
42
- BELParser::Script::Parser.new.each($stdin) do |line_result|
43
- line_number, line, ast_results = line_result
42
+ BELParser::Script::Parser.new.each($stdin) do |(line_number, line, results)|
44
43
  puts "#{line_number}: #{line}"
45
- ast_results.each do |ast|
44
+ results.each do |ast|
46
45
  puts ast.to_s(1)
47
46
  end
48
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bel_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha.6
4
+ version: 1.0.0.alpha.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Bargnesi
@@ -27,7 +27,6 @@ files:
27
27
  - lib/bel_parser.rb
28
28
  - lib/bel_parser/ast_filter.rb
29
29
  - lib/bel_parser/ast_generator.rb
30
- - lib/bel_parser/ast_validator.rb
31
30
  - lib/bel_parser/expression/parser.rb
32
31
  - lib/bel_parser/expression/validator.rb
33
32
  - lib/bel_parser/language.rb
@@ -219,10 +218,8 @@ files:
219
218
  - lib/bel_parser/mixin/line_continuator.rb
220
219
  - lib/bel_parser/mixin/line_mapping.rb
221
220
  - lib/bel_parser/parser.rb
222
- - lib/bel_parser/parsers/ast/mapped_traversal.rb
223
221
  - lib/bel_parser/parsers/ast/node.rb
224
222
  - lib/bel_parser/parsers/ast/sexp.rb
225
- - lib/bel_parser/parsers/ast/traversal.rb
226
223
  - lib/bel_parser/parsers/bel_script.rb
227
224
  - lib/bel_parser/parsers/bel_script/define_annotation.rb
228
225
  - lib/bel_parser/parsers/bel_script/define_annotation.rl
@@ -1,40 +0,0 @@
1
- require_relative 'ast_generator'
2
- require_relative 'parsers/ast/node'
3
- require_relative 'parsers/ast/sexp'
4
- require_relative 'parsers/ast/mapped_traversal'
5
-
6
- module BELParser
7
- # ASTValidator applies observers to an AST traversal.
8
- class ASTValidator
9
- def initialize(observers: [])
10
- @observers = observers
11
- end
12
-
13
- def each(ast_source, &block)
14
- if block_given?
15
- traversal = observable_traversal
16
- ast_source.each do |(line_number, line, ast_results)|
17
- traverse(traversal, line_number, line, ast_results, &block)
18
- end
19
- else
20
- enum_for(:each, ast_source)
21
- end
22
- end
23
-
24
- def traverse(traversal, line_number, line, ast_results)
25
- ast_results.each do |ast|
26
- traversal.traverse(ast) do |node, results|
27
- yield([line_number, line, node, (results && results.compact)])
28
- end
29
- end
30
- end
31
-
32
- def observable_traversal
33
- traversal = BELParser::Parsers::AST::MappedTraversal.new
34
- @observers.each do |observer|
35
- traversal.add_observer(observer)
36
- end
37
- traversal
38
- end
39
- end
40
- end
@@ -1,36 +0,0 @@
1
- require 'observer'
2
-
3
- module BELParser
4
- module Parsers
5
- module AST
6
- # Traversal provides an observable walk that maps over the
7
- # {BELParser::Parsers::AST::Node AST node} and returns the results.
8
- # Alternatively, see {BELParser::Parsers::AST::Traversal}.
9
- class MappedTraversal
10
- include Observable
11
-
12
- def traverse(ast)
13
- if block_given?
14
- ast.traverse do |node|
15
- changed
16
- yield(node, notify_observers(node))
17
- end
18
- else
19
- enum_for(:traverse, ast)
20
- end
21
- end
22
-
23
- def notify_observers(*args)
24
- if defined? @observer_state && @observer_state
25
- @observer_state = false
26
- if defined? @observer_peers
27
- @observer_peers.map do |k, v|
28
- k.send v, *args
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,21 +0,0 @@
1
- require 'observer'
2
-
3
- module BELParser
4
- module Parsers
5
- module AST
6
- # Traversal provides an observable walk over an
7
- # {BELParser::Parsers::AST::Node AST node}. A result is not conveyed from the
8
- # walk (alternatively, see {BELParser::Parsers::AST::MappedTraversal}).
9
- class Traversal
10
- include Observable
11
-
12
- def traverse(ast)
13
- ast.traverse do |node|
14
- changed
15
- notify_observers(node)
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end