Module: ABNF::Compiler::Controls::Rules

Extended by:
Rules
Included in:
Rules
Defined in:
lib/abnf/compiler/controls/rules.rb

Instance Method Summary collapse

Instance Method Details

#alternativeObject



7
8
9
# File 'lib/abnf/compiler/controls/rules.rb', line 7

def alternative
  Compiler::Rule::Alternative.new terminal_value, value_range
end

#concatenationObject



11
12
13
# File 'lib/abnf/compiler/controls/rules.rb', line 11

def concatenation
  Compiler::Rule::Concatenation.new terminal_value, reference
end

#optionalObject



15
16
17
# File 'lib/abnf/compiler/controls/rules.rb', line 15

def optional
  Compiler::Rule::Optional.new terminal_value
end

#referenceObject



19
20
21
# File 'lib/abnf/compiler/controls/rules.rb', line 19

def reference
  Compiler::Rule::Reference.new 'some-rule'
end

#repetition(range = nil) ⇒ Object



23
24
25
26
27
28
# File 'lib/abnf/compiler/controls/rules.rb', line 23

def repetition range = nil
  range ||= (1..2)
  element = Rules.terminal_value

  Compiler::Rule::Repetition.new range, element
end

#spaceObject



30
31
32
# File 'lib/abnf/compiler/controls/rules.rb', line 30

def space
  Compiler::Rule::TerminalValue.new ' '
end

#terminal_value(case_sensitive = false) ⇒ Object



34
35
36
# File 'lib/abnf/compiler/controls/rules.rb', line 34

def terminal_value case_sensitive = false
  Compiler::Rule::TerminalValue.new 'some-string', case_sensitive
end

#value_rangeObject



38
39
40
# File 'lib/abnf/compiler/controls/rules.rb', line 38

def value_range
  Compiler::Rule::ValueRange.new 'A', 'Z'
end