Class: Language::Atom

Inherits:
Object
  • Object
show all
Defined in:
lib/language/atom.rb,
lib/language/atom/any.rb,
lib/language/atom/repeat.rb

Direct Known Subclasses

Absent, Aka, And, Any, Ignore, Maybe, Or, Repeat, Str, Then

Defined Under Namespace

Classes: Absent, Aka, And, Any, Ignore, Maybe, Or, Repeat, Str, Then

Instance Method Summary collapse

Instance Method Details

#<<(other) ⇒ Object



305
306
307
# File 'lib/language/atom.rb', line 305

def <<(other)
  And.new(left: self, right: other)
end

#>>(other) ⇒ Object



301
302
303
# File 'lib/language/atom.rb', line 301

def >>(other)
  And.new(left: self, right: other)
end

#absentObject



277
278
279
# File 'lib/language/atom.rb', line 277

def absent
  Absent.new(parent: self)
end

#aka(name) ⇒ Object



293
294
295
# File 'lib/language/atom.rb', line 293

def aka(name)
  Aka.new(parent: self, name:)
end

#anyObject



269
270
271
# File 'lib/language/atom.rb', line 269

def any
  Any.new
end

#ignoreObject



281
282
283
# File 'lib/language/atom.rb', line 281

def ignore
  Ignore.new(parent: self)
end

#inspectObject



321
322
323
# File 'lib/language/atom.rb', line 321

def inspect
  to_s
end

#maybeObject



285
286
287
# File 'lib/language/atom.rb', line 285

def maybe
  Maybe.new(parent: self)
end

#parse(_parser) ⇒ Object

Raises:

  • (NotImplementedError)


313
314
315
# File 'lib/language/atom.rb', line 313

def parse(_parser)
  raise NotImplementedError, "#{self.class}#parse"
end

#repeat(minimum = 0, maximum = nil) ⇒ Object



289
290
291
# File 'lib/language/atom.rb', line 289

def repeat(minimum = 0, maximum = nil)
  Repeat.new(parent: self, minimum:, maximum:)
end

#str(string) ⇒ Object



273
274
275
# File 'lib/language/atom.rb', line 273

def str(string)
  Str.new(string:)
end

#then(&block) ⇒ Object



309
310
311
# File 'lib/language/atom.rb', line 309

def then(&block)
  Then.new(parent: self, block:)
end

#to_sObject



317
318
319
# File 'lib/language/atom.rb', line 317

def to_s
  ""
end

#|(other) ⇒ Object



297
298
299
# File 'lib/language/atom.rb', line 297

def |(other)
  Or.new(left: self, right: other)
end