class Metamorpher::Builders::AST::Builder

Public Instance Methods

method_missing(method, *arguments, &block) click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 20
def method_missing(method, *arguments, &block)
  builders_with_shorthand
    .find { |builder| builder.shorthand?(method, *arguments, &block) }
    .method_missing(method, *arguments, &block)
end

Private Instance Methods

builders_with_shorthand() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 28
def builders_with_shorthand
  @builders ||= [
    literal_builder,
    variable_builder,
    greedy_variable_builder
  ]
end
derivation_builder() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 48
def derivation_builder
  @derivation_builder ||= DerivationBuilder.new
end
greedy_variable_builder() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 44
def greedy_variable_builder
  @greedy_variable_builder ||= GreedyVariableBuilder.new
end
literal_builder() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 36
def literal_builder
  @literal_builder ||= LiteralBuilder.new
end
term_set_builder() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 52
def term_set_builder
  @term_set_builder ||= TermSetBuilder.new
end
variable_builder() click to toggle source
# File lib/metamorpher/builders/ast/builder.rb, line 40
def variable_builder
  @variable_builder ||= VariableBuilder.new
end