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



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

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

#>>(other) ⇒ Object



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

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

#absentObject



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

def absent
  Absent.new(parent: self)
end

#aka(name) ⇒ Object



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

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

#anyObject



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

def any
  Any.new
end

#ignoreObject



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

def ignore
  Ignore.new(parent: self)
end

#inspectObject



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

def inspect
  to_s
end

#maybeObject



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

def maybe
  Maybe.new(parent: self)
end

#parse(parser) ⇒ Object

Raises:

  • (NotImplementedError)


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

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

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



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

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

#rule(name) ⇒ Object



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

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

#str(string) ⇒ Object



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

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

#then(&block) ⇒ Object



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

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

#to_sObject



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

def to_s
  ""
end

#|(other) ⇒ Object



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

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