%% %class scanner %unicode %line %column %byaccj %{ private Parser yyparser; public int getLine() { return yyline+1; } /* constructor taking an additional parser */ public scanner (java.io.Reader r, Parser yyparser) { this (r); this.yyparser = yyparser; } %} %% B {yyparser.yylval = new Parser.Semantic(0,0); return Parser.BEGIN;} N {yyparser.yylval = new Parser.Semantic(0,1);return Parser.N;} S {yyparser.yylval = new Parser.Semantic(0,-1);return Parser.S;} E {yyparser.yylval = new Parser.Semantic(1,0);return Parser.E;} W {yyparser.yylval = new Parser.Semantic(-1,0);return Parser.W;} [ \t\n] {;}