File: include.d

package info (click to toggle)
re2c 4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,512 kB
  • sloc: cpp: 34,160; ml: 8,494; sh: 5,311; makefile: 1,014; haskell: 611; python: 431; ansic: 234; javascript: 113
file content (108 lines) | stat: -rw-r--r-- 2,140 bytes parent folder | download | duplicates (2)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/* Generated by re2d */
// re2d $INPUT -o $OUTPUT -i

enum Result{ OK, FAIL };




private Result lex(const(char)* s) {
    const(char)* yycursor = s, yymarker;
    
{
    char yych;
    uint yyaccept = 0;
    yych = *yycursor;
    switch (yych) {
        case '.': goto yy3;
        case '0': goto yy4;
        case '1': .. case '9': goto yy5;
        default: goto yy1;
    }
yy1:
    ++yycursor;
yy2:
    { return Result.FAIL; }
yy3:
    yych = *++yycursor;
    switch (yych) {
        case '0': .. case '9': goto yy7;
        default: goto yy2;
    }
yy4:
    yyaccept = 0;
    yych = *(yymarker = ++yycursor);
    switch (yych) {
        case '.': goto yy7;
        case '0': .. case '9': goto yy9;
        case 'E':
        case 'e': goto yy11;
        default: goto yy2;
    }
yy5:
    yyaccept = 1;
    yych = *(yymarker = ++yycursor);
    switch (yych) {
        case '.': goto yy7;
        case '0': .. case '9': goto yy5;
        case 'E':
        case 'e': goto yy11;
        default: goto yy6;
    }
yy6:
    { return Result.OK; }
yy7:
    yyaccept = 2;
    yych = *(yymarker = ++yycursor);
    switch (yych) {
        case '0': .. case '9': goto yy7;
        case 'E':
        case 'e': goto yy11;
        default: goto yy8;
    }
yy8:
    { return Result.OK; }
yy9:
    yych = *++yycursor;
    switch (yych) {
        case '.': goto yy7;
        case '0': .. case '9': goto yy9;
        case 'E':
        case 'e': goto yy11;
        default: goto yy10;
    }
yy10:
    yycursor = yymarker;
    switch (yyaccept) {
        case 0: goto yy2;
        case 1: goto yy6;
        default: goto yy8;
    }
yy11:
    yych = *++yycursor;
    switch (yych) {
        case '+':
        case '-': goto yy12;
        case '0': .. case '9': goto yy13;
        default: goto yy10;
    }
yy12:
    yych = *++yycursor;
    switch (yych) {
        case '0': .. case '9': goto yy13;
        default: goto yy10;
    }
yy13:
    yych = *++yycursor;
    switch (yych) {
        case '0': .. case '9': goto yy13;
        default: goto yy8;
    }
}

}

void main() {
    assert(lex("123") == Result.OK);
    assert(lex("123.4567") == Result.OK);
}