diff options
author | Patrick Simianer <p@simianer.de> | 2014-05-02 18:16:17 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2014-05-02 18:16:17 +0200 |
commit | 2f65a33d9e55bd53de73389330a8c36665a98b03 (patch) | |
tree | 2794dffc455ad8b6437a3147836bb747eed59fc9 | |
parent | 83115a068664ff0f8247b9afe356d7c49992129a (diff) |
now~l
-rw-r--r-- | intersect.rb | 18 |
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) |