rley 0.4.01 → 0.4.02

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE.txt +2 -2
  4. data/README.md +3 -3
  5. data/examples/NLP/mini_en_demo.rb +1 -1
  6. data/examples/data_formats/JSON/JSON_demo.rb +1 -0
  7. data/examples/data_formats/JSON/JSON_lexer.rb +4 -4
  8. data/examples/general/calc/calc_lexer.rb +2 -2
  9. data/lib/rley.rb +1 -1
  10. data/lib/rley/constants.rb +1 -1
  11. data/lib/rley/formatter/debug.rb +2 -2
  12. data/lib/rley/formatter/json.rb +4 -4
  13. data/lib/rley/parse_tree_visitor.rb +9 -9
  14. data/lib/rley/parser/base_parser.rb +1 -1
  15. data/lib/rley/parser/gfg_parsing.rb +9 -0
  16. data/lib/rley/parser/parse_tree_builder.rb +176 -126
  17. data/lib/rley/parser/parse_tree_factory.rb +57 -0
  18. data/lib/rley/ptree/non_terminal_node.rb +10 -9
  19. data/lib/rley/ptree/parse_tree_node.rb +10 -5
  20. data/lib/rley/ptree/terminal_node.rb +14 -6
  21. data/lib/rley/sppf/sppf_node.rb +2 -2
  22. data/lib/rley/{parser → tokens}/token.rb +1 -4
  23. data/lib/rley/{ptree → tokens}/token_range.rb +1 -1
  24. data/spec/rley/formatter/debug_spec.rb +16 -16
  25. data/spec/rley/formatter/json_spec.rb +8 -8
  26. data/spec/rley/parse_forest_visitor_spec.rb +1 -1
  27. data/spec/rley/parse_tree_visitor_spec.rb +28 -28
  28. data/spec/rley/parser/error_reason_spec.rb +3 -3
  29. data/spec/rley/parser/gfg_chart_spec.rb +2 -2
  30. data/spec/rley/parser/gfg_earley_parser_spec.rb +2 -2
  31. data/spec/rley/parser/gfg_parsing_spec.rb +2 -2
  32. data/spec/rley/parser/groucho_spec.rb +1 -1
  33. data/spec/rley/parser/parse_tracer_spec.rb +2 -2
  34. data/spec/rley/parser/parse_tree_builder_spec.rb +213 -140
  35. data/spec/rley/parser/parse_tree_factory_spec.rb +85 -0
  36. data/spec/rley/parser/parse_walker_factory_spec.rb +11 -10
  37. data/spec/rley/ptree/non_terminal_node_spec.rb +23 -20
  38. data/spec/rley/ptree/terminal_node_spec.rb +7 -12
  39. data/spec/rley/sppf/alternative_node_spec.rb +2 -2
  40. data/spec/rley/sppf/non_terminal_node_spec.rb +2 -2
  41. data/spec/rley/support/ambiguous_grammar_helper.rb +2 -2
  42. data/spec/rley/support/expectation_helper.rb +1 -1
  43. data/spec/rley/support/grammar_ambig01_helper.rb +2 -2
  44. data/spec/rley/support/grammar_b_expr_helper.rb +2 -2
  45. data/spec/rley/support/grammar_helper.rb +3 -3
  46. data/spec/rley/support/grammar_l0_helper.rb +2 -2
  47. data/spec/rley/support/grammar_pb_helper.rb +2 -2
  48. data/spec/rley/{ptree → tokens}/token_range_spec.rb +2 -2
  49. data/spec/rley/{parser → tokens}/token_spec.rb +2 -2
  50. metadata +11 -17
  51. data/lib/rley/parser/chart.rb +0 -82
  52. data/lib/rley/parser/earley_parser.rb +0 -203
  53. data/lib/rley/parser/parsing.rb +0 -265
  54. data/spec/rley/parser/chart_spec.rb +0 -120
  55. data/spec/rley/parser/earley_parser_spec.rb +0 -710
  56. data/spec/rley/parser/parsing_spec.rb +0 -408
@@ -0,0 +1,85 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ require_relative '../../../lib/rley/parser/gfg_earley_parser'
4
+
5
+ require_relative '../../../lib/rley/syntax/grammar_builder'
6
+ require_relative '../support/grammar_helper'
7
+ require_relative '../support/expectation_helper'
8
+
9
+ # Load the class under test
10
+ require_relative '../../../lib/rley/parser/parse_forest_factory'
11
+
12
+ module Rley # Open this namespace to avoid module qualifier prefixes
13
+ module Parser
14
+ describe ParseForestFactory do
15
+ include GrammarHelper # Mix-in with token factory method
16
+ include ExpectationHelper # Mix-in with expectation on parse entry sets
17
+
18
+ let(:sample_grammar) do
19
+ # Grammar based on paper from Elisabeth Scott
20
+ # "SPPF-Style Parsing From Earley Recognizers" in
21
+ # Notes in Theoretical Computer Science 203, (2008), pp. 53-67
22
+ # contains a hidden left recursion and a cycle
23
+ builder = Syntax::GrammarBuilder.new do
24
+ add_terminals('a', 'b')
25
+ rule 'Phi' => 'S'
26
+ rule 'S' => %w(A T)
27
+ rule 'S' => %w(a T)
28
+ rule 'A' => 'a'
29
+ rule 'A' => %w(B A)
30
+ rule 'B' => []
31
+ rule 'T' => %w(b b b)
32
+ end
33
+ builder.grammar
34
+ end
35
+
36
+ let(:sample_tokens) do
37
+ build_token_sequence(%w(a b b b), sample_grammar)
38
+ end
39
+
40
+ let(:sample_result) do
41
+ parser = Parser::GFGEarleyParser.new(sample_grammar)
42
+ parser.parse(sample_tokens)
43
+ end
44
+
45
+
46
+ subject do
47
+ ParseForestFactory.new(sample_result)
48
+ end
49
+
50
+ # Emit a text representation of the current path.
51
+ def path_to_s()
52
+ text_parts = subject.curr_path.map do |path_element|
53
+ path_element.to_string(0)
54
+ end
55
+ return text_parts.join('/')
56
+ end
57
+
58
+
59
+ context 'Initialization:' do
60
+ it 'should be created with a GFGParsing' do
61
+ expect { ParseForestFactory.new(sample_result) }.not_to raise_error
62
+ end
63
+
64
+ it 'should know the parse result' do
65
+ expect(subject.parsing).to eq(sample_result)
66
+ end
67
+ end
68
+
69
+ context 'Parse forest construction' do
70
+ it 'should build a parse forest' do
71
+ forest = subject.build_parse_forest
72
+ expect(forest).to be_kind_of(SPPF::ParseForest)
73
+ =begin
74
+ require 'yaml'
75
+ require_relative '../../../exp/lab/forest_representation'
76
+ File.open("forest.yml", "w") { |f| YAML.dump(forest, f) }
77
+ pen = ForestRepresentation.new
78
+ pen.generate_graph(forest, File.open("forest.dot", "w"))
79
+ =end
80
+ end
81
+ end # context
82
+ end # describe
83
+ end # module
84
+ end # module
85
+ # End of file
@@ -29,7 +29,7 @@ module Rley # Open this namespace to avoid module qualifier prefixes
29
29
  case entry
30
30
  when Parser::ParseEntry
31
31
  expect(entry.to_s).to eq(expectations[1])
32
- when Parser::Token
32
+ when Tokens::Token
33
33
  expect(entry.lexeme).to eq(expectations[1])
34
34
  end
35
35
  else
@@ -43,15 +43,16 @@ module Rley # Open this namespace to avoid module qualifier prefixes
43
43
  # "SPPF=Style Parsing From Earley Recognizers" in
44
44
  # Notes in Theoretical Computer Science 203, (2008), pp. 53-67
45
45
  # contains a hidden left recursion and a cycle
46
- builder = Syntax::GrammarBuilder.new
47
- builder.add_terminals('a', 'b')
48
- builder.add_production('Phi' => 'S')
49
- builder.add_production('S' => %w(A T))
50
- builder.add_production('S' => %w(a T))
51
- builder.add_production('A' => 'a')
52
- builder.add_production('A' => %w(B A))
53
- builder.add_production('B' => [])
54
- builder.add_production('T' => %w(b b b))
46
+ builder = Syntax::GrammarBuilder.new do
47
+ add_terminals('a', 'b')
48
+ rule'Phi' => 'S'
49
+ rule'S' => %w(A T)
50
+ rule'S' => %w(a T)
51
+ rule'A' => 'a'
52
+ rule'A' => %w(B A)
53
+ rule'B' => []
54
+ rule'T' => %w(b b b)
55
+ end
55
56
  builder.grammar
56
57
  end
57
58
 
@@ -10,7 +10,7 @@ module Rley # Open this namespace to avoid module qualifier prefixes
10
10
  describe NonTerminalNode do
11
11
  # Factory method. Generate a range from its boundary values.
12
12
  def range(low, high)
13
- return TokenRange.new(low: low, high: high)
13
+ return Tokens::TokenRange.new(low: low, high: high)
14
14
  end
15
15
 
16
16
  let(:sample_symbol) do
@@ -21,20 +21,25 @@ module Rley # Open this namespace to avoid module qualifier prefixes
21
21
  subject { NonTerminalNode.new(sample_symbol, sample_range) }
22
22
 
23
23
  context 'Initialization:' do
24
- it "shouldn't have children yet" do
25
- expect(subject.children).to be_empty
24
+ it "shouldn't have subnodes yet" do
25
+ expect(subject.subnodes).to be_empty
26
26
  end
27
27
  end # context
28
28
 
29
29
  context 'Provided services:' do
30
- it 'should accept the addition of children' do
30
+ def build_token(aLexeme, aSymbolName)
31
+ terminal = OpenStruct.new(name: aSymbolName)
32
+ return OpenStruct.new(lexeme: aLexeme, terminal: terminal)
33
+ end
34
+
35
+ it 'should accept the addition of subnodes' do
31
36
  child1 = double('first_child')
32
37
  child2 = double('second_child')
33
38
  child3 = double('third_child')
34
- expect { subject.add_child(child1) }.not_to raise_error
35
- subject.add_child(child2)
36
- subject.add_child(child3)
37
- expect(subject.children).to eq([child1, child2, child3])
39
+ expect { subject.add_subnode(child1) }.not_to raise_error
40
+ subject.add_subnode(child2)
41
+ subject.add_subnode(child3)
42
+ expect(subject.subnodes).to eq([child3, child2, child1])
38
43
  end
39
44
 
40
45
  it 'should provide a text representation of itself' do
@@ -42,25 +47,23 @@ module Rley # Open this namespace to avoid module qualifier prefixes
42
47
  expected_text = 'VP[0, 3]'
43
48
  expect(subject.to_string(0)).to eq(expected_text)
44
49
 
45
- # Case 2: with children
46
- verb = OpenStruct.new(name: 'Verb')
50
+ # Case 2: with subnodes
51
+ verb = build_token('catch', 'Verb')
47
52
  child_1_1 = TerminalNode.new(verb, range(0, 1))
48
53
  np = OpenStruct.new(name: 'NP')
49
54
  child_1_2 = NonTerminalNode.new(np, range(1, 3))
50
- det = OpenStruct.new(name: 'Determiner')
55
+ det = build_token('that', 'Determiner')
51
56
  child_2_1 = TerminalNode.new(det, range(1, 2))
52
57
  nominal = OpenStruct.new(name: 'Nominal')
53
58
  child_2_2 = NonTerminalNode.new(nominal, range(2, 3))
54
- noun = OpenStruct.new(name: 'Noun')
59
+ noun = build_token('bus', 'Noun')
55
60
  child_3_1 = TerminalNode.new(noun, range(2, 3))
56
- subject.add_child(child_1_1)
57
- subject.add_child(child_1_2)
58
- child_1_2.add_child(child_2_1)
59
- child_1_2.add_child(child_2_2)
60
- child_2_2.add_child(child_3_1)
61
- child_1_1.token = OpenStruct.new(lexeme: 'catch')
62
- child_2_1.token = OpenStruct.new(lexeme: 'that')
63
- child_3_1.token = OpenStruct.new(lexeme: 'bus')
61
+ # We reverse the sequence of subnode addition
62
+ subject.add_subnode(child_1_2)
63
+ subject.add_subnode(child_1_1)
64
+ child_1_2.add_subnode(child_2_2)
65
+ child_1_2.add_subnode(child_2_1)
66
+ child_2_2.add_subnode(child_3_1)
64
67
  expected_text = <<-SNIPPET
65
68
  VP[0, 3]
66
69
  +- Verb[0, 1]: 'catch'
@@ -7,28 +7,23 @@ require_relative '../../../lib/rley/ptree/terminal_node'
7
7
  module Rley # Open this namespace to avoid module qualifier prefixes
8
8
  module PTree # Open this namespace to avoid module qualifier prefixes
9
9
  describe TerminalNode do
10
- let(:sample_symbol) do
11
- OpenStruct.new(name: 'Noun')
10
+ let(:sample_symbol) { OpenStruct.new(name: 'Noun') }
11
+ let(:sample_token) do
12
+ OpenStruct.new(lexeme: 'world', terminal: sample_symbol)
12
13
  end
13
14
  let(:sample_range) { double('fake-range') }
14
15
 
15
- subject { TerminalNode.new(sample_symbol, sample_range) }
16
+ subject { TerminalNode.new(sample_token, sample_range) }
16
17
 
17
18
  context 'Initialization:' do
18
- it "shouldn't be already bound to a token" do
19
- expect(subject.token).to be_nil
19
+ it "should be bound to a token" do
20
+ expect(subject.token).to eq(sample_token)
20
21
  end
21
22
  end # context
22
23
 
23
24
  context 'Provided services:' do
24
25
  it 'should provide a text representation of itself' do
25
- # Case 1: not bound to a token
26
- expected_text = "Noun[?, ?]: '(nil)'"
27
- expect(subject.to_string(0)).to eq(expected_text)
28
-
29
- # Case 2: bound to token
30
- subject.token = OpenStruct.new(lexeme: 'peace')
31
- expected_text = "Noun[?, ?]: 'peace'"
26
+ expected_text = "Noun[?, ?]: 'world'"
32
27
  expect(subject.to_string(0)).to eq(expected_text)
33
28
  end
34
29
  end # context
@@ -4,7 +4,7 @@ require_relative '../../spec_helper'
4
4
  require_relative '../../../lib/rley/gfg/item_vertex'
5
5
  require_relative '../../../lib/rley/syntax/terminal'
6
6
  require_relative '../../../lib/rley/syntax/production'
7
- require_relative '../../../lib/rley/ptree/token_range'
7
+ require_relative '../../../lib/rley/tokens/token_range'
8
8
  require_relative '../../../lib/rley/parser/dotted_item'
9
9
 
10
10
  # Load the class under test
@@ -15,7 +15,7 @@ module Rley # Open this namespace to avoid module qualifier prefixes
15
15
  describe AlternativeNode do
16
16
  # Factory method. Generate a range from its boundary values.
17
17
  def range(low, high)
18
- return PTree::TokenRange.new(low: low, high: high)
18
+ return Tokens::TokenRange.new(low: low, high: high)
19
19
  end
20
20
 
21
21
  let(:t_a) { Syntax::Terminal.new('A') }
@@ -2,7 +2,7 @@ require 'ostruct'
2
2
  require_relative '../../spec_helper'
3
3
 
4
4
  require_relative '../../../lib/rley/syntax/non_terminal'
5
- require_relative '../../../lib/rley/ptree/token_range'
5
+ require_relative '../../../lib/rley/tokens/token_range'
6
6
 
7
7
  # Load the class under test
8
8
  require_relative '../../../lib/rley/sppf/non_terminal_node'
@@ -12,7 +12,7 @@ module Rley # Open this namespace to avoid module qualifier prefixes
12
12
  describe NonTerminalNode do
13
13
  # Factory method. Generate a range from its boundary values.
14
14
  def range(low, high)
15
- return PTree::TokenRange.new(low: low, high: high)
15
+ return Tokens::TokenRange.new(low: low, high: high)
16
16
  end
17
17
 
18
18
  let(:sample_symbol) do
@@ -1,6 +1,6 @@
1
1
  # Load the builder class
2
2
  require_relative '../../../lib/rley/syntax/grammar_builder'
3
- require_relative '../../../lib/rley/parser/token'
3
+ require_relative '../../../lib/rley/tokens/token'
4
4
 
5
5
 
6
6
  module AmbiguousGrammarHelper
@@ -29,7 +29,7 @@ module AmbiguousGrammarHelper
29
29
  msg = "Unknown input text '#{lexeme}'"
30
30
  raise StandardError, msg
31
31
  end
32
- Rley::Parser::Token.new(lexeme, terminal)
32
+ Rley::Tokens::Token.new(lexeme, terminal)
33
33
  end
34
34
 
35
35
  return tokens
@@ -1,5 +1,5 @@
1
1
  # Load the builder class
2
- require_relative '../../../lib/rley/parser/token'
2
+ require_relative '../../../lib/rley/tokens/token'
3
3
 
4
4
 
5
5
  # Mixin module implementing expectation helper methods.
@@ -1,6 +1,6 @@
1
1
  # Load the builder class
2
2
  require_relative '../../../lib/rley/syntax/grammar_builder'
3
- require_relative '../../../lib/rley/parser/token'
3
+ require_relative '../../../lib/rley/tokens/token'
4
4
 
5
5
 
6
6
  module GrammarAmbig01Helper
@@ -33,7 +33,7 @@ module GrammarAmbig01Helper
33
33
  msg = "Unknown input text '#{lexeme}'"
34
34
  raise StandardError, msg
35
35
  end
36
- Rley::Parser::Token.new(lexeme, terminal)
36
+ Rley::Tokens::Token.new(lexeme, terminal)
37
37
  end
38
38
 
39
39
  return tokens
@@ -1,6 +1,6 @@
1
1
  # Load the builder class
2
2
  require_relative '../../../lib/rley/syntax/grammar_builder'
3
- require_relative '../../../lib/rley/parser/token'
3
+ require_relative '../../../lib/rley/tokens/token'
4
4
 
5
5
 
6
6
  module GrammarBExprHelper
@@ -32,7 +32,7 @@ module GrammarBExprHelper
32
32
  msg = "Unknown input text '#{lexeme}'"
33
33
  raise StandardError, msg
34
34
  end
35
- Rley::Parser::Token.new(lexeme, terminal)
35
+ Rley::Tokens::Token.new(lexeme, terminal)
36
36
  end
37
37
 
38
38
  return tokens
@@ -1,5 +1,5 @@
1
1
  # Load the builder class
2
- require_relative '../../../lib/rley/parser/token'
2
+ require_relative '../../../lib/rley/tokens/token'
3
3
 
4
4
 
5
5
  # Mixin module implementing helper methods.
@@ -12,13 +12,13 @@ module GrammarHelper
12
12
  case lexeme
13
13
  when String
14
14
  terminal = aGrammar.name2symbol[lexeme]
15
- Rley::Parser::Token.new(lexeme, terminal)
15
+ Rley::Tokens::Token.new(lexeme, terminal)
16
16
 
17
17
  when Hash # lexeme is reality a Hash: literal => terminal name
18
18
  sub_array = lexeme.to_a
19
19
  sub_array.map do |(literal, name)|
20
20
  terminal = aGrammar.name2symbol[name]
21
- Rley::Parser::Token.new(literal, terminal)
21
+ Rley::Tokens::Token.new(literal, terminal)
22
22
  end
23
23
  end
24
24
  end
@@ -1,6 +1,6 @@
1
1
  # Load the builder class
2
2
  require_relative '../../../lib/rley/syntax/grammar_builder'
3
- require_relative '../../../lib/rley/parser/token'
3
+ require_relative '../../../lib/rley/tokens/token'
4
4
 
5
5
 
6
6
  module GrammarL0Helper
@@ -74,7 +74,7 @@ module GrammarL0Helper
74
74
  raise StandardError, "Word '#{word}' not found in lexicon"
75
75
  end
76
76
  terminal = aGrammar.name2symbol[term_name]
77
- Rley::Parser::Token.new(word, terminal)
77
+ Rley::Tokens::Token.new(word, terminal)
78
78
  end
79
79
 
80
80
  return tokens
@@ -1,6 +1,6 @@
1
1
  # Load the builder class
2
2
  require_relative '../../../lib/rley/syntax/grammar_builder'
3
- require_relative '../../../lib/rley/parser/token'
3
+ require_relative '../../../lib/rley/tokens/token'
4
4
 
5
5
 
6
6
  # Utility class.
@@ -39,7 +39,7 @@ class GrammarPBHelper
39
39
  msg = "Unknown input text '#{lexeme}'"
40
40
  raise StandardError, msg
41
41
  end
42
- Rley::Parser::Token.new(lexeme, terminal)
42
+ Rley::Tokens::Token.new(lexeme, terminal)
43
43
  end
44
44
 
45
45
  return tokens
@@ -1,10 +1,10 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
3
  # Load the class under test
4
- require_relative '../../../lib/rley/ptree/token_range'
4
+ require_relative '../../../lib/rley/tokens/token_range'
5
5
 
6
6
  module Rley # Open this namespace to avoid module qualifier prefixes
7
- module PTree # Open this namespace to avoid module qualifier prefixes
7
+ module Tokens # Open this namespace to avoid module qualifier prefixes
8
8
  describe TokenRange do
9
9
  let(:sample_range) { { low: 0, high: 5 } }
10
10
 
@@ -3,10 +3,10 @@ require_relative '../../spec_helper'
3
3
  require_relative '../../../lib/rley/syntax/terminal'
4
4
 
5
5
  # Load the class under test
6
- require_relative '../../../lib/rley/parser/token'
6
+ require_relative '../../../lib/rley/tokens/token'
7
7
 
8
8
  module Rley # Open this namespace to avoid module qualifier prefixes
9
- module Parser # Open this namespace to avoid module qualifier prefixes
9
+ module Tokens # Open this namespace to avoid module qualifier prefixes
10
10
  describe Token do
11
11
  let(:lexeme) { '"some text"' }
12
12
  let(:sample_terminal) { Syntax::Terminal.new('if') }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.01
4
+ version: 0.4.02
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Geshef
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-21 00:00:00.000000000 Z
11
+ date: 2017-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -159,9 +159,7 @@ files:
159
159
  - lib/rley/parse_forest_visitor.rb
160
160
  - lib/rley/parse_tree_visitor.rb
161
161
  - lib/rley/parser/base_parser.rb
162
- - lib/rley/parser/chart.rb
163
162
  - lib/rley/parser/dotted_item.rb
164
- - lib/rley/parser/earley_parser.rb
165
163
  - lib/rley/parser/error_reason.rb
166
164
  - lib/rley/parser/gfg_chart.rb
167
165
  - lib/rley/parser/gfg_earley_parser.rb
@@ -176,15 +174,13 @@ files:
176
174
  - lib/rley/parser/parse_state_tracker.rb
177
175
  - lib/rley/parser/parse_tracer.rb
178
176
  - lib/rley/parser/parse_tree_builder.rb
177
+ - lib/rley/parser/parse_tree_factory.rb
179
178
  - lib/rley/parser/parse_walker_factory.rb
180
- - lib/rley/parser/parsing.rb
181
179
  - lib/rley/parser/state_set.rb
182
- - lib/rley/parser/token.rb
183
180
  - lib/rley/ptree/non_terminal_node.rb
184
181
  - lib/rley/ptree/parse_tree.rb
185
182
  - lib/rley/ptree/parse_tree_node.rb
186
183
  - lib/rley/ptree/terminal_node.rb
187
- - lib/rley/ptree/token_range.rb
188
184
  - lib/rley/rley_error.rb
189
185
  - lib/rley/sppf/alternative_node.rb
190
186
  - lib/rley/sppf/composite_node.rb
@@ -203,6 +199,8 @@ files:
203
199
  - lib/rley/syntax/symbol_seq.rb
204
200
  - lib/rley/syntax/terminal.rb
205
201
  - lib/rley/syntax/verbatim_symbol.rb
202
+ - lib/rley/tokens/token.rb
203
+ - lib/rley/tokens/token_range.rb
206
204
  - spec/rley/formatter/debug_spec.rb
207
205
  - spec/rley/formatter/json_spec.rb
208
206
  - spec/rley/gfg/call_edge_spec.rb
@@ -220,9 +218,7 @@ files:
220
218
  - spec/rley/parse_forest_visitor_spec.rb
221
219
  - spec/rley/parse_tree_visitor_spec.rb
222
220
  - spec/rley/parser/ambiguous_parse_spec.rb
223
- - spec/rley/parser/chart_spec.rb
224
221
  - spec/rley/parser/dotted_item_spec.rb
225
- - spec/rley/parser/earley_parser_spec.rb
226
222
  - spec/rley/parser/error_reason_spec.rb
227
223
  - spec/rley/parser/gfg_chart_spec.rb
228
224
  - spec/rley/parser/gfg_earley_parser_spec.rb
@@ -236,15 +232,13 @@ files:
236
232
  - spec/rley/parser/parse_state_spec.rb
237
233
  - spec/rley/parser/parse_tracer_spec.rb
238
234
  - spec/rley/parser/parse_tree_builder_spec.rb
235
+ - spec/rley/parser/parse_tree_factory_spec.rb
239
236
  - spec/rley/parser/parse_walker_factory_spec.rb
240
- - spec/rley/parser/parsing_spec.rb
241
237
  - spec/rley/parser/state_set_spec.rb
242
- - spec/rley/parser/token_spec.rb
243
238
  - spec/rley/ptree/non_terminal_node_spec.rb
244
239
  - spec/rley/ptree/parse_tree_node_spec.rb
245
240
  - spec/rley/ptree/parse_tree_spec.rb
246
241
  - spec/rley/ptree/terminal_node_spec.rb
247
- - spec/rley/ptree/token_range_spec.rb
248
242
  - spec/rley/sppf/alternative_node_spec.rb
249
243
  - spec/rley/sppf/non_terminal_node_spec.rb
250
244
  - spec/rley/support/ambiguous_grammar_helper.rb
@@ -265,6 +259,8 @@ files:
265
259
  - spec/rley/syntax/symbol_seq_spec.rb
266
260
  - spec/rley/syntax/terminal_spec.rb
267
261
  - spec/rley/syntax/verbatim_symbol_spec.rb
262
+ - spec/rley/tokens/token_range_spec.rb
263
+ - spec/rley/tokens/token_spec.rb
268
264
  - spec/spec_helper.rb
269
265
  homepage: https://github.com/famished-tiger/Rley
270
266
  licenses:
@@ -310,9 +306,7 @@ test_files:
310
306
  - spec/rley/gfg/start_vertex_spec.rb
311
307
  - spec/rley/gfg/vertex_spec.rb
312
308
  - spec/rley/parser/ambiguous_parse_spec.rb
313
- - spec/rley/parser/chart_spec.rb
314
309
  - spec/rley/parser/dotted_item_spec.rb
315
- - spec/rley/parser/earley_parser_spec.rb
316
310
  - spec/rley/parser/error_reason_spec.rb
317
311
  - spec/rley/parser/gfg_chart_spec.rb
318
312
  - spec/rley/parser/gfg_earley_parser_spec.rb
@@ -326,17 +320,15 @@ test_files:
326
320
  - spec/rley/parser/parse_state_spec.rb
327
321
  - spec/rley/parser/parse_tracer_spec.rb
328
322
  - spec/rley/parser/parse_tree_builder_spec.rb
323
+ - spec/rley/parser/parse_tree_factory_spec.rb
329
324
  - spec/rley/parser/parse_walker_factory_spec.rb
330
- - spec/rley/parser/parsing_spec.rb
331
325
  - spec/rley/parser/state_set_spec.rb
332
- - spec/rley/parser/token_spec.rb
333
326
  - spec/rley/parse_forest_visitor_spec.rb
334
327
  - spec/rley/parse_tree_visitor_spec.rb
335
328
  - spec/rley/ptree/non_terminal_node_spec.rb
336
329
  - spec/rley/ptree/parse_tree_node_spec.rb
337
330
  - spec/rley/ptree/parse_tree_spec.rb
338
331
  - spec/rley/ptree/terminal_node_spec.rb
339
- - spec/rley/ptree/token_range_spec.rb
340
332
  - spec/rley/sppf/alternative_node_spec.rb
341
333
  - spec/rley/sppf/non_terminal_node_spec.rb
342
334
  - spec/rley/syntax/grammar_builder_spec.rb
@@ -348,3 +340,5 @@ test_files:
348
340
  - spec/rley/syntax/symbol_seq_spec.rb
349
341
  - spec/rley/syntax/terminal_spec.rb
350
342
  - spec/rley/syntax/verbatim_symbol_spec.rb
343
+ - spec/rley/tokens/token_range_spec.rb
344
+ - spec/rley/tokens/token_spec.rb