Sha256: a741da88e457e405996d97c2147a231c44e2fe199e4e39852458a7cbbe4ccc82
Contents?: true
Size: 864 Bytes
Versions: 1
Compression:
Stored size: 864 Bytes
Contents
module Antelope module Generation class Constructor module Lookahead def initialize @lookaheads = {} super end def lookahead(left, right = nil) @lookaheads.fetch([left, right]) do if right set = Set.new set += if nullable?(right) first(right) + follow(left) else first(right) end else set = lookahead_nonterminal(left) end @lookaheads[[left, right]] = set end end private def lookahead_nonterminal(left) set = Set.new parser.productions[left].each do |production| set += lookahead(left, production[:items]) end set end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
antelope-0.0.1 | lib/antelope/generation/constructor/lookahead.rb |