/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2000 Gerwin Klein * * All rights reserved. * * * * Thanks to Larry Bell and Bob Jamison for suggestions and comments. * * * * License: BSD * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ %% %byaccj %{ private Parser yyparser; public Yylex(java.io.Reader r, Parser yyparser) { this(r); this.yyparser = yyparser; } %} nums = [0-9]+ ("." [0-9]+)? nls = \n | \r | \r\n %% /* operators */ "+" { return Parser.PLUS; } "-" { return Parser.MINUS; } "*" { return Parser.TIMES; } "/" { return Parser.DIV; } /* parenthesis */ "(" { return Parser.LPAR; } ")" { return Parser.RPAR; } /* newline */ {nls} { return Parser.NL; } /* float */ {nums} { yyparser.yylval = new ParserVal(Double.parseDouble(yytext())); return Parser.NUM; } /* whitespace */ [ \t]+ { } \b { System.err.println("Sorry, backspace doesn't work"); } /* error fallback */ [^] { System.err.println("Error: unexpected character '"+yytext()+"'"); return -1; }