File: lexer

package info (click to toggle)
bisonc%2B%2B 6.09.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,984 kB
  • sloc: cpp: 9,375; ansic: 1,505; fortran: 1,134; makefile: 1,062; sh: 526; yacc: 84; lex: 60
file content (65 lines) | stat: -rw-r--r-- 2,129 bytes parent folder | download | duplicates (8)
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
55
56
57
58
59
60
61
62
63
64
65
%interactive
%filenames scanner

digits  [0-9]+
e       [eE]
sign    [-+]

%%

[ \t]+

{digits}                                return Parser::INT;

{digits}"."                             |
{digits}"."{digits}                     |
{digits}{e}{sign}{digits}               |
{digits}"."{e}{sign}{digits}            |
{digits}"."{digits}{e}{sign}{digits}    |
"."{digits}                             |
"."{e}{sign}{digits}                    |
"."{digits}{e}{sign}{digits}            return Parser::DOUBLE;

"'"."'"                                 return Parser::CHAR;

"+="                                    return Parser::ADDA;
"-="                                    return Parser::SUBA;
"*="                                    return Parser::MULA;
"/="                                    return Parser::DIVA;
"%="                                    return Parser::MODA;
"&="                                    return Parser::ANDA;
"^="                                    return Parser::XORA;
"|="                                    return Parser::ORA;
"<<="                                   return Parser::LSHIFTA;
">>="                                   return Parser::RSHIFTA;

"<<"                                    return Parser::LEFTSHIFT;
">>"                                    return Parser::RIGHTSHIFT;

char                                    |
int                                     |
double                                  return Parser::DATATYPE;

help                                    return Parser::HELP;

rad                                     |
deg                                     |
grad                                    return Parser::ANGLETYPE;

list                                    return Parser::LIST;

stop                                    |
quit                                    |
exit                                    return Parser::QUIT;

PI                                      |
E                                       return Parser::MATHCONST;

[a-zA-Z_][a-zA-Z_0-9]*                  return Parser::IDENT;

\n|.                                    return matched()[0];

%%