class Antelope::DSL::Contexts::Main
Public Instance Methods
define(pass)
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 6 def define(pass) pass.each do |key, value| case value when Array @defines[key] = value else @defines[key] = [value] end end end
precedences(&block)
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 21 def precedences(&block) @precedences = context(Precedence, &block) end
productions(&block)
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 25 def productions(&block) @productions = context(Production, &block) end
template(template)
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 29 def template(template) case template when Hash @templates.merge(template) when String @templates[:default] = template else raise ArgumentError, "Unexpected #{template.class}, " \ "expected String or Hash" end end
terminals(&block)
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 17 def terminals(&block) @terminals.merge! context(Terminal, &block) end
Private Instance Methods
before_call()
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 43 def before_call @defines = {} @templates = {} @terminals = {} @precedences = [] @productions = [] end
data()
click to toggle source
# File lib/antelope/dsl/contexts/main.rb, line 51 def data { defines: @defines, templates: @templates, terminals: @terminals, precedences: @precedences, productions: @productions } end