|
3 | 3 | /* lexical grammar */
|
4 | 4 | %lex
|
5 | 5 | %%
|
6 |
| -\s+ /* skip whitespace */ |
7 |
| -"*" return 'MUL'; |
8 |
| -"/" return 'DIV'; |
9 |
| -"+" return 'ADD'; |
10 |
| -"-" return 'SUB'; |
| 6 | +\s+ /* skip whitespace */ |
| 7 | +"*" return 'MUL'; |
| 8 | +"/" return 'DIV'; |
| 9 | +"+" return 'ADD'; |
| 10 | +"-" return 'SUB'; |
11 | 11 |
|
12 |
| -[0-9]+("."[0-9]+)?px\b return 'LENGTH'; |
13 |
| -[0-9]+("."[0-9]+)?cm\b return 'LENGTH'; |
14 |
| -[0-9]+("."[0-9]+)?mm\b return 'LENGTH'; |
15 |
| -[0-9]+("."[0-9]+)?in\b return 'LENGTH'; |
16 |
| -[0-9]+("."[0-9]+)?pt\b return 'LENGTH'; |
17 |
| -[0-9]+("."[0-9]+)?pc\b return 'LENGTH'; |
18 |
| -[0-9]+("."[0-9]+)?deg\b return 'ANGLE'; |
19 |
| -[0-9]+("."[0-9]+)?grad\b return 'ANGLE'; |
20 |
| -[0-9]+("."[0-9]+)?rad\b return 'ANGLE'; |
21 |
| -[0-9]+("."[0-9]+)?turn\b return 'ANGLE'; |
22 |
| -[0-9]+("."[0-9]+)?s\b return 'TIME'; |
23 |
| -[0-9]+("."[0-9]+)?ms\b return 'TIME'; |
24 |
| -[0-9]+("."[0-9]+)?Hz\b return 'FREQ'; |
25 |
| -[0-9]+("."[0-9]+)?kHz\b return 'FREQ'; |
26 |
| -[0-9]+("."[0-9]+)?dpi\b return 'RES'; |
27 |
| -[0-9]+("."[0-9]+)?dpcm\b return 'RES'; |
28 |
| -[0-9]+("."[0-9]+)?dppx\b return 'RES'; |
29 |
| -[0-9]+("."[0-9]+)?em\b return 'EMS'; |
30 |
| -[0-9]+("."[0-9]+)?ex\b return 'EXS'; |
31 |
| -[0-9]+("."[0-9]+)?ch\b return 'CHS'; |
32 |
| -[0-9]+("."[0-9]+)?rem\b return 'REMS'; |
33 |
| -[0-9]+("."[0-9]+)?vw\b return 'VWS'; |
34 |
| -[0-9]+("."[0-9]+)?vh\b return 'VHS'; |
35 |
| -[0-9]+("."[0-9]+)?vmin\b return 'VMINS'; |
36 |
| -[0-9]+("."[0-9]+)?vmax\b return 'VMAXS'; |
37 |
| -[0-9]+("."[0-9]+)?\% return 'PERCENTAGE'; |
38 |
| -[0-9]+("."[0-9]+)?\b return 'NUMBER'; |
| 12 | +([0-9]+("."[0-9]+)?|"."[0-9]+)px\b return 'LENGTH'; |
| 13 | +([0-9]+("."[0-9]+)?|"."[0-9]+)cm\b return 'LENGTH'; |
| 14 | +([0-9]+("."[0-9]+)?|"."[0-9]+)mm\b return 'LENGTH'; |
| 15 | +([0-9]+("."[0-9]+)?|"."[0-9]+)in\b return 'LENGTH'; |
| 16 | +([0-9]+("."[0-9]+)?|"."[0-9]+)pt\b return 'LENGTH'; |
| 17 | +([0-9]+("."[0-9]+)?|"."[0-9]+)pc\b return 'LENGTH'; |
| 18 | +([0-9]+("."[0-9]+)?|"."[0-9]+)deg\b return 'ANGLE'; |
| 19 | +([0-9]+("."[0-9]+)?|"."[0-9]+)grad\b return 'ANGLE'; |
| 20 | +([0-9]+("."[0-9]+)?|"."[0-9]+)rad\b return 'ANGLE'; |
| 21 | +([0-9]+("."[0-9]+)?|"."[0-9]+)turn\b return 'ANGLE'; |
| 22 | +([0-9]+("."[0-9]+)?|"."[0-9]+)s\b return 'TIME'; |
| 23 | +([0-9]+("."[0-9]+)?|"."[0-9]+)ms\b return 'TIME'; |
| 24 | +([0-9]+("."[0-9]+)?|"."[0-9]+)Hz\b return 'FREQ'; |
| 25 | +([0-9]+("."[0-9]+)?|"."[0-9]+)kHz\b return 'FREQ'; |
| 26 | +([0-9]+("."[0-9]+)?|"."[0-9]+)dpi\b return 'RES'; |
| 27 | +([0-9]+("."[0-9]+)?|"."[0-9]+)dpcm\b return 'RES'; |
| 28 | +([0-9]+("."[0-9]+)?|"."[0-9]+)dppx\b return 'RES'; |
| 29 | +([0-9]+("."[0-9]+)?|"."[0-9]+)em\b return 'EMS'; |
| 30 | +([0-9]+("."[0-9]+)?|"."[0-9]+)ex\b return 'EXS'; |
| 31 | +([0-9]+("."[0-9]+)?|"."[0-9]+)ch\b return 'CHS'; |
| 32 | +([0-9]+("."[0-9]+)?|"."[0-9]+)rem\b return 'REMS'; |
| 33 | +([0-9]+("."[0-9]+)?|"."[0-9]+)vw\b return 'VWS'; |
| 34 | +([0-9]+("."[0-9]+)?|"."[0-9]+)vh\b return 'VHS'; |
| 35 | +([0-9]+("."[0-9]+)?|"."[0-9]+)vmin\b return 'VMINS'; |
| 36 | +([0-9]+("."[0-9]+)?|"."[0-9]+)vmax\b return 'VMAXS'; |
| 37 | +([0-9]+("."[0-9]+)?|"."[0-9]+)\% return 'PERCENTAGE'; |
| 38 | +([0-9]+("."[0-9]+)?|"."[0-9]+)\b return 'NUMBER'; |
39 | 39 |
|
40 |
| -"(" return 'LPAREN'; |
41 |
| -")" return 'RPAREN'; |
| 40 | +"(" return 'LPAREN'; |
| 41 | +")" return 'RPAREN'; |
42 | 42 |
|
43 |
| -<<EOF>> return 'EOF'; |
| 43 | +<<EOF>> return 'EOF'; |
44 | 44 |
|
45 | 45 | /lex
|
46 | 46 |
|
|
0 commit comments