package proof.parse;

import java_cup.runtime.Symbol;
%%
%cup
%%
[\\] { return new Symbol(sym.BACKSLASH); }
\"[^\"]*\" {
  return new Symbol(sym.STRING,
                    yytext().substring(1, yytext().length() - 1)); }
\.[ \t\r\n\f] { return new Symbol(sym.DOTSPACE); }
"->" { return new Symbol(sym.ARROW); }
"!" { return new Symbol(sym.BANG); }
":" { return new Symbol(sym.COLON); }
";" { return new Symbol(sym.SEMI); }
"=" { return new Symbol(sym.EQUALS); }
"(" { return new Symbol(sym.LPAREN); }
")" { return new Symbol(sym.RPAREN); }
"{" { return new Symbol(sym.LCURLY); }
"}" { return new Symbol(sym.RCURLY); }
"#" { return new Symbol(sym.POUND); }
"+" { return new Symbol(sym.PLUS); }
"*" { return new Symbol(sym.TIMES); }
\. { return new Symbol(sym.DOT); }
use { return new Symbol(sym.USE); }
[_A-Za-z][_A-Za-z0-9]* { return new Symbol(sym.ID, yytext()); }
[0-9]+ { return new Symbol(sym.NUMBER, new Integer(yytext())); }
/\*.*\*/ { /* ignore comments */ }
[ \t\r\n\f] { /* ignore white space. */ }
. { System.err.println("Illegal character: "+yytext()); }
