Class: Language::Atom

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

Direct Known Subclasses

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

Defined Under Namespace

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

Instance Method Summary collapse

Instance Method Details

#<<(other) ⇒ Object



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

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

#>>(other) ⇒ Object



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

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

#absentObject



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

def absent
  Absent.new(parent: self)
end

#aka(name) ⇒ Object



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

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

#anyObject



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

def any
  Any.new
end

#ignoreObject



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

def ignore
  Ignore.new(parent: self)
end

#inspectObject



338
339
340
# File 'lib/language/atom.rb', line 338

def inspect
  to_s
end

#maybeObject



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

def maybe
  Maybe.new(parent: self)
end

#parse(parser) ⇒ Object

Raises:

  • (NotImplementedError)


330
331
332
# File 'lib/language/atom.rb', line 330

def parse(parser)
  raise NotImplementedError.new("#{self.class}#parse")
end

#repeat(min = 0, max = nil) ⇒ Object



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

def repeat(min = 0, max = nil)
  Repeat.new(parent: self, min: min, max: max)
end

#rule(name) ⇒ Object



326
327
328
# File 'lib/language/atom.rb', line 326

def rule(name)
  Rule.new(name: name)
end

#str(string) ⇒ Object



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

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

#then(&block) ⇒ Object



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

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

#to_sObject



334
335
336
# File 'lib/language/atom.rb', line 334

def to_s
  ""
end

#|(other) ⇒ Object



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

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