Class: Cucumber::Core::Gherkin::AstBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/core/gherkin/ast_builder.rb

Overview

 Builds an AST of a feature by listening to events from the Gherkin parser.

Defined Under Namespace

Modules: MultilineArgument Classes: BackgroundBuilder, Builder, FeatureBuilder, ScenarioBuilder, ScenarioOutlineBuilder

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ AstBuilder

Returns a new instance of AstBuilder.



12
13
14
15
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 12

def initialize(path)
  @path = path
  @feature_builder = nil
end

Instance Method Details

#background(node) ⇒ Object



34
35
36
37
38
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 34

def background(node)
  builder = BackgroundBuilder.new(file, node)
  @feature_builder.background_builder = builder
  @current = builder
end

#eofObject



60
61
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 60

def eof
end

#examples(node) ⇒ Object



52
53
54
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 52

def examples(node)
  @current.add_examples file, node
end

#feature(node) ⇒ Object



30
31
32
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 30

def feature(node)
  @feature_builder = FeatureBuilder.new(file, node)
end

#language=(language) ⇒ Object



22
23
24
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 22

def language=(language)
  @language = language
end

#resultObject



17
18
19
20
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 17

def result
  return Ast::NullFeature.new unless @feature_builder
  @feature_builder.result(language)
end

#scenario(node) ⇒ Object



40
41
42
43
44
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 40

def scenario(node)
  builder = ScenarioBuilder.new(file, node)
  @feature_builder.add_child builder
  @current = builder
end

#scenario_outline(node) ⇒ Object



46
47
48
49
50
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 46

def scenario_outline(node)
  builder = ScenarioOutlineBuilder.new(file, node)
  @feature_builder.add_child builder
  @current = builder
end

#step(node) ⇒ Object



56
57
58
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 56

def step(node)
  @current.add_step file, node
end

#syntax_error(state, event, legal_events, line) ⇒ Object



63
64
65
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 63

def syntax_error(state, event, legal_events, line)
  # raise "SYNTAX ERROR"
end

#uri(uri) ⇒ Object



26
27
28
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 26

def uri(uri)
  @path = uri
end