Sha256: 5e0e2fae3870a9eb91a5bc4800bb6e4fa4a4a024f0d85a5615a8896e36ad9861

Contents?: true

Size: 631 Bytes

Versions: 1

Compression:

Stored size: 631 Bytes

Contents

module Treetop
  class TerminalSymbol < TerminalParsingExpression
    attr_accessor :prefix
    
    def self.epsilon
      @epsilon ||= self.new("")
    end
    
    def initialize(prefix)
      super()
      self.prefix = prefix
    end
    
    def epsilon?
      prefix.blank?
    end
            
    def to_s
      "\"#{prefix}\""
    end
    
    def parse_at(input, start_index, parser)
      
      if input.index(prefix, start_index) == start_index
        return node_class.new(input, start_index...(prefix.length + start_index))
      else
        TerminalParseFailure.new(start_index, self)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
treetop-0.1.0 lib/treetop/grammar/parsing_expressions/terminal_symbol.rb