import phase
redef class ToolContext
+ # Execute `AModule::do_simple_misc_analysis` on each module.
var simple_misc_analysis_phase: Phase = new SimpleMiscAnalysisPhase(self, null)
end
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
do
toolcontext.warning(node.hot_location, tag, msg)
end
-
- init(toolcontext: ToolContext)
- do
- self.toolcontext = toolcontext
- end
end
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
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