class Spec::Story::Runner::StoryParser::State

def comment(line)

def comment(line)
end

def eof

def eof
end

def event(line)

def event(line)
  @parser.create_when(remove_tag_from(:when, line))
  @parser.transition_to(:when_state)
end

def given(line)

def given(line)
  @parser.create_given(remove_tag_from(:given, line))
  @parser.transition_to(:given_state)
end

def given_scenario(line)

def given_scenario(line)
  @parser.create_given_scenario(remove_tag_from(:givenscenario, line))
  @parser.transition_to(:given_state)
end

def initialize(parser)

def initialize(parser)
  @parser = parser
end

def other(line)

def other(line)
  # no-op - supports header text before the first story in a file
end

def outcome(line)

def outcome(line)
  @parser.create_then(remove_tag_from(:then, line))
  @parser.transition_to(:then_state)
end

def remove_tag_from(tag, line)

def remove_tag_from(tag, line)
  tokens = line.split
  # validation of tag can go here
  tokens[0].downcase.match(/#{tag.to_s}:?/) ? 
                      (tokens[1..-1].join(' ')) : line
end

def scenario(line)

def scenario(line)
  @parser.create_scenario(line)
  @parser.transition_to(:scenario_state)
end

def story(line)

def story(line)
  @parser.init_story(line)
  @parser.transition_to(:story_state)
end