found class Main
found method main
found var i
found var input
found call ANTLRFileStream
found var lex
found call FuzzyJava
found var tokens
found call CommonTokenStream
found call tokens.toString
found // comment //System.out.println(tokens);

