Sha256: 1425abd2ad31c46f6355eb345bba297b40cb2649cf75d5c49481820adf8eb742
Contents?: true
Size: 987 Bytes
Versions: 1
Compression:
Stored size: 987 Bytes
Contents
module Treetop class NonterminalSymbol < NodePropagatingParsingExpression attr_reader :name, :grammar def initialize(name, grammar) @name = name @grammar = grammar end def parsing_expression grammar.get_parsing_expression(self) end def to_s name.to_s end def parse_at(input, start_index, parser) node_cache = parser.node_cache_for(self) if cached_result = node_cache[start_index] return cached_result else return node_cache.store(parse_at_without_caching(input, start_index, parser)) end end protected def parse_at_without_caching(input, start_index, parser) result = parsing_expression.parse_at(input, start_index, parser) if result.success? result else return failure_at(start_index, result.nested_failures) end end def node_cache(parser) parser.node_cache_for(self) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
treetop-0.1.0 | lib/treetop/grammar/parsing_expressions/nonterminal_symbol.rb |