From 605bd669ea1c2e8dc4b6eaabb8a7c2c3a1553339 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Thu, 24 Oct 2013 17:26:35 -0400 Subject: [PATCH] nitcc: reject tokens that match nothing Signed-off-by: Jean Privat --- contrib/nitcc/src/nitcc.nit | 6 ++++++ contrib/nitcc/tests/sav/lexer-errors.alt2.res | 1 + contrib/nitcc/tests/sav/lexer-precedences.alt3.res | 1 + 3 files changed, 8 insertions(+) diff --git a/contrib/nitcc/src/nitcc.nit b/contrib/nitcc/src/nitcc.nit index 234de6c..95b1dea 100644 --- a/contrib/nitcc/src/nitcc.nit +++ b/contrib/nitcc/src/nitcc.nit @@ -127,6 +127,12 @@ for s, tks in dfa.tags do print "Error: Conflicting tokens: {tks.join(" ")}" exit(1) end +for t in gram.tokens do + if t.name == "Eof" then continue + if dfa.retrotags.has_key(t) and not dfa.retrotags[t].is_empty then continue + print "Error: Token {t} matches nothing" + exit(1) +end # Generate Nit code diff --git a/contrib/nitcc/tests/sav/lexer-errors.alt2.res b/contrib/nitcc/tests/sav/lexer-errors.alt2.res index e69de29..22d741d 100644 --- a/contrib/nitcc/tests/sav/lexer-errors.alt2.res +++ b/contrib/nitcc/tests/sav/lexer-errors.alt2.res @@ -0,0 +1 @@ +Error: Token a matches nothing diff --git a/contrib/nitcc/tests/sav/lexer-precedences.alt3.res b/contrib/nitcc/tests/sav/lexer-precedences.alt3.res index e69de29..36fc3a1 100644 --- a/contrib/nitcc/tests/sav/lexer-precedences.alt3.res +++ b/contrib/nitcc/tests/sav/lexer-precedences.alt3.res @@ -0,0 +1 @@ +Error: Token xa matches nothing -- 1.7.9.5