summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-05-02 18:16:17 +0200
committerPatrick Simianer <p@simianer.de>2014-05-02 18:16:17 +0200
commit2f65a33d9e55bd53de73389330a8c36665a98b03 (patch)
tree2794dffc455ad8b6437a3147836bb747eed59fc9
parent83115a068664ff0f8247b9afe356d7c49992129a (diff)
now~l
-rw-r--r--intersect.rb18
1 files changed, 14 insertions, 4 deletions
diff --git a/intersect.rb b/intersect.rb
index a4b574f..41ddfd6 100644
--- a/intersect.rb
+++ b/intersect.rb
@@ -110,12 +110,12 @@ s = g.rules.reject { |r| r.rhs.first.class!=NonTerminal}#.reject{|r| r.lhs.sym =
+
+
+
# parse
-puts "parse"
-def visit i, j, sz, active_chart, passive_chart, g, input
- puts "| #{i},#{j}"
- # SCAN
+def scan i, j, active_chart, input
active_chart.at(i,j).each { |item|
if item.rhs[item.dot].class == Terminal
if item.rhs[item.dot].w == input[item.span.left+item.dot].w
@@ -127,6 +127,16 @@ def visit i, j, sz, active_chart, passive_chart, g, input
end
end
}
+end
+
+
+puts "parse"
+def visit i, j, sz, active_chart, passive_chart, g, input
+ puts "| #{i},#{j}"
+
+ # SCAN
+ scan i, j, active_chart, input
+
1.upto(sz) { |span|
break if span==(j-i)