Subversion Repositories programming

Rev

Rev 226 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

%%

%byaccj

%{
    /* store a reference to the parser object */
    private parser yyparser;

    /* constructor taking an additional parser object */
    public Yylex(java.io.Reader r, parser yyparser) {
        this(r);
        this.yyparser = yyparser;
    }
%}

ID = [a-zA-Z_]([a-zA-Z_] | [0-9])*
ADDOP = "+" | "-"
MULOP = "*" | "/"
NUM = [0-9]+ ("." [0-9]+)?
WSPACE = [\ \t]+ | \n | \r | \r\n

%%

"class"     { return parser.CLASS;      }
"public"    { return parser.PUBLIC;     }
"private"   { return parser.PRIVATE;    }
"int"       { return parser.INT;        }
"float"     { return parser.FLOAT;      }
"void"      { return parser.VOID;       }
"if"        { return parser.IF;         }
"else"      { return parser.ELSE;       }
"while"     { return parser.WHILE;      }
"return"    { return parser.RETURN;     }

"("         { return parser.LPAREN;     }
")"         { return parser.RPAREN;     }
"{"         { return parser.LBRACE;     }
"}"         { return parser.RBRACE;     }
";"         { return parser.SEMI;       }
"="         { return parser.ASSIGNOP;   }

{ID}        { return parser.ID;         }
{ADDOP}     { return parser.ADDOP;      }
{MULOP}     { return parser.MULOP;      }
{NUM}       { return parser.NUM;        }
{WSPACE}    {                           }