module ABNF::Parser::Controls::Rules
Public Instance Methods
alternation()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 7 def alternation Parser::Rules::Alternation.new( [ Parser::Rules::Terminal.string('foo', ABNF.foo), Parser::Rules::Terminal.string('bar', ABNF.bar), Parser::Rules::Terminal.string('baz', ABNF.baz), ], ABNF.alternation, ) end
concatenation()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 18 def concatenation Parser::Rules::Concatenation.new( [ Parser::Rules::Terminal.string('[', '"["'), Parser::Rules::Terminal.string('foo', ABNF.foo), Parser::Rules::Terminal.string(']', '"]"'), ], ABNF.concatenation, ) end
option(rule=nil)
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 29 def option rule=nil rule ||= example abnf = "[#{rule.abnf}]" Parser::Rules::Repetition.new rule, (0..1), abnf end
prose_val()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 35 def prose_val Parser::Rules::ProseVal.new '<Some Prose>' end
reference()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 39 def reference Parser::Rules::Reference.new 'some-rule' end
regexp_pattern()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 43 def regexp_pattern regexp = %r{(?<word1>[[:alpha:]]+)-(?<word2>[[:alpha:]]+)|~} Parser::Rules::RegexpPattern.new regexp, ABNF.regexp_pattern, 9 end
repetition(abnf: nil, range: nil)
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 48 def repetition abnf: nil, range: nil range ||= (0..Float::INFINITY) abnf ||= '*"foo"' Parser::Rules::Repetition.new terminal, range, abnf end
terminal()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 55 def terminal Parser::Rules::Terminal.string 'foo', ABNF.foo end
terminal_range()
click to toggle source
# File lib/abnf/parser/controls/rules.rb, line 61 def terminal_range Parser::Rules::Terminal.character_range (' '..'!'), ABNF.foo end