module ABNF::Parser::Controls::RuleLists::MultiplesOfThree

Public Instance Methods

n0() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 8
def n0
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Terminal.string('0', '"0"'),
      Parser::Rules::Terminal.string('3', '"3"'),
      Parser::Rules::Terminal.string('6', '"6"'),
      Parser::Rules::Terminal.string('9', '"9"'),
    ],
    '"0" / "3" / "6" / "9"',
  )
end
n1() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 20
def n1
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Terminal.string('1', '"1"'),
      Parser::Rules::Terminal.string('4', '"4"'),
      Parser::Rules::Terminal.string('7', '"7"'),
    ],
    '"1" / "4" / "7"',
  )
end
n2() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 31
def n2
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Terminal.string('2', '"2"'),
      Parser::Rules::Terminal.string('5', '"5"'),
      Parser::Rules::Terminal.string('8', '"8"'),
    ],
    '"2" / "5" / "8"',
  )
end
rule_list() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 130
def rule_list
  rule_list = RuleList.new
  rule_list.update(
    's0' => s0,
    's1' => s1,
    's2' => s2,
    'n0' => n0,
    'n1' => n1,
    'n2' => n2,
  )
  rule_list
end
s0() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 42
def s0
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n0'),
          Parser::Rules::Reference.new('s0'),
        ],
        'n0 s0',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n1'),
          Parser::Rules::Reference.new('s2'),
        ],
        'n1 s2',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n2'),
          Parser::Rules::Reference.new('s1'),
        ],
        'n2 s1',
      ),
      Parser::Rules::Terminal.string('', '""'),
    ],
    'n0 s0 / n1 n2 / n2 s1 / ""',
  )
end
s1() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 72
def s1
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n0'),
          Parser::Rules::Reference.new('s1'),
        ],
        'n0 s1',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n1'),
          Parser::Rules::Reference.new('s0'),
        ],
        'n1 s0',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n2'),
          Parser::Rules::Reference.new('s2'),
        ],
        'n2 s2',
      ),
    ],
    'n0 s1 / n1 s0 / n2 s2',
  )
end
s2() click to toggle source
# File lib/abnf/parser/controls/rule_lists/multiples_of_three.rb, line 101
def s2
  Parser::Rules::Alternation.new(
    [
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n0'),
          Parser::Rules::Reference.new('s2'),
        ],
        'n0 s2',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n1'),
          Parser::Rules::Reference.new('s1'),
        ],
        'n1 s1',
      ),
      Parser::Rules::Concatenation.new(
        [
          Parser::Rules::Reference.new('n2'),
          Parser::Rules::Reference.new('s0'),
        ],
        'n2 s0',
      ),
    ],
    'n0 s2 / n1 s1 / n2 s0',
  )
end