From 0591fd753e5a9e7b243cfe43d205a64883f89014 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Tue, 5 May 2015 21:21:33 -0400 Subject: [PATCH] misc_analysis: warn on superfluous `;` Signed-off-by: Jean Privat --- src/frontend/simple_misc_analysis.nit | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/frontend/simple_misc_analysis.nit b/src/frontend/simple_misc_analysis.nit index cc12d01..885d794 100644 --- a/src/frontend/simple_misc_analysis.nit +++ b/src/frontend/simple_misc_analysis.nit @@ -40,6 +40,12 @@ redef class AModule do var v = new SimpleMiscVisitor(toolcontext) v.enter_visit(self) + + var t = location.file.first_token + while t != null do + t.accept_simple_misc_token(v) + t = t.next_token + end end end @@ -73,6 +79,12 @@ redef class ANode private fun after_simple_misc(v: SimpleMiscVisitor) do end end +redef class Token + private fun accept_simple_misc_token(v: SimpleMiscVisitor) + do + end +end + redef class ASignature redef fun after_simple_misc(v) do @@ -168,3 +180,25 @@ redef class AOnceExpr v.once_count = v.once_count - 1 end end + +redef class TSemi + redef fun accept_simple_misc_token(v) + do + var n = next_token + var p = prev_token + if + n == null or + n isa TEol or + n isa EOF or + n isa TComment or + p == null or + p isa TEol or + p isa EOF or + p isa TComment or + p isa TSemi + then + v.warning(self, "semi", "Warning: superfluous `;`.") + return + end + end +end -- 1.7.9.5