-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlexxer.l
54 lines (47 loc) · 1.08 KB
/
lexxer.l
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
%{
#include "parser.tab.h"
#include "node.h"
%}
%option noyywrap
%%
bye {return BYE;}
cd {return CD;}
alias {return ALIAS;}
unalias {return UNALIAS;}
setenv {return SETENV;}
printenv {return PRINTENV;}
unsetenv {return UNSETENV;}
ls {return LS;}
echo {return PRINT;}
pwd {return PWD;}
touch {return TOUCH;}
head { return HEAD;}
tail { return TAIL;}
cat {return CAT;}
wc {return WC;}
mkdir {return MKDIR;}
rm {return RM;}
date {return DATE;}
[\~] {return TILDE;}
[\"] {return QUOTE;}
[\<] {return LESS;}
[\>] {return GREATER;}
[\*] {return STAR;}
[\&] {return AND;}
[\?] {return QUESTION;}
[\$] {return DOLLAR;}
[\{] {return OCURL;}
[\}] {return CCURL;}
[0-9a-zA-Z/\-\:\.]+ {
yylval.string = strdup(yytext);
if(yytext[0] == '-')
return ARG;
else
return WORD;
};
[\n] {return -1;}
<<EOF>> {return ENDF;}
[ \t\r]+ { ; } /* Ignore Whitespace */
[^[] {return ESC;}
. { ; } /* No Match */
%%