lib/cucumber/treetop_parser/feature_no.rb in cucumber-0.1.6 vs lib/cucumber/treetop_parser/feature_no.rb in cucumber-0.1.7

- old
+ new

@@ -1,35 +1,35 @@ -module Cucumber -module TreetopParser +module Cucumber #:nodoc: +module TreetopParser #:nodoc: -module Feature +module Feature #:nodoc: include Treetop::Runtime - def root + def root #:nodoc: @root || :root end - module Root0 - def header + module Root0 #:nodoc: + def header #:nodoc: elements[0] end - def scenario_sequence + def scenario_sequence #:nodoc: elements[1] end end - module Root1 - def compile + module Root1 #:nodoc: + def compile #:nodoc: feature = Tree::Feature.new(header.text_value.strip) scenario_sequence.compile(feature) feature end end - def _nt_root + def _nt_root #:nodoc: start_index = index if node_cache[:root].has_key?(index) cached = node_cache[:root][index] @index = cached.interval.end if cached return cached @@ -63,14 +63,14 @@ node_cache[:root][start_index] = r0 return r0 end - module Header0 + module Header0 #:nodoc: end - def _nt_header + def _nt_header #:nodoc: start_index = index if node_cache[:header].has_key?(index) cached = node_cache[:header][index] @index = cached.interval.end if cached return cached @@ -121,43 +121,43 @@ node_cache[:header][start_index] = r0 return r0 end - module ScenarioSequence0 - def space + module ScenarioSequence0 #:nodoc: + def space #:nodoc: elements[0] end - def scenario_or_table + def scenario_or_table #:nodoc: elements[1] end end - module ScenarioSequence1 - def head + module ScenarioSequence1 #:nodoc: + def head #:nodoc: elements[0] end - def tail + def tail #:nodoc: elements[1] end end - module ScenarioSequence2 - def compile(feature) + module ScenarioSequence2 #:nodoc: + def compile(feature) #:nodoc: ([head] + tail).each do |scenario_or_table| scenario_or_table.compile(feature) if scenario_or_table.respond_to?(:compile) end end - def tail + def tail #:nodoc: super.elements.map { |elt| elt.scenario_or_table } end end - def _nt_scenario_sequence + def _nt_scenario_sequence #:nodoc: start_index = index if node_cache[:scenario_sequence].has_key?(index) cached = node_cache[:scenario_sequence][index] @index = cached.interval.end if cached return cached @@ -209,49 +209,49 @@ node_cache[:scenario_sequence][start_index] = r0 return r0 end - module Scenario0 - def space + module Scenario0 #:nodoc: + def space #:nodoc: elements[0] end - def step_sequence + def step_sequence #:nodoc: elements[1] end end - module Scenario1 - def scenario_keyword + module Scenario1 #:nodoc: + def scenario_keyword #:nodoc: elements[0] end - def space + def space #:nodoc: elements[1] end - def name + def name #:nodoc: elements[2] end - def steps + def steps #:nodoc: elements[3] end end - module Scenario2 - def compile(feature) + module Scenario2 #:nodoc: + def compile(feature) #:nodoc: scenario = feature.add_scenario(name.text_value.strip) steps.step_sequence.compile(scenario) if steps.respond_to?(:step_sequence) # TODO - GET RID OF THIS last_scenario NASTINESS # Use a better datastructure, like a linked list... Feature.last_scenario = scenario end end - def _nt_scenario + def _nt_scenario #:nodoc: start_index = index if node_cache[:scenario].has_key?(index) cached = node_cache[:scenario][index] @index = cached.interval.end if cached return cached @@ -302,11 +302,11 @@ node_cache[:scenario][start_index] = r0 return r0 end - def _nt_scenario_or_table + def _nt_scenario_or_table #:nodoc: start_index = index if node_cache[:scenario_or_table].has_key?(index) cached = node_cache[:scenario_or_table][index] @index = cached.interval.end if cached return cached @@ -329,44 +329,44 @@ node_cache[:scenario_or_table][start_index] = r0 return r0 end - module Table0 - def eol + module Table0 #:nodoc: + def eol #:nodoc: elements[1] end - def table_line + def table_line #:nodoc: elements[3] end end - module Table1 - def head + module Table1 #:nodoc: + def head #:nodoc: elements[0] end - def body + def body #:nodoc: elements[1] end end - module Table2 - def compile(feature) + module Table2 #:nodoc: + def compile(feature) #:nodoc: Feature.last_scenario.table_header = head.cell_values body.each do |table_line| feature.add_row_scenario(Feature.last_scenario, table_line.cell_values, table_line.line) end end - def body + def body #:nodoc: super.elements.map { |elt| elt.table_line } end end - def _nt_table + def _nt_table #:nodoc: start_index = index if node_cache[:table].has_key?(index) cached = node_cache[:table][index] @index = cached.interval.end if cached return cached @@ -435,41 +435,41 @@ node_cache[:table][start_index] = r0 return r0 end - module TableLine0 - def cell_value + module TableLine0 #:nodoc: + def cell_value #:nodoc: elements[1] end - def separator + def separator #:nodoc: elements[3] end end - module TableLine1 - def separator + module TableLine1 #:nodoc: + def separator #:nodoc: elements[0] end - def cells + def cells #:nodoc: elements[1] end end - module TableLine2 - def cell_values + module TableLine2 #:nodoc: + def cell_values #:nodoc: cells.elements.map { |elt| elt.cell_value.text_value.strip } end - def line + def line #:nodoc: input.line_of(interval.first) end end - def _nt_table_line + def _nt_table_line #:nodoc: start_index = index if node_cache[:table_line].has_key?(index) cached = node_cache[:table_line][index] @index = cached.interval.end if cached return cached @@ -547,14 +547,14 @@ node_cache[:table_line][start_index] = r0 return r0 end - module CellValue0 + module CellValue0 #:nodoc: end - def _nt_cell_value + def _nt_cell_value #:nodoc: start_index = index if node_cache[:cell_value].has_key?(index) cached = node_cache[:cell_value][index] @index = cached.interval.end if cached return cached @@ -612,43 +612,43 @@ node_cache[:cell_value][start_index] = r0 return r0 end - module StepSequence0 - def space + module StepSequence0 #:nodoc: + def space #:nodoc: elements[0] end - def step + def step #:nodoc: elements[1] end end - module StepSequence1 - def head + module StepSequence1 #:nodoc: + def head #:nodoc: elements[0] end - def tail + def tail #:nodoc: elements[1] end end - module StepSequence2 - def compile(scenario) + module StepSequence2 #:nodoc: + def compile(scenario) #:nodoc: ([head] + tail).each do |step| step.compile(scenario) end end - def tail + def tail #:nodoc: super.elements.map { |elt| elt.step } end end - def _nt_step_sequence + def _nt_step_sequence #:nodoc: start_index = index if node_cache[:step_sequence].has_key?(index) cached = node_cache[:step_sequence][index] @index = cached.interval.end if cached return cached @@ -695,11 +695,11 @@ node_cache[:step_sequence][start_index] = r0 return r0 end - def _nt_step + def _nt_step #:nodoc: start_index = index if node_cache[:step].has_key?(index) cached = node_cache[:step][index] @index = cached.interval.end if cached return cached @@ -722,32 +722,32 @@ node_cache[:step][start_index] = r0 return r0 end - module GivenScenario0 - def given_scenario_keyword + module GivenScenario0 #:nodoc: + def given_scenario_keyword #:nodoc: elements[0] end - def space + def space #:nodoc: elements[1] end - def name + def name #:nodoc: elements[2] end end - module GivenScenario1 - def compile(scenario) + module GivenScenario1 #:nodoc: + def compile(scenario) #:nodoc: line = input.line_of(interval.first) - scenario.add_given_scenario(name.text_value.strip, line) + scenario.create_given_scenario(name.text_value.strip, line) end end - def _nt_given_scenario + def _nt_given_scenario #:nodoc: start_index = index if node_cache[:given_scenario].has_key?(index) cached = node_cache[:given_scenario][index] @index = cached.interval.end if cached return cached @@ -776,32 +776,32 @@ node_cache[:given_scenario][start_index] = r0 return r0 end - module PlainStep0 - def step_keyword + module PlainStep0 #:nodoc: + def step_keyword #:nodoc: elements[0] end - def space + def space #:nodoc: elements[1] end - def name + def name #:nodoc: elements[2] end end - module PlainStep1 - def compile(scenario) + module PlainStep1 #:nodoc: + def compile(scenario) #:nodoc: line = input.line_of(interval.first) - scenario.add_step(step_keyword.text_value, name.text_value.strip, line) + scenario.create_step(step_keyword.text_value, name.text_value.strip, line) end end - def _nt_plain_step + def _nt_plain_step #:nodoc: start_index = index if node_cache[:plain_step].has_key?(index) cached = node_cache[:plain_step][index] @index = cached.interval.end if cached return cached @@ -830,11 +830,11 @@ node_cache[:plain_step][start_index] = r0 return r0 end - def _nt_separator + def _nt_separator #:nodoc: start_index = index if node_cache[:separator].has_key?(index) cached = node_cache[:separator][index] @index = cached.interval.end if cached return cached @@ -851,11 +851,11 @@ node_cache[:separator][start_index] = r0 return r0 end - def _nt_space + def _nt_space #:nodoc: start_index = index if node_cache[:space].has_key?(index) cached = node_cache[:space][index] @index = cached.interval.end if cached return cached @@ -892,14 +892,14 @@ node_cache[:space][start_index] = r0 return r0 end - module LineToEol0 + module LineToEol0 #:nodoc: end - def _nt_line_to_eol + def _nt_line_to_eol #:nodoc: start_index = index if node_cache[:line_to_eol].has_key?(index) cached = node_cache[:line_to_eol][index] @index = cached.interval.end if cached return cached @@ -945,17 +945,17 @@ node_cache[:line_to_eol][start_index] = r0 return r0 end - module CommentToEol0 - def line_to_eol + module CommentToEol0 #:nodoc: + def line_to_eol #:nodoc: elements[1] end end - def _nt_comment_to_eol + def _nt_comment_to_eol #:nodoc: start_index = index if node_cache[:comment_to_eol].has_key?(index) cached = node_cache[:comment_to_eol][index] @index = cached.interval.end if cached return cached @@ -985,11 +985,11 @@ node_cache[:comment_to_eol][start_index] = r0 return r0 end - def _nt_white + def _nt_white #:nodoc: start_index = index if node_cache[:white].has_key?(index) cached = node_cache[:white][index] @index = cached.interval.end if cached return cached @@ -1012,11 +1012,11 @@ node_cache[:white][start_index] = r0 return r0 end - def _nt_blank + def _nt_blank #:nodoc: start_index = index if node_cache[:blank].has_key?(index) cached = node_cache[:blank][index] @index = cached.interval.end if cached return cached @@ -1032,38 +1032,65 @@ node_cache[:blank][start_index] = r0 return r0 end - def _nt_eol + module Eol0 #:nodoc: + end + + def _nt_eol #:nodoc: start_index = index if node_cache[:eol].has_key?(index) cached = node_cache[:eol][index] @index = cached.interval.end if cached return cached end i0 = index - if input.index("\r\n?", index) == index - r1 = (SyntaxNode).new(input, index...(index + 3)) - @index += 3 + i1, s1 = index, [] + if input.index("\r", index) == index + r2 = (SyntaxNode).new(input, index...(index + 1)) + @index += 1 else - terminal_parse_failure("\r\n?") + terminal_parse_failure("\r") + r2 = nil + end + s1 << r2 + if r2 + if input.index("\n", index) == index + r4 = (SyntaxNode).new(input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure("\n") + r4 = nil + end + if r4 + r3 = r4 + else + r3 = SyntaxNode.new(input, index...index) + end + s1 << r3 + end + if s1.last + r1 = (SyntaxNode).new(input, i1...index, s1) + r1.extend(Eol0) + else + self.index = i1 r1 = nil end if r1 r0 = r1 else if input.index("\n", index) == index - r2 = (SyntaxNode).new(input, index...(index + 1)) + r5 = (SyntaxNode).new(input, index...(index + 1)) @index += 1 else terminal_parse_failure("\n") - r2 = nil + r5 = nil end - if r2 - r0 = r2 + if r5 + r0 = r5 else self.index = i0 r0 = nil end end @@ -1071,11 +1098,11 @@ node_cache[:eol][start_index] = r0 return r0 end - def _nt_step_keyword + def _nt_step_keyword #:nodoc: start_index = index if node_cache[:step_keyword].has_key?(index) cached = node_cache[:step_keyword][index] @index = cached.interval.end if cached return cached @@ -1120,23 +1147,34 @@ r4 = nil end if r4 r0 = r4 else - self.index = i0 - r0 = nil + if input.index('Men', index) == index + r5 = (SyntaxNode).new(input, index...(index + 3)) + @index += 3 + else + terminal_parse_failure('Men') + r5 = nil + end + if r5 + r0 = r5 + else + self.index = i0 + r0 = nil + end end end end end node_cache[:step_keyword][start_index] = r0 return r0 end - def _nt_scenario_keyword + def _nt_scenario_keyword #:nodoc: start_index = index if node_cache[:scenario_keyword].has_key?(index) cached = node_cache[:scenario_keyword][index] @index = cached.interval.end if cached return cached @@ -1153,14 +1191,14 @@ node_cache[:scenario_keyword][start_index] = r0 return r0 end - module GivenScenarioKeyword0 + module GivenScenarioKeyword0 #:nodoc: end - def _nt_given_scenario_keyword + def _nt_given_scenario_keyword #:nodoc: start_index = index if node_cache[:given_scenario_keyword].has_key?(index) cached = node_cache[:given_scenario_keyword][index] @index = cached.interval.end if cached return cached @@ -1203,10 +1241,10 @@ return r0 end end -class FeatureParser < Treetop::Runtime::CompiledParser +class FeatureParser < Treetop::Runtime::CompiledParser #:nodoc: include Feature end end \ No newline at end of file