Subversion Repositories programming

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
225 ira 1
%%
2
 
3
%byaccj
4
 
5
%{
6
    /* store a reference to the parser object */
7
    private parser yyparser;
8
 
9
    /* constructor taking an additional parser object */
10
    public Yylex(java.io.Reader r, parser yyparser) {
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
 
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;     }
34
 
35
"("         { return parser.LPAREN;     }
36
")"         { return parser.RPAREN;     }
37
"{"         { return parser.LBRACE;     }
38
"}"         { return parser.RBRACE;     }
39
";"         { return parser.SEMI;       }
40
"="         { return parser.ASSIGNOP;   }
41
 
42
{ID}        { return parser.ID;         }
43
{ADDOP}     { return parser.ADDOP;      }
44
{MULOP}     { return parser.MULOP;      }
45
{NUM}       { return parser.NUM;        }
46
{WSPACE}    {                           }
47