Class: Language::Atom
  
  
  
  
  
    - Inherits:
- 
      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 | 
 
    
      
  
  
    #absent  ⇒ Object 
  
  
  
  
    | 
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 | 
 
    
      
  
  
    #any  ⇒ Object 
  
  
  
  
    | 
282
283
284 | # File 'lib/language/atom.rb', line 282
def any
  Any.new
end | 
 
    
      
  
  
    #ignore  ⇒ Object 
  
  
  
  
    | 
294
295
296 | # File 'lib/language/atom.rb', line 294
def ignore
  Ignore.new(parent: self)
end | 
 
    
      
  
  
    #inspect  ⇒ Object 
  
  
  
  
    | 
338
339
340 | # File 'lib/language/atom.rb', line 338
def inspect
  to_s
end | 
 
    
      
  
  
    #maybe  ⇒ Object 
  
  
  
  
    | 
298
299
300 | # File 'lib/language/atom.rb', line 298
def maybe
  Maybe.new(parent: self)
end | 
 
    
      
  
  
    #parse(parser)  ⇒ Object 
  
  
  
  
    | 
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_s  ⇒ Object 
  
  
  
  
    | 
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 |