module Srgs::DSL
Public Instance Methods
example(text)
click to toggle source
# File lib/srgs/dsl.rb, line 4 def example(text) @grammar.current_level << Example.new(text) end
grammar(root, &block)
click to toggle source
# File lib/srgs/dsl.rb, line 8 def grammar(root, &block) @grammar = Grammar.new root instance_eval &block @grammar.current_level = nil grammar = Srgs.build(@grammar) puts grammar grammar end
item(element = '', args = {}, &block)
click to toggle source
# File lib/srgs/dsl.rb, line 17 def item(element = '', args = {}, &block) item = Item.new(element, args[:repeat], args[:repeat_prob], args[:weight]) @grammar.current_level << item old_current = @grammar.current_level @grammar.current_level = item instance_eval &block unless block.nil? @grammar.current_level = old_current end
lexicon(uri, args = {})
click to toggle source
# File lib/srgs/dsl.rb, line 26 def lexicon(uri, args = {}) @grammar << Lexicon.new(uri, args[:type]) end
meta(content, args = {})
click to toggle source
# File lib/srgs/dsl.rb, line 30 def meta(content, args = {}) @grammar << Meta.new(content, args[:name], args[:http_equiv]) end
one_of(&block)
click to toggle source
# File lib/srgs/dsl.rb, line 34 def one_of(&block) old_current = @grammar.current_level @grammar.current_level = OneOf.new old_current << @grammar.current_level instance_eval &block @grammar.current_level = old_current end
private_rule(id, args = {}, &block)
click to toggle source
# File lib/srgs/dsl.rb, line 49 def private_rule(id, args = {}, &block) @grammar.current_level = Rule.new(id, 'private', args[:dynamic]) @grammar << @grammar.current_level instance_eval &block @grammar.current_level = nil end
public_rule(id, args = {}, &block)
click to toggle source
# File lib/srgs/dsl.rb, line 42 def public_rule(id, args = {}, &block) @grammar.current_level = Rule.new(id, 'public', args[:dynamic]) @grammar << @grammar.current_level instance_eval &block @grammar.current_level = nil end
reference(name, args = {})
click to toggle source
# File lib/srgs/dsl.rb, line 56 def reference(name, args = {}) @grammar.current_level << RuleRef.new(name, args[:special]) end
reference_item(name, args = {})
click to toggle source
# File lib/srgs/dsl.rb, line 60 def reference_item(name, args = {}) @grammar.current_level << Item.new(RuleRef.new(name, args[:special])) end
reference_wildcard()
click to toggle source
# File lib/srgs/dsl.rb, line 64 def reference_wildcard @grammar.current_level << RuleRef.new(nil, 'GARBAGE') end
tag(text)
click to toggle source
# File lib/srgs/dsl.rb, line 68 def tag(text) @grammar.current_level << Tag.new(text) end
text(text)
click to toggle source
# File lib/srgs/dsl.rb, line 72 def text(text) @grammar.current_level << text end
token(text, args = {})
click to toggle source
# File lib/srgs/dsl.rb, line 76 def token(text, args = {}) @grammar.current_level << Token.new(text, args[:display], args[:pron]) end