Class: ABNF::Compiler::Rule::Optional

Inherits:
Object
  • Object
show all
Includes:
ABNF::Compiler::Rule
Defined in:
lib/abnf/compiler/rule/optional.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ABNF::Compiler::Rule

#parse?

Constructor Details

#initialize(rule) ⇒ Optional

Returns a new instance of Optional.



9
10
11
# File 'lib/abnf/compiler/rule/optional.rb', line 9

def initialize rule
  @rule = rule
end

Instance Attribute Details

#ruleObject (readonly)

Returns the value of attribute rule.



7
8
9
# File 'lib/abnf/compiler/rule/optional.rb', line 7

def rule
  @rule
end

Instance Method Details

#parse(stream) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/abnf/compiler/rule/optional.rb', line 13

def parse stream
  node = nil
  stream.branch do
    node = rule.parse stream
  end
  node ||= AST.leaf ''
  node
end