Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(516)

Side by Side Diff: src/lexer/lexer.re

Issue 26839004: Add experimental re2c source from dcarney@. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*!re2c
2
3
4 re2c:define:YYCTYPE = "uint8_t";
5 re2c:define:YYCURSOR = p;
6 re2c:yyfill:enable = 0;
7 re2c:yych:conversion = 0;
8 re2c:indent:top = 1;
9
10
11 eof = [\000];
12 any = [\000-\377];
13 whitespace_char = [ \h\t\v\f\r];
14 whitespace = whitespace_char+;
15 identifier_start = [$_\\a-zA-z];
16 identifier_char = [$_\\a-zA-z0-9];
17 number_start = [0-9];
18 line_terminator = [\n\r]+;
19
20
21 <NORMAL> "(" { PUSH_T(LPAREN); }
22 <NORMAL> ")" { PUSH_T(RPAREN); }
23 <NORMAL> "[" { PUSH_T(LBRACK); }
24 <NORMAL> "]" { PUSH_T(RBRACK); }
25 <NORMAL> "{" { PUSH_T(LBRACE); }
26 <NORMAL> "}" { PUSH_T(RBRACE); }
27 <NORMAL> ":" { PUSH_T(COLON); }
28 <NORMAL> ";" { PUSH_T(SEMICOLON); }
29 <NORMAL> "." { PUSH_T(PERIOD); }
30 <NORMAL> "?" { PUSH_T(CONDITIONAL); }
31 <NORMAL> "++" { PUSH_T(INC); }
32 <NORMAL> "--" { PUSH_T(DEC); }
33
34
35 <NORMAL> "=" { PUSH_T(ASSIGN); }
36 <NORMAL> "|=" { PUSH_T(ASSIGN_BIT_OR); }
37 <NORMAL> "^=" { PUSH_T(ASSIGN_BIT_XOR); }
38 <NORMAL> "&=" { PUSH_T(ASSIGN_BIT_AND); }
39 <NORMAL> "<<=" { PUSH_T(ASSIGN_SHL); }
40 <NORMAL> ">>=" { PUSH_T(ASSIGN_SAR); }
41 <NORMAL> ">>>=" { PUSH_T(ASSIGN_SHR); }
42 <NORMAL> "+=" { PUSH_T(ASSIGN_ADD); }
43 <NORMAL> "-=" { PUSH_T(ASSIGN_SUB); }
44 <NORMAL> "*=" { PUSH_T(ASSIGN_MUL); }
45 <NORMAL> "/=" { PUSH_T(ASSIGN_DIV); }
46 <NORMAL> "%=" { PUSH_T(ASSIGN_MOD); }
47
48
49 <NORMAL> "," { PUSH_T(COMMA); }
50 <NORMAL> "||" { PUSH_T(OR); }
51 <NORMAL> "&&" { PUSH_T(AND); }
52 <NORMAL> "|" { PUSH_T(BIT_OR); }
53 <NORMAL> "^" { PUSH_T(BIT_XOR); }
54 <NORMAL> "&" { PUSH_T(BIT_AND); }
55 <NORMAL> "<<" { PUSH_T(SHL); }
56 <NORMAL> ">>" { PUSH_T(SAR); }
57 <NORMAL> "+" { PUSH_T(ADD); }
58 <NORMAL> "-" { PUSH_T(SUB); }
59 <NORMAL> "*" { PUSH_T(MUL); }
60 <NORMAL> "/" { PUSH_T(DIV); }
61 <NORMAL> "%" { PUSH_T(MOD); }
62
63
64 <NORMAL> "==" { PUSH_T(EQ); }
65 <NORMAL> "!=" { PUSH_T(NE); }
66 <NORMAL> "===" { PUSH_T(EQ_STRICT); }
67 <NORMAL> "!==" { PUSH_T(NE_STRICT); }
68 <NORMAL> "<" { PUSH_T(LT); }
69 <NORMAL> ">" { PUSH_T(GT); }
70 <NORMAL> "<=" { PUSH_T(LTE); }
71 <NORMAL> ">=" { PUSH_T(GTE); }
72
73
74 <NORMAL> "!" { PUSH_T(NOT); }
75 <NORMAL> "~" { PUSH_T(BIT_NOT); }
76
77 <NORMAL> line_terminator+ { PUSH_LINE_TERMINATOR(); }
78
79 <NORMAL> whitespace {}
80
81
82 <NORMAL> "//" :=> SINGLE_LINE_COMMENT
83 <NORMAL> "/*" :=> MULTILINE_COMMENT
84 <NORMAL> "<!--" :=> HTML_COMMENT
85
86
87 <NORMAL> ["] :=> STRING
88 <NORMAL> ['] :=> SINGLE_QUOTE_STRING
89
90
91 <NORMAL> identifier_start :=> IDENTIFIER
92
93 <NORMAL> number_start :=> NUMBER
94
95
96 <NORMAL> eof { PUSH_T(EOS); }
97 <NORMAL> any { TERMINATE_ILLEGAL(); }
98
99
100
101 <STRING> "\\\"" {}
102 <STRING> ["] { PUSH_STRING(); TRANSITION(NORMAL); }
103 <STRING> any {}
104
105
106 <SINGLE_QUOTE_STRING> "\\'" {}
107 <SINGLE_QUOTE_STRING> "'" { PUSH_STRING(); TRANSITION(NORMAL); }
108 <SINGLE_QUOTE_STRING> any {}
109
110
111
112 <IDENTIFIER> identifier_char+ {}
113 <IDENTIFIER> any { PUSH_IDENTIFIER(); TRANSITION(NORMAL); }
114
115
116
117 <SINGLE_LINE_COMMENT> line_terminator
118 { PUSH_LINE_TERMINATOR(); TRANSITION(NORMAL); }
119
120 <SINGLE_LINE_COMMENT> any+ {}
121
122
123
124 <MULTILINE_COMMENT> [*][//] { PUSH_LINE_TERMINATOR(); TRANSITION(NORMAL); }
125 <MULTILINE_COMMENT> eof { TERMINATE_ILLEGAL(); }
126 <MULTILINE_COMMENT> any+ {}
127
128 */
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698