treetop 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/doc/contributing_and_planned_features.markdown +4 -0
- data/doc/site/contribute.html +7 -2
- data/doc/site/index.html +1 -1
- data/doc/site/pitfalls_and_advanced_techniques.html +1 -1
- data/doc/site/semantic_interpretation.html +1 -1
- data/doc/site/syntactic_recognition.html +1 -1
- data/doc/site/using_in_ruby.html +1 -1
- data/lib/treetop/compiler/metagrammar.rb +466 -404
- data/lib/treetop/compiler/metagrammar.treetop +1 -1
- data/lib/treetop/compiler/node_classes/atomic_expression.rb +3 -2
- data/lib/treetop/compiler/node_classes/character_class.rb +2 -6
- data/lib/treetop/runtime.rb +0 -2
- metadata +3 -5
- data/lib/treetop/runtime/node_cache.rb +0 -27
- data/lib/treetop/runtime/parse_cache.rb +0 -19
@@ -4,7 +4,7 @@ module Treetop
|
|
4
4
|
def compile(address, builder, parent_expression = nil)
|
5
5
|
super
|
6
6
|
|
7
|
-
builder.if__ "input.index(
|
7
|
+
builder.if__ "input.index(Regexp.new(#{single_quote(text_value)}), index) == index" do
|
8
8
|
assign_result "(#{node_class_name}).new(input, index...(index + 1))"
|
9
9
|
extend_result_with_inline_module
|
10
10
|
builder << "@index += 1"
|
@@ -14,10 +14,6 @@ module Treetop
|
|
14
14
|
assign_result 'nil'
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
|
-
def escaped_text_value
|
19
|
-
text_value.gsub(/\/|#(@|\$)/) {|match| "\\#{match}"}
|
20
|
-
end
|
21
17
|
end
|
22
18
|
end
|
23
|
-
end
|
19
|
+
end
|
data/lib/treetop/runtime.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
dir = File.dirname(__FILE__)
|
2
2
|
require "#{dir}/runtime/compiled_parser"
|
3
3
|
require "#{dir}/runtime/syntax_node"
|
4
|
-
require "#{dir}/runtime/node_cache"
|
5
|
-
require "#{dir}/runtime/parse_cache"
|
6
4
|
require "#{dir}/runtime/terminal_parse_failure"
|
7
5
|
require "#{dir}/runtime/interval_skip_list"
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: treetop
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.2.
|
7
|
-
date: 2008-02-
|
6
|
+
version: 1.2.2
|
7
|
+
date: 2008-02-29 00:00:00 -08:00
|
8
8
|
summary: A Ruby-based text parsing and interpretation DSL
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -69,8 +69,6 @@ files:
|
|
69
69
|
- lib/treetop/runtime/compiled_parser.rb
|
70
70
|
- lib/treetop/runtime/interval_skip_list
|
71
71
|
- lib/treetop/runtime/interval_skip_list.rb
|
72
|
-
- lib/treetop/runtime/node_cache.rb
|
73
|
-
- lib/treetop/runtime/parse_cache.rb
|
74
72
|
- lib/treetop/runtime/syntax_node.rb
|
75
73
|
- lib/treetop/runtime/terminal_parse_failure.rb
|
76
74
|
- lib/treetop/runtime/terminal_syntax_node.rb
|
@@ -130,7 +128,7 @@ dependencies:
|
|
130
128
|
version_requirement:
|
131
129
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
132
130
|
requirements:
|
133
|
-
- - "
|
131
|
+
- - "="
|
134
132
|
- !ruby/object:Gem::Version
|
135
133
|
version: 2.0.2
|
136
134
|
version:
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Treetop
|
2
|
-
module Runtime
|
3
|
-
class NodeCache
|
4
|
-
attr_reader :parse_results
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@parse_results = {}
|
8
|
-
end
|
9
|
-
|
10
|
-
def empty?
|
11
|
-
parse_results.empty?
|
12
|
-
end
|
13
|
-
|
14
|
-
def store(parse_result)
|
15
|
-
if parse_result.nil?
|
16
|
-
parse_results[parse_result.index] = parse_result
|
17
|
-
else
|
18
|
-
parse_results[parse_result.interval.begin] = parse_result
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def [](start_index)
|
23
|
-
parse_results[start_index]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Treetop
|
2
|
-
module Runtime
|
3
|
-
class ParseCache
|
4
|
-
attr_reader :node_caches
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@node_caches = {}
|
8
|
-
end
|
9
|
-
|
10
|
-
def [](parsing_expression)
|
11
|
-
node_caches[parsing_expression] ||= NodeCache.new
|
12
|
-
end
|
13
|
-
|
14
|
-
def empty?
|
15
|
-
node_caches.empty?
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|