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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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