Class: Language::Atom::Present

Inherits:
Language::Atom show all
Defined in:
lib/language/atom/present.rb

Instance Method Summary collapse

Methods inherited from Language::Atom

#<<, #>>, #absent, #aka, #any, #ignore, #inspect, #maybe, #present, #repeat, #str, #then, #|

Constructor Details

#initialize(parent: nil) ⇒ Present

Returns a new instance of Present.



6
7
8
# File 'lib/language/atom/present.rb', line 6

def initialize(parent: nil)
  @parent = parent
end

Instance Method Details

#parse(parser) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/language/atom/present.rb', line 10

def parse(parser)
  clone =
    Parser.new(
      root: self,
      input: parser.input,
      cursor: parser.cursor,
      buffer: parser.buffer
    )

  @parent&.parse(clone)
end

#to_sObject



22
23
24
# File 'lib/language/atom/present.rb', line 22

def to_s
  @parent ? "(#{@parent}).present" : "present"
end