Module: ABNF::Parser::Controls::RuleLists::MultiplesOfThree

Extended by:
MultiplesOfThree
Included in:
MultiplesOfThree
Defined in:
lib/abnf/parser/controls/rule_lists/multiples_of_three.rb

Instance Method Summary collapse

Instance Method Details

#n0Object



8
9
10
11
12
13
14
15
16
17
18
# 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

#n1Object



20
21
22
23
24
25
26
27
28
29
# 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

#n2Object



31
32
33
34
35
36
37
38
39
40
# 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_listObject



130
131
132
133
134
135
136
137
138
139
140
141
# 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

#s0Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 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

#s1Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# 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

#s2Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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