OpenCores
URL https://opencores.org/ocsvn/tinyvliw8/tinyvliw8/trunk

Subversion Repositories tinyvliw8

[/] [tinyvliw8/] [trunk/] [tools/] [asm/] [src/] [tokens.l] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 steckol
/**
2
 * \file tokens.l
3
 */
4
 
5
%{
6
#       include "parser.h"
7
        extern void nextline();
8
    extern void yyerror(const char *s);
9
 
10
        // extern int yylval;
11
%}
12
 
13
%%
14
".equ"      { return CONSTSEC; }
15
".res"      { return RESSEC; }
16
".code"     { return CODESEC; }
17
".irq"[0-3] { yylval.num = yytext[4] - '0'; return IRQSEC; }
18
"ldi"       { return LOADI; }
19
"ld"        { return LOAD; }
20
"sti"       { return STOREI; }
21
"st"        { return STORE; }
22
"rla"       { return RLA; }
23
"rlc"       { return RLC; }
24
"rra"       { return RRA; }
25
"rrc"       { return RRC; }
26
"mov"       { return MOVE; }
27
"addi"      { return ADDI; }
28
"add"       { return ADD; }
29
"or"        { return OR; }
30
"xor"       { return XOR; }
31
"xnor"      { return XNOR; }
32
"nor"       { return NOR; }
33
"and"       { return AND; }
34
"nand"      { return NAND; }
35
"jmp"       { return JMP; }
36
"jnz"       { return JNZ; }
37
"jz"        { return JZ; }
38
"jc"        { return JC; }
39
":"         { return COLON; }
40
";"         { return SEMICOLON; }
41
"+"         { return PLUS; }
42
"-"         { return MINUS; }
43
"~"         { return TILDE; }
44
"|"         { return PIPE; }
45
"$"         { return DOLLAR; }
46
"#"         { return HASH; }
47
"@"         { return AT; }
48
","         { return COMMA; }
49
r[0-7]                  { yylval.num = yytext[1] - '0'; return REG; }
50
0x[0-9a-f][0-9a-f]      { yylval.num = strtol(&yytext[2], 0, 16); return HEXNUM; }
51
0x[0-7][0-9a-f][0-9a-f] { yylval.num = strtol(&yytext[2], 0, 16); return HEXADDR; }
52
[_0-9a-z]+              { yylval.str = strdup(yytext); return NAME; }
53
[A-Z]+                  { yylval.str = strdup(yytext); return UNAME; }
54
[ \r\t]  { ; }
55
\n       { nextline(); return NEWLINE;}
56
"//".*\n { nextline(); return NEWLINE;}
57
.        { yyerror("illegal token\n"); }
58
%%
59
#ifndef yywrap
60
yywrap() { return 1; }
61
#endif
62
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.