Subversion Repositories programming

Rev

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

Rev Author Line No. Line
225 ira 1
%%
2
 
3
%byaccj
4
 
5
%{
226 ira 6
    /* store a reference to the Parser object */
7
    private Parser yyparser;
225 ira 8
 
226 ira 9
    /* constructor taking an additional Parser object */
10
    public Yylex(java.io.Reader r, Parser yyparser) {
225 ira 11
        this(r);
12
        this.yyparser = yyparser;
13
    }
14
%}
15
 
16
ID = [a-zA-Z_]([a-zA-Z_] | [0-9])*
17
ADDOP = "+" | "-"
18
MULOP = "*" | "/"
19
NUM = [0-9]+ ("." [0-9]+)?
20
WSPACE = [\ \t]+ | \n | \r | \r\n
21
 
22
%%
23
 
226 ira 24
"class"     { return Parser.CLASS;      }
25
"public"    { return Parser.PUBLIC;     }
26
"private"   { return Parser.PRIVATE;    }
27
"int"       { return Parser.INT;        }
28
"float"     { return Parser.FLOAT;      }
29
"void"      { return Parser.VOID;       }
30
"if"        { return Parser.IF;         }
31
"else"      { return Parser.ELSE;       }
32
"while"     { return Parser.WHILE;      }
33
"return"    { return Parser.RETURN;     }
225 ira 34
 
226 ira 35
"("         { return Parser.LPAREN;     }
36
")"         { return Parser.RPAREN;     }
37
"{"         { return Parser.LBRACE;     }
38
"}"         { return Parser.RBRACE;     }
39
";"         { return Parser.SEMI;       }
40
"="         { return Parser.ASSIGNOP;   }
225 ira 41
 
226 ira 42
{ID}        { return Parser.ID;         }
43
{ADDOP}     { return Parser.ADDOP;      }
44
{MULOP}     { return Parser.MULOP;      }
45
{NUM}       { return Parser.NUM;        }
225 ira 46
{WSPACE}    {                           }
47