Remove _TOKEN_NONE and use _TOKEN_COUNT instead

This commit is contained in:
josh committed 2022-10-03 21:40:34 -04:00
1 parent ced5a56424
commit 6bd9d4a09b
5 files changed
+20 -23

No files matched your search

-3
View File
@@ -31,9 +31,6 @@ class Propane
# Token ID for a "dropped" token.
TOKEN_DROP = 0xFFFFFFFE
# Invalid token ID.
TOKEN_NONE = 0xFFFFFFFF
class Error < RuntimeError
end
+1 -1
View File
@@ -81,7 +81,7 @@ class Propane
end
determine_possibly_empty_rulesets!(rule_sets)
# Generate the lexer.
@lexer = Lexer.new(@grammar.patterns)
@lexer = Lexer.new(@grammar)
# Generate the parser.
@parser = Parser.new(@grammar, rule_sets, @log)
end
+5 -4
View File
@@ -5,8 +5,9 @@ class Propane
# Lexer DFA.
attr_accessor :dfa
def initialize(patterns)
@dfa = DFA.new(patterns)
def initialize(grammar)
@grammar = grammar
@dfa = DFA.new(grammar.patterns)
end
def build_tables
@@ -16,13 +17,13 @@ class Propane
states.each do |state, id|
token =
if state.accepts.nil?
TOKEN_NONE
@grammar.tokens.size
elsif state.accepts.drop?
TOKEN_DROP
elsif state.accepts.token
state.accepts.token.id
else
TOKEN_NONE
@grammar.tokens.size
end
code_id =
if state.accepts && state.accepts.code_id
+1 -1
View File
@@ -55,7 +55,7 @@ class Propane
reduce_entries =
case ra = item_set.reduce_actions
when Rule
[{token_id: TOKEN_NONE, rule_id: ra.id,
[{token_id: @grammar.tokens.size, rule_id: ra.id,
rule_set_id: ra.rule_set.id, n_states: ra.components.size}]
when Hash
ra.map do |token, rule|