omnomnum 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ext/omnomnum/extconf.rb +51 -0
- data/ext/omnomnum/omnomnum/branchlut/branchlut.c +276 -0
- data/ext/omnomnum/omnomnum/branchlut/branchlut.h +14 -0
- data/ext/omnomnum/omnomnum/dtoa.c +68 -0
- data/ext/omnomnum/omnomnum/dtoa.h +39 -0
- data/ext/omnomnum/omnomnum/grisu2/diy_fp.h +61 -0
- data/ext/omnomnum/omnomnum/grisu2/double.h +121 -0
- data/ext/omnomnum/omnomnum/grisu2/fast_exponent.h +44 -0
- data/ext/omnomnum/omnomnum/grisu2/grisu2.c +120 -0
- data/ext/omnomnum/omnomnum/grisu2/grisu2.h +36 -0
- data/ext/omnomnum/omnomnum/grisu2/k_comp.h +32 -0
- data/ext/omnomnum/omnomnum/grisu2/powers.h +27 -0
- data/ext/omnomnum/omnomnum/grisu2/powers_ten_round64.h +36 -0
- data/ext/omnomnum/omnomnum/grisu2/prettify.h +76 -0
- data/ext/omnomnum/omnomnum/itoa.c +40 -0
- data/ext/omnomnum/omnomnum/itoa.h +40 -0
- data/ext/omnomnum/omnomnum/main.c +87 -0
- data/ext/omnomnum/omnomnum/omnomnum.c +208 -0
- data/ext/omnomnum/omnomnum/omnomnum.h +47 -0
- data/ext/omnomnum/omnomnum/parser.c +3445 -0
- data/ext/omnomnum/omnomnum/parser.h +130 -0
- data/ext/omnomnum/omnomnum/scan.c +55 -0
- data/ext/omnomnum/omnomnum/scan.h +68 -0
- data/ext/omnomnum/omnomnum/scanner.c +4332 -0
- data/ext/omnomnum/omnomnum/scanner.def.c +97 -0
- data/ext/omnomnum/omnomnum/scanner.def.h +105 -0
- data/ext/omnomnum/omnomnum/scanner.h +44 -0
- data/ext/omnomnum/omnomnum/sds.c +1278 -0
- data/ext/omnomnum/omnomnum/sds.h +280 -0
- data/ext/omnomnum/omnomnum/sdsalloc.h +43 -0
- data/ext/omnomnum/omnomnum/test/test_benchmark.c +107 -0
- data/ext/omnomnum/omnomnum/test/test_omnomnum.c +146 -0
- data/ext/omnomnum/omnomnum/test/test_omnomnum.h +6 -0
- data/ext/omnomnum/omnomnum/test/test_util.c +98 -0
- data/ext/omnomnum/omnomnum/util.c +84 -0
- data/ext/omnomnum/omnomnum/util.h +43 -0
- data/ext/omnomnum/ruby_omnomnum.c +96 -0
- data/ext/omnomnum/ruby_omnomnum.h +40 -0
- data/lib/omnomnum.rb +31 -0
- data/lib/omnomnum/omnomnum.so +0 -0
- data/lib/omnomnum/version.rb +32 -0
- metadata +114 -0
@@ -0,0 +1,130 @@
|
|
1
|
+
/* This file was automatically generated. Do not edit! */
|
2
|
+
#include <stdio.h>
|
3
|
+
#ifndef YYMALLOCARGTYPE
|
4
|
+
# define YYMALLOCARGTYPE size_t
|
5
|
+
#endif
|
6
|
+
#define ParseTOKENTYPE YYSTYPE
|
7
|
+
#define ParseARG_PDECL , ParserState *state
|
8
|
+
void Parse(void *yyp,int yymajor,ParseTOKENTYPE yyminor ParseARG_PDECL);
|
9
|
+
void ParseReset(void *p);
|
10
|
+
#if defined(YYTRACKMAXSTACKDEPTH)
|
11
|
+
int ParseStackPeak(void *p);
|
12
|
+
#endif
|
13
|
+
void ParseFree(void *p,void(*freeProc)(void *));
|
14
|
+
void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE));
|
15
|
+
#if !defined(NDEBUG)
|
16
|
+
void ParseTrace(FILE *TraceFILE,char *zTracePrompt);
|
17
|
+
#endif
|
18
|
+
#define ParseARG_STORE yypParser->state = state
|
19
|
+
#define ParseARG_FETCH ParserState *state = yypParser->state
|
20
|
+
#define ParseARG_SDECL ParserState *state ;
|
21
|
+
#define TOKEN_NINETIETHS 109
|
22
|
+
#define TOKEN_EIGHTIETHS 108
|
23
|
+
#define TOKEN_SEVENTIETHS 107
|
24
|
+
#define TOKEN_SIXTIETHS 106
|
25
|
+
#define TOKEN_FIFTIETHS 105
|
26
|
+
#define TOKEN_FOURTIETHS 104
|
27
|
+
#define TOKEN_THIRTIETHS 103
|
28
|
+
#define TOKEN_TWENTIETHS 102
|
29
|
+
#define TOKEN_NINETEENTHS 101
|
30
|
+
#define TOKEN_EIGHTEENTHS 100
|
31
|
+
#define TOKEN_SEVENTEENTHS 99
|
32
|
+
#define TOKEN_SIXTEENTHS 98
|
33
|
+
#define TOKEN_FIFTEENTHS 97
|
34
|
+
#define TOKEN_FOURTEENTHS 96
|
35
|
+
#define TOKEN_THIRTEENTHS 95
|
36
|
+
#define TOKEN_TWELFTHS 94
|
37
|
+
#define TOKEN_ELEVENTHS 93
|
38
|
+
#define TOKEN_TENTHS 92
|
39
|
+
#define TOKEN_NINTHS 91
|
40
|
+
#define TOKEN_EIGHTHS 90
|
41
|
+
#define TOKEN_SEVENTHS 89
|
42
|
+
#define TOKEN_SIXTHS 88
|
43
|
+
#define TOKEN_FIFTHS 87
|
44
|
+
#define TOKEN_FOURTHS 86
|
45
|
+
#define TOKEN_THIRDS 85
|
46
|
+
#define TOKEN_SECONDS 84
|
47
|
+
#define TOKEN_FIRSTS 83
|
48
|
+
#define TOKEN_NINETIETH 82
|
49
|
+
#define TOKEN_EIGHTIETH 81
|
50
|
+
#define TOKEN_SEVENTIETH 80
|
51
|
+
#define TOKEN_SIXTIETH 79
|
52
|
+
#define TOKEN_FIFTIETH 78
|
53
|
+
#define TOKEN_FOURTIETH 77
|
54
|
+
#define TOKEN_THIRTIETH 76
|
55
|
+
#define TOKEN_TWENTIETH 75
|
56
|
+
#define TOKEN_NINETEENTH 74
|
57
|
+
#define TOKEN_EIGHTEENTH 73
|
58
|
+
#define TOKEN_SEVENTEENTH 72
|
59
|
+
#define TOKEN_SIXTEENTH 71
|
60
|
+
#define TOKEN_FIFTEENTH 70
|
61
|
+
#define TOKEN_FOURTEENTH 69
|
62
|
+
#define TOKEN_THIRTEENTH 68
|
63
|
+
#define TOKEN_TWELFTH 67
|
64
|
+
#define TOKEN_ELEVENTH 66
|
65
|
+
#define TOKEN_TENTH 65
|
66
|
+
#define TOKEN_NINTH 64
|
67
|
+
#define TOKEN_EIGHTH 63
|
68
|
+
#define TOKEN_SEVENTH 62
|
69
|
+
#define TOKEN_SIXTH 61
|
70
|
+
#define TOKEN_FIFTH 60
|
71
|
+
#define TOKEN_FOURTH 59
|
72
|
+
#define TOKEN_THIRD 58
|
73
|
+
#define TOKEN_SECOND 57
|
74
|
+
#define TOKEN_FIRST 56
|
75
|
+
#define TOKEN_NINETY 55
|
76
|
+
#define TOKEN_EIGHTY 54
|
77
|
+
#define TOKEN_SEVENTY 53
|
78
|
+
#define TOKEN_SIXTY 52
|
79
|
+
#define TOKEN_FIFTY 51
|
80
|
+
#define TOKEN_FORTY 50
|
81
|
+
#define TOKEN_THIRTY 49
|
82
|
+
#define TOKEN_TWENTY 48
|
83
|
+
#define TOKEN_NINETEEN 47
|
84
|
+
#define TOKEN_EIGHTEEN 46
|
85
|
+
#define TOKEN_SEVENTEEN 45
|
86
|
+
#define TOKEN_SIXTEEN 44
|
87
|
+
#define TOKEN_FIFTEEN 43
|
88
|
+
#define TOKEN_FOURTEEN 42
|
89
|
+
#define TOKEN_THIRTEEN 41
|
90
|
+
#define TOKEN_TWELVE 40
|
91
|
+
#define TOKEN_ELEVEN 39
|
92
|
+
#define TOKEN_TEN 38
|
93
|
+
#define TOKEN_NINE 37
|
94
|
+
#define TOKEN_EIGHT 36
|
95
|
+
#define TOKEN_SEVEN 35
|
96
|
+
#define TOKEN_SIX 34
|
97
|
+
#define TOKEN_FIVE 33
|
98
|
+
#define TOKEN_FOUR 32
|
99
|
+
#define TOKEN_THREE 31
|
100
|
+
#define TOKEN_TWO 30
|
101
|
+
#define TOKEN_HUNDREDTHS 29
|
102
|
+
#define TOKEN_HUNDREDTH 28
|
103
|
+
#define TOKEN_HUNDRED 27
|
104
|
+
#define TOKEN_THOUSANDTHS 26
|
105
|
+
#define TOKEN_THOUSANDTH 25
|
106
|
+
#define TOKEN_THOUSAND 24
|
107
|
+
#define TOKEN_MILLIONTHS 23
|
108
|
+
#define TOKEN_MILLIONTH 22
|
109
|
+
#define TOKEN_MILLION 21
|
110
|
+
#define TOKEN_BILLIONTHS 20
|
111
|
+
#define TOKEN_BILLIONTH 19
|
112
|
+
#define TOKEN_BILLION 18
|
113
|
+
#define TOKEN_TRILLIONTHS 17
|
114
|
+
#define TOKEN_TRILLIONTH 16
|
115
|
+
#define TOKEN_TRILLION 15
|
116
|
+
#define TOKEN_ZERO 14
|
117
|
+
#define TOKEN_DECIMAL 13
|
118
|
+
#define TOKEN_WHOLE_NUMBER 12
|
119
|
+
#define TOKEN_ZERO_WHOLE_NUMBER 11
|
120
|
+
#define TOKEN_AN 10
|
121
|
+
#define TOKEN_AND 9
|
122
|
+
#define TOKEN_HALVES 8
|
123
|
+
#define TOKEN_A 7
|
124
|
+
#define TOKEN_ONE 6
|
125
|
+
#define TOKEN_QUARTERS 5
|
126
|
+
#define TOKEN_HALF 4
|
127
|
+
#define TOKEN_QUARTER 3
|
128
|
+
#define TOKEN_AND_A 2
|
129
|
+
#define TOKEN_NEGATIVE 1
|
130
|
+
#define INTERFACE 0
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* OmNomNum 0.0.2 -- Gobbles up numbers in strings.
|
2
|
+
*
|
3
|
+
* Copyright (c) 2017, Jesse Buesking <jessebuesking at gmail dot com>
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are met:
|
8
|
+
*
|
9
|
+
* * Redistributions of source code must retain the above copyright notice,
|
10
|
+
* this list of conditions and the following disclaimer.
|
11
|
+
* * Redistributions in binary form must reproduce the above copyright
|
12
|
+
* notice, this list of conditions and the following disclaimer in the
|
13
|
+
* documentation and/or other materials provided with the distribution.
|
14
|
+
* * Neither the name of OmNomNum nor the names of its contributors may be used
|
15
|
+
* to endorse or promote products derived from this software without
|
16
|
+
* specific prior written permission.
|
17
|
+
*
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
19
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
20
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
21
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
22
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
23
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
24
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
25
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
26
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
27
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
28
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
29
|
+
*/
|
30
|
+
|
31
|
+
#include "scan.h"
|
32
|
+
|
33
|
+
/*
|
34
|
+
* Initializes the scanstate structure.
|
35
|
+
*
|
36
|
+
* @param ss The scanstate structure to initialize.
|
37
|
+
* @param bufptr The buffer that the scanner should use.
|
38
|
+
* @param bufsiz The size in bytes of the buffer passed in bufptr.
|
39
|
+
*
|
40
|
+
* Initializes the given scanstate structure and tells it to use
|
41
|
+
* the provided buffer.
|
42
|
+
*
|
43
|
+
* If you don't need to buffer the data
|
44
|
+
* (for instance, when using readmem.h), pass NULL for bufptr
|
45
|
+
* and 0 for bufsiz.
|
46
|
+
*
|
47
|
+
* You probably want to attach a reader after calling this routine.
|
48
|
+
*/
|
49
|
+
void scanstate_init(scanstate *ss, const char *bufptr, size_t bufsiz)
|
50
|
+
{
|
51
|
+
ss->cursor = bufptr;
|
52
|
+
ss->marker = NULL;
|
53
|
+
ss->token = bufptr;
|
54
|
+
ss->limit = bufptr + bufsiz;
|
55
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/* OmNomNum 0.0.2 -- Gobbles up numbers in strings.
|
2
|
+
*
|
3
|
+
* Copyright (c) 2017, Jesse Buesking <jessebuesking at gmail dot com>
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are met:
|
8
|
+
*
|
9
|
+
* * Redistributions of source code must retain the above copyright notice,
|
10
|
+
* this list of conditions and the following disclaimer.
|
11
|
+
* * Redistributions in binary form must reproduce the above copyright
|
12
|
+
* notice, this list of conditions and the following disclaimer in the
|
13
|
+
* documentation and/or other materials provided with the distribution.
|
14
|
+
* * Neither the name of OmNomNum nor the names of its contributors may be used
|
15
|
+
* to endorse or promote products derived from this software without
|
16
|
+
* specific prior written permission.
|
17
|
+
*
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
19
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
20
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
21
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
22
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
23
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
24
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
25
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
26
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
27
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
28
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
29
|
+
*/
|
30
|
+
|
31
|
+
#ifndef SCAN_H
|
32
|
+
#define SCAN_H
|
33
|
+
|
34
|
+
// to pull in the definition for size_t
|
35
|
+
#include <sys/types.h>
|
36
|
+
// pull in definition for NULL
|
37
|
+
#include <string.h>
|
38
|
+
#include "scanner.def.h"
|
39
|
+
|
40
|
+
// for re2c...
|
41
|
+
#define YYCTYPE unsigned char
|
42
|
+
#define YYCURSOR (ss->cursor)
|
43
|
+
#define YYLIMIT (ss->limit)
|
44
|
+
#define YYMARKER (ss->marker)
|
45
|
+
|
46
|
+
#define YYDEBUG(state, current) printf("state: '%d', current: '0x%02X'\n", state, (unsigned char)current);
|
47
|
+
|
48
|
+
// forward declaration
|
49
|
+
struct scanstate;
|
50
|
+
/*
|
51
|
+
* Contains all state for a single scan session.
|
52
|
+
*
|
53
|
+
* This structure is used by a scanner to preserve its state.
|
54
|
+
*
|
55
|
+
* All charptrs are declared const to help ensure that you don't
|
56
|
+
* accidentally end up modifying the buffer as it's being scanned.
|
57
|
+
*/
|
58
|
+
struct scanstate {
|
59
|
+
const char *cursor; /*The current character being looked at by the scanner. This is the same as re2c's YYCURSOR.*/
|
60
|
+
const char *limit; /*The last (uppermost) valid character in the current buffer. This is the same as re2c's YYLIMIT.*/
|
61
|
+
const char *marker; /*Used internally by re2c engine to handle backtracking. This is the same as re2c's YYMARKER.*/
|
62
|
+
const char *token; /*The start of the current token.*/
|
63
|
+
};
|
64
|
+
typedef struct scanstate scanstate;
|
65
|
+
|
66
|
+
void scanstate_init(scanstate *ss, const char *bufptr, size_t bufsiz);
|
67
|
+
|
68
|
+
#endif // SCAN_H
|
@@ -0,0 +1,4332 @@
|
|
1
|
+
/* Generated by re2c 0.16 on Fri Feb 3 08:00:43 2017 */
|
2
|
+
#line 1 "scanner.re"
|
3
|
+
/* OmNomNum 0.0.2 -- Gobbles up numbers in strings.
|
4
|
+
*
|
5
|
+
* Copyright (c) 2017, Jesse Buesking <jessebuesking at gmail dot com>
|
6
|
+
* All rights reserved.
|
7
|
+
*
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
10
|
+
*
|
11
|
+
* * Redistributions of source code must retain the above copyright notice,
|
12
|
+
* this list of conditions and the following disclaimer.
|
13
|
+
* * Redistributions in binary form must reproduce the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer in the
|
15
|
+
* documentation and/or other materials provided with the distribution.
|
16
|
+
* * Neither the name of OmNomNum nor the names of its contributors may be used
|
17
|
+
* to endorse or promote products derived from this software without
|
18
|
+
* specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
23
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
24
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
25
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
26
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
29
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*/
|
32
|
+
|
33
|
+
#include "scanner.h"
|
34
|
+
|
35
|
+
#define TOKEN_SEPARATOR 10000
|
36
|
+
#define TOKEN_CHARACTERS 10001
|
37
|
+
#define TOKEN_ALL_OTHERS 10002
|
38
|
+
|
39
|
+
int omnomnum_scanner_start(ParserState *state, void *pParser, YYSTYPE *yylval, scanstate *ss) {
|
40
|
+
fast_path:
|
41
|
+
ss->token = ss->cursor;
|
42
|
+
|
43
|
+
#line 44 "scanner.c"
|
44
|
+
{
|
45
|
+
YYCTYPE yych;
|
46
|
+
unsigned int yyaccept = 0;
|
47
|
+
yych = *YYCURSOR;
|
48
|
+
switch (yych) {
|
49
|
+
case 0x00: goto yy2;
|
50
|
+
case '\t':
|
51
|
+
case '\n':
|
52
|
+
case '\f':
|
53
|
+
case '\r':
|
54
|
+
case ' ': goto yy6;
|
55
|
+
case '+': goto yy9;
|
56
|
+
case '-': goto yy10;
|
57
|
+
case '.': goto yy12;
|
58
|
+
case '0': goto yy13;
|
59
|
+
case '1': goto yy14;
|
60
|
+
case '2':
|
61
|
+
case '3':
|
62
|
+
case '4':
|
63
|
+
case '5':
|
64
|
+
case '6':
|
65
|
+
case '7':
|
66
|
+
case '8':
|
67
|
+
case '9': goto yy16;
|
68
|
+
case 'A':
|
69
|
+
case 'a': goto yy18;
|
70
|
+
case 'B':
|
71
|
+
case 'b': goto yy20;
|
72
|
+
case 'C':
|
73
|
+
case 'D':
|
74
|
+
case 'G':
|
75
|
+
case 'I':
|
76
|
+
case 'J':
|
77
|
+
case 'K':
|
78
|
+
case 'L':
|
79
|
+
case 'P':
|
80
|
+
case 'R':
|
81
|
+
case 'U':
|
82
|
+
case 'V':
|
83
|
+
case 'W':
|
84
|
+
case 'X':
|
85
|
+
case 'Y':
|
86
|
+
case 'c':
|
87
|
+
case 'd':
|
88
|
+
case 'g':
|
89
|
+
case 'i':
|
90
|
+
case 'j':
|
91
|
+
case 'k':
|
92
|
+
case 'l':
|
93
|
+
case 'p':
|
94
|
+
case 'r':
|
95
|
+
case 'u':
|
96
|
+
case 'v':
|
97
|
+
case 'w':
|
98
|
+
case 'x':
|
99
|
+
case 'y': goto yy22;
|
100
|
+
case 'E':
|
101
|
+
case 'e': goto yy23;
|
102
|
+
case 'F':
|
103
|
+
case 'f': goto yy24;
|
104
|
+
case 'H':
|
105
|
+
case 'h': goto yy25;
|
106
|
+
case 'M':
|
107
|
+
case 'm': goto yy26;
|
108
|
+
case 'N':
|
109
|
+
case 'n': goto yy27;
|
110
|
+
case 'O':
|
111
|
+
case 'o': goto yy28;
|
112
|
+
case 'Q':
|
113
|
+
case 'q': goto yy29;
|
114
|
+
case 'S':
|
115
|
+
case 's': goto yy30;
|
116
|
+
case 'T':
|
117
|
+
case 't': goto yy31;
|
118
|
+
case 'Z':
|
119
|
+
case 'z': goto yy32;
|
120
|
+
default: goto yy4;
|
121
|
+
}
|
122
|
+
yy2:
|
123
|
+
++YYCURSOR;
|
124
|
+
#line 465 "scanner.re"
|
125
|
+
{
|
126
|
+
if (ss->cursor >= ss->limit) {
|
127
|
+
// at the end of the string, so return
|
128
|
+
return 0;
|
129
|
+
}
|
130
|
+
|
131
|
+
// just at a null byte in the middle of the string, so continue
|
132
|
+
goto fast_path;
|
133
|
+
}
|
134
|
+
#line 135 "scanner.c"
|
135
|
+
yy4:
|
136
|
+
++YYCURSOR;
|
137
|
+
yy5:
|
138
|
+
#line 493 "scanner.re"
|
139
|
+
{
|
140
|
+
if (state->is_parsing) {
|
141
|
+
Parse(pParser, 0, *yylval, state);
|
142
|
+
ParseReset(pParser);
|
143
|
+
state->is_parsing = false;
|
144
|
+
}
|
145
|
+
|
146
|
+
state->last_token = TOKEN_ALL_OTHERS;
|
147
|
+
goto fast_path;
|
148
|
+
}
|
149
|
+
#line 150 "scanner.c"
|
150
|
+
yy6:
|
151
|
+
++YYCURSOR;
|
152
|
+
yych = *YYCURSOR;
|
153
|
+
switch (yych) {
|
154
|
+
case '\t':
|
155
|
+
case '\n':
|
156
|
+
case '\f':
|
157
|
+
case '\r':
|
158
|
+
case ' ':
|
159
|
+
case '-': goto yy6;
|
160
|
+
default: goto yy8;
|
161
|
+
}
|
162
|
+
yy8:
|
163
|
+
#line 253 "scanner.re"
|
164
|
+
{
|
165
|
+
if (!state->is_parsing) {
|
166
|
+
// not parsing and we've found a character. gobble it and continue
|
167
|
+
state->last_token = TOKEN_SEPARATOR;
|
168
|
+
goto fast_path;
|
169
|
+
}
|
170
|
+
|
171
|
+
return TOKEN_SEPARATOR;
|
172
|
+
}
|
173
|
+
#line 174 "scanner.c"
|
174
|
+
yy9:
|
175
|
+
yyaccept = 0;
|
176
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
177
|
+
switch (yych) {
|
178
|
+
case '+':
|
179
|
+
case '-': goto yy33;
|
180
|
+
case '0':
|
181
|
+
case '1':
|
182
|
+
case '2':
|
183
|
+
case '3':
|
184
|
+
case '4':
|
185
|
+
case '5':
|
186
|
+
case '6':
|
187
|
+
case '7':
|
188
|
+
case '8':
|
189
|
+
case '9': goto yy36;
|
190
|
+
default: goto yy5;
|
191
|
+
}
|
192
|
+
yy10:
|
193
|
+
yyaccept = 1;
|
194
|
+
YYMARKER = ++YYCURSOR;
|
195
|
+
yych = *YYCURSOR;
|
196
|
+
switch (yych) {
|
197
|
+
case '\t':
|
198
|
+
case '\n':
|
199
|
+
case '\f':
|
200
|
+
case '\r':
|
201
|
+
case ' ': goto yy6;
|
202
|
+
case '+': goto yy33;
|
203
|
+
case '-': goto yy10;
|
204
|
+
case '0':
|
205
|
+
case '1':
|
206
|
+
case '2':
|
207
|
+
case '3':
|
208
|
+
case '4':
|
209
|
+
case '5':
|
210
|
+
case '6':
|
211
|
+
case '7':
|
212
|
+
case '8':
|
213
|
+
case '9': goto yy36;
|
214
|
+
default: goto yy8;
|
215
|
+
}
|
216
|
+
yy12:
|
217
|
+
yych = *++YYCURSOR;
|
218
|
+
switch (yych) {
|
219
|
+
case '0':
|
220
|
+
case '1':
|
221
|
+
case '2':
|
222
|
+
case '3':
|
223
|
+
case '4':
|
224
|
+
case '5':
|
225
|
+
case '6':
|
226
|
+
case '7':
|
227
|
+
case '8':
|
228
|
+
case '9': goto yy37;
|
229
|
+
default: goto yy5;
|
230
|
+
}
|
231
|
+
yy13:
|
232
|
+
yyaccept = 0;
|
233
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
234
|
+
switch (yych) {
|
235
|
+
case ' ': goto yy40;
|
236
|
+
case '\'': goto yy41;
|
237
|
+
case ',': goto yy42;
|
238
|
+
case '.': goto yy43;
|
239
|
+
case '/': goto yy44;
|
240
|
+
case '0':
|
241
|
+
case '1':
|
242
|
+
case '2':
|
243
|
+
case '3':
|
244
|
+
case '4':
|
245
|
+
case '5':
|
246
|
+
case '6':
|
247
|
+
case '7':
|
248
|
+
case '8':
|
249
|
+
case '9': goto yy45;
|
250
|
+
default: goto yy5;
|
251
|
+
}
|
252
|
+
yy14:
|
253
|
+
yyaccept = 2;
|
254
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
255
|
+
switch (yych) {
|
256
|
+
case ' ': goto yy40;
|
257
|
+
case '\'': goto yy41;
|
258
|
+
case ',': goto yy42;
|
259
|
+
case '.': goto yy43;
|
260
|
+
case '/': goto yy44;
|
261
|
+
case '0':
|
262
|
+
case '1':
|
263
|
+
case '2':
|
264
|
+
case '3':
|
265
|
+
case '4':
|
266
|
+
case '5':
|
267
|
+
case '6':
|
268
|
+
case '7':
|
269
|
+
case '8':
|
270
|
+
case '9': goto yy47;
|
271
|
+
default: goto yy15;
|
272
|
+
}
|
273
|
+
yy15:
|
274
|
+
#line 83 "scanner.re"
|
275
|
+
{ return TOKEN_ONE; }
|
276
|
+
#line 277 "scanner.c"
|
277
|
+
yy16:
|
278
|
+
yyaccept = 3;
|
279
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
280
|
+
switch (yych) {
|
281
|
+
case ' ': goto yy40;
|
282
|
+
case '\'': goto yy41;
|
283
|
+
case ',': goto yy42;
|
284
|
+
case '.': goto yy43;
|
285
|
+
case '/': goto yy44;
|
286
|
+
case '0':
|
287
|
+
case '1':
|
288
|
+
case '2':
|
289
|
+
case '3':
|
290
|
+
case '4':
|
291
|
+
case '5':
|
292
|
+
case '6':
|
293
|
+
case '7':
|
294
|
+
case '8':
|
295
|
+
case '9': goto yy47;
|
296
|
+
default: goto yy17;
|
297
|
+
}
|
298
|
+
yy17:
|
299
|
+
#line 449 "scanner.re"
|
300
|
+
{
|
301
|
+
// turn string version of number into double
|
302
|
+
sds string_value = sdsnewlen(ss->token, ss->cursor - ss->token);
|
303
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
304
|
+
sdsfree(string_value);
|
305
|
+
|
306
|
+
return TOKEN_WHOLE_NUMBER;
|
307
|
+
}
|
308
|
+
#line 309 "scanner.c"
|
309
|
+
yy18:
|
310
|
+
yyaccept = 4;
|
311
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
312
|
+
switch (yych) {
|
313
|
+
case ' ': goto yy48;
|
314
|
+
case 'N':
|
315
|
+
case 'n': goto yy49;
|
316
|
+
default: goto yy19;
|
317
|
+
}
|
318
|
+
yy19:
|
319
|
+
#line 75 "scanner.re"
|
320
|
+
{ return TOKEN_A; }
|
321
|
+
#line 322 "scanner.c"
|
322
|
+
yy20:
|
323
|
+
yyaccept = 5;
|
324
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
325
|
+
switch (yych) {
|
326
|
+
case 'I':
|
327
|
+
case 'i': goto yy51;
|
328
|
+
default: goto yy21;
|
329
|
+
}
|
330
|
+
yy21:
|
331
|
+
#line 475 "scanner.re"
|
332
|
+
{
|
333
|
+
if (state->is_parsing) {
|
334
|
+
if (state->last_token != TOKEN_SEPARATOR) {
|
335
|
+
// number followed by character... e.g. "oneself"
|
336
|
+
} else {
|
337
|
+
// finish whatever we had and reset
|
338
|
+
Parse(pParser, 0, *yylval, state);
|
339
|
+
}
|
340
|
+
|
341
|
+
ParseReset(pParser);
|
342
|
+
state->is_parsing = false;
|
343
|
+
}
|
344
|
+
|
345
|
+
state->last_token = TOKEN_CHARACTERS;
|
346
|
+
goto fast_path;
|
347
|
+
}
|
348
|
+
#line 349 "scanner.c"
|
349
|
+
yy22:
|
350
|
+
yych = *++YYCURSOR;
|
351
|
+
goto yy21;
|
352
|
+
yy23:
|
353
|
+
yyaccept = 5;
|
354
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
355
|
+
switch (yych) {
|
356
|
+
case 'I':
|
357
|
+
case 'i': goto yy52;
|
358
|
+
case 'L':
|
359
|
+
case 'l': goto yy53;
|
360
|
+
default: goto yy21;
|
361
|
+
}
|
362
|
+
yy24:
|
363
|
+
yyaccept = 5;
|
364
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
365
|
+
switch (yych) {
|
366
|
+
case 'I':
|
367
|
+
case 'i': goto yy54;
|
368
|
+
case 'O':
|
369
|
+
case 'o': goto yy55;
|
370
|
+
default: goto yy21;
|
371
|
+
}
|
372
|
+
yy25:
|
373
|
+
yyaccept = 5;
|
374
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
375
|
+
switch (yych) {
|
376
|
+
case 'A':
|
377
|
+
case 'a': goto yy56;
|
378
|
+
case 'U':
|
379
|
+
case 'u': goto yy57;
|
380
|
+
default: goto yy21;
|
381
|
+
}
|
382
|
+
yy26:
|
383
|
+
yyaccept = 5;
|
384
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
385
|
+
switch (yych) {
|
386
|
+
case 'I':
|
387
|
+
case 'i': goto yy58;
|
388
|
+
default: goto yy21;
|
389
|
+
}
|
390
|
+
yy27:
|
391
|
+
yyaccept = 5;
|
392
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
393
|
+
switch (yych) {
|
394
|
+
case 'E':
|
395
|
+
case 'e': goto yy59;
|
396
|
+
case 'I':
|
397
|
+
case 'i': goto yy60;
|
398
|
+
default: goto yy21;
|
399
|
+
}
|
400
|
+
yy28:
|
401
|
+
yyaccept = 5;
|
402
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
403
|
+
switch (yych) {
|
404
|
+
case 'N':
|
405
|
+
case 'n': goto yy61;
|
406
|
+
default: goto yy21;
|
407
|
+
}
|
408
|
+
yy29:
|
409
|
+
yyaccept = 5;
|
410
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
411
|
+
switch (yych) {
|
412
|
+
case 'U':
|
413
|
+
case 'u': goto yy62;
|
414
|
+
default: goto yy21;
|
415
|
+
}
|
416
|
+
yy30:
|
417
|
+
yyaccept = 5;
|
418
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
419
|
+
switch (yych) {
|
420
|
+
case 'E':
|
421
|
+
case 'e': goto yy63;
|
422
|
+
case 'I':
|
423
|
+
case 'i': goto yy64;
|
424
|
+
default: goto yy21;
|
425
|
+
}
|
426
|
+
yy31:
|
427
|
+
yyaccept = 5;
|
428
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
429
|
+
switch (yych) {
|
430
|
+
case 'E':
|
431
|
+
case 'e': goto yy65;
|
432
|
+
case 'H':
|
433
|
+
case 'h': goto yy66;
|
434
|
+
case 'R':
|
435
|
+
case 'r': goto yy67;
|
436
|
+
case 'W':
|
437
|
+
case 'w': goto yy68;
|
438
|
+
default: goto yy21;
|
439
|
+
}
|
440
|
+
yy32:
|
441
|
+
yyaccept = 5;
|
442
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
443
|
+
switch (yych) {
|
444
|
+
case 'E':
|
445
|
+
case 'e': goto yy69;
|
446
|
+
default: goto yy21;
|
447
|
+
}
|
448
|
+
yy33:
|
449
|
+
++YYCURSOR;
|
450
|
+
yych = *YYCURSOR;
|
451
|
+
switch (yych) {
|
452
|
+
case '+':
|
453
|
+
case '-': goto yy33;
|
454
|
+
case '0':
|
455
|
+
case '1':
|
456
|
+
case '2':
|
457
|
+
case '3':
|
458
|
+
case '4':
|
459
|
+
case '5':
|
460
|
+
case '6':
|
461
|
+
case '7':
|
462
|
+
case '8':
|
463
|
+
case '9': goto yy36;
|
464
|
+
default: goto yy35;
|
465
|
+
}
|
466
|
+
yy35:
|
467
|
+
YYCURSOR = YYMARKER;
|
468
|
+
switch (yyaccept) {
|
469
|
+
case 0: goto yy5;
|
470
|
+
case 1: goto yy8;
|
471
|
+
case 2: goto yy15;
|
472
|
+
case 3: goto yy17;
|
473
|
+
case 4: goto yy19;
|
474
|
+
case 5: goto yy21;
|
475
|
+
case 6: goto yy46;
|
476
|
+
case 7: goto yy87;
|
477
|
+
case 8: goto yy106;
|
478
|
+
case 9: goto yy108;
|
479
|
+
case 10: goto yy142;
|
480
|
+
case 11: goto yy150;
|
481
|
+
case 12: goto yy171;
|
482
|
+
case 13: goto yy39;
|
483
|
+
case 14: goto yy78;
|
484
|
+
case 15: goto yy190;
|
485
|
+
case 16: goto yy215;
|
486
|
+
case 17: goto yy261;
|
487
|
+
case 18: goto yy321;
|
488
|
+
case 19: goto yy330;
|
489
|
+
case 20: goto yy340;
|
490
|
+
case 21: goto yy347;
|
491
|
+
case 22: goto yy355;
|
492
|
+
case 23: goto yy357;
|
493
|
+
case 24: goto yy376;
|
494
|
+
case 25: goto yy389;
|
495
|
+
case 26: goto yy392;
|
496
|
+
case 27: goto yy403;
|
497
|
+
case 28: goto yy413;
|
498
|
+
case 29: goto yy420;
|
499
|
+
case 30: goto yy432;
|
500
|
+
case 31: goto yy435;
|
501
|
+
case 32: goto yy437;
|
502
|
+
case 33: goto yy445;
|
503
|
+
case 34: goto yy447;
|
504
|
+
case 35: goto yy449;
|
505
|
+
case 36: goto yy474;
|
506
|
+
case 37: goto yy489;
|
507
|
+
case 38: goto yy495;
|
508
|
+
default: goto yy497;
|
509
|
+
}
|
510
|
+
yy36:
|
511
|
+
yych = *++YYCURSOR;
|
512
|
+
switch (yych) {
|
513
|
+
case ' ': goto yy40;
|
514
|
+
case '\'': goto yy41;
|
515
|
+
case ',': goto yy42;
|
516
|
+
case '.': goto yy70;
|
517
|
+
case '0':
|
518
|
+
case '1':
|
519
|
+
case '2':
|
520
|
+
case '3':
|
521
|
+
case '4':
|
522
|
+
case '5':
|
523
|
+
case '6':
|
524
|
+
case '7':
|
525
|
+
case '8':
|
526
|
+
case '9': goto yy71;
|
527
|
+
default: goto yy35;
|
528
|
+
}
|
529
|
+
yy37:
|
530
|
+
++YYCURSOR;
|
531
|
+
yych = *YYCURSOR;
|
532
|
+
yy38:
|
533
|
+
switch (yych) {
|
534
|
+
case '0':
|
535
|
+
case '1':
|
536
|
+
case '2':
|
537
|
+
case '3':
|
538
|
+
case '4':
|
539
|
+
case '5':
|
540
|
+
case '6':
|
541
|
+
case '7':
|
542
|
+
case '8':
|
543
|
+
case '9': goto yy37;
|
544
|
+
default: goto yy39;
|
545
|
+
}
|
546
|
+
yy39:
|
547
|
+
#line 457 "scanner.re"
|
548
|
+
{
|
549
|
+
// turn string version of number into double
|
550
|
+
sds string_value = sdsnewlen(ss->token, ss->cursor - ss->token);
|
551
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
552
|
+
sdsfree(string_value);
|
553
|
+
|
554
|
+
return TOKEN_DECIMAL;
|
555
|
+
}
|
556
|
+
#line 557 "scanner.c"
|
557
|
+
yy40:
|
558
|
+
++YYCURSOR;
|
559
|
+
yych = *YYCURSOR;
|
560
|
+
switch (yych) {
|
561
|
+
case '0':
|
562
|
+
case '1':
|
563
|
+
case '2':
|
564
|
+
case '3':
|
565
|
+
case '4':
|
566
|
+
case '5':
|
567
|
+
case '6':
|
568
|
+
case '7':
|
569
|
+
case '8':
|
570
|
+
case '9': goto yy72;
|
571
|
+
default: goto yy35;
|
572
|
+
}
|
573
|
+
yy41:
|
574
|
+
++YYCURSOR;
|
575
|
+
yych = *YYCURSOR;
|
576
|
+
switch (yych) {
|
577
|
+
case '0':
|
578
|
+
case '1':
|
579
|
+
case '2':
|
580
|
+
case '3':
|
581
|
+
case '4':
|
582
|
+
case '5':
|
583
|
+
case '6':
|
584
|
+
case '7':
|
585
|
+
case '8':
|
586
|
+
case '9': goto yy73;
|
587
|
+
default: goto yy35;
|
588
|
+
}
|
589
|
+
yy42:
|
590
|
+
yych = *++YYCURSOR;
|
591
|
+
switch (yych) {
|
592
|
+
case '0':
|
593
|
+
case '1':
|
594
|
+
case '2':
|
595
|
+
case '3':
|
596
|
+
case '4':
|
597
|
+
case '5':
|
598
|
+
case '6':
|
599
|
+
case '7':
|
600
|
+
case '8':
|
601
|
+
case '9': goto yy74;
|
602
|
+
default: goto yy35;
|
603
|
+
}
|
604
|
+
yy43:
|
605
|
+
yych = *++YYCURSOR;
|
606
|
+
switch (yych) {
|
607
|
+
case '0':
|
608
|
+
case '1':
|
609
|
+
case '2':
|
610
|
+
case '3':
|
611
|
+
case '4':
|
612
|
+
case '5':
|
613
|
+
case '6':
|
614
|
+
case '7':
|
615
|
+
case '8':
|
616
|
+
case '9': goto yy75;
|
617
|
+
default: goto yy35;
|
618
|
+
}
|
619
|
+
yy44:
|
620
|
+
yych = *++YYCURSOR;
|
621
|
+
switch (yych) {
|
622
|
+
case '0':
|
623
|
+
case '1':
|
624
|
+
case '2':
|
625
|
+
case '3':
|
626
|
+
case '4':
|
627
|
+
case '5':
|
628
|
+
case '6':
|
629
|
+
case '7':
|
630
|
+
case '8':
|
631
|
+
case '9': goto yy76;
|
632
|
+
default: goto yy35;
|
633
|
+
}
|
634
|
+
yy45:
|
635
|
+
yyaccept = 6;
|
636
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
637
|
+
switch (yych) {
|
638
|
+
case ' ': goto yy40;
|
639
|
+
case '\'': goto yy41;
|
640
|
+
case ',': goto yy42;
|
641
|
+
case '.': goto yy43;
|
642
|
+
case '/': goto yy79;
|
643
|
+
case '0':
|
644
|
+
case '1':
|
645
|
+
case '2':
|
646
|
+
case '3':
|
647
|
+
case '4':
|
648
|
+
case '5':
|
649
|
+
case '6':
|
650
|
+
case '7':
|
651
|
+
case '8':
|
652
|
+
case '9': goto yy80;
|
653
|
+
default: goto yy46;
|
654
|
+
}
|
655
|
+
yy46:
|
656
|
+
#line 441 "scanner.re"
|
657
|
+
{
|
658
|
+
// turn string version of number into double
|
659
|
+
sds string_value = sdsnewlen(ss->token, ss->cursor - ss->token);
|
660
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
661
|
+
sdsfree(string_value);
|
662
|
+
|
663
|
+
return TOKEN_ZERO_WHOLE_NUMBER;
|
664
|
+
}
|
665
|
+
#line 666 "scanner.c"
|
666
|
+
yy47:
|
667
|
+
yyaccept = 3;
|
668
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
669
|
+
switch (yych) {
|
670
|
+
case ' ': goto yy40;
|
671
|
+
case '\'': goto yy41;
|
672
|
+
case ',': goto yy42;
|
673
|
+
case '.': goto yy43;
|
674
|
+
case '/': goto yy79;
|
675
|
+
case '0':
|
676
|
+
case '1':
|
677
|
+
case '2':
|
678
|
+
case '3':
|
679
|
+
case '4':
|
680
|
+
case '5':
|
681
|
+
case '6':
|
682
|
+
case '7':
|
683
|
+
case '8':
|
684
|
+
case '9': goto yy81;
|
685
|
+
default: goto yy17;
|
686
|
+
}
|
687
|
+
yy48:
|
688
|
+
yych = *++YYCURSOR;
|
689
|
+
switch (yych) {
|
690
|
+
case 'B':
|
691
|
+
case 'b': goto yy82;
|
692
|
+
case 'H':
|
693
|
+
case 'h': goto yy83;
|
694
|
+
case 'M':
|
695
|
+
case 'm': goto yy84;
|
696
|
+
case 'T':
|
697
|
+
case 't': goto yy85;
|
698
|
+
default: goto yy35;
|
699
|
+
}
|
700
|
+
yy49:
|
701
|
+
++YYCURSOR;
|
702
|
+
switch ((yych = *YYCURSOR)) {
|
703
|
+
case 'D':
|
704
|
+
case 'd': goto yy86;
|
705
|
+
default: goto yy50;
|
706
|
+
}
|
707
|
+
yy50:
|
708
|
+
#line 76 "scanner.re"
|
709
|
+
{ return TOKEN_AN; }
|
710
|
+
#line 711 "scanner.c"
|
711
|
+
yy51:
|
712
|
+
yych = *++YYCURSOR;
|
713
|
+
switch (yych) {
|
714
|
+
case 'L':
|
715
|
+
case 'l': goto yy88;
|
716
|
+
default: goto yy35;
|
717
|
+
}
|
718
|
+
yy52:
|
719
|
+
yych = *++YYCURSOR;
|
720
|
+
switch (yych) {
|
721
|
+
case 'G':
|
722
|
+
case 'g': goto yy89;
|
723
|
+
default: goto yy35;
|
724
|
+
}
|
725
|
+
yy53:
|
726
|
+
yych = *++YYCURSOR;
|
727
|
+
switch (yych) {
|
728
|
+
case 'E':
|
729
|
+
case 'e': goto yy90;
|
730
|
+
default: goto yy35;
|
731
|
+
}
|
732
|
+
yy54:
|
733
|
+
yych = *++YYCURSOR;
|
734
|
+
switch (yych) {
|
735
|
+
case 'F':
|
736
|
+
case 'f': goto yy91;
|
737
|
+
case 'R':
|
738
|
+
case 'r': goto yy92;
|
739
|
+
case 'V':
|
740
|
+
case 'v': goto yy93;
|
741
|
+
default: goto yy35;
|
742
|
+
}
|
743
|
+
yy55:
|
744
|
+
yych = *++YYCURSOR;
|
745
|
+
switch (yych) {
|
746
|
+
case 'R':
|
747
|
+
case 'r': goto yy94;
|
748
|
+
case 'U':
|
749
|
+
case 'u': goto yy95;
|
750
|
+
default: goto yy35;
|
751
|
+
}
|
752
|
+
yy56:
|
753
|
+
yych = *++YYCURSOR;
|
754
|
+
switch (yych) {
|
755
|
+
case 'L':
|
756
|
+
case 'l': goto yy96;
|
757
|
+
default: goto yy35;
|
758
|
+
}
|
759
|
+
yy57:
|
760
|
+
yych = *++YYCURSOR;
|
761
|
+
switch (yych) {
|
762
|
+
case 'N':
|
763
|
+
case 'n': goto yy97;
|
764
|
+
default: goto yy35;
|
765
|
+
}
|
766
|
+
yy58:
|
767
|
+
yych = *++YYCURSOR;
|
768
|
+
switch (yych) {
|
769
|
+
case 'L':
|
770
|
+
case 'l': goto yy98;
|
771
|
+
default: goto yy35;
|
772
|
+
}
|
773
|
+
yy59:
|
774
|
+
yych = *++YYCURSOR;
|
775
|
+
switch (yych) {
|
776
|
+
case 'G':
|
777
|
+
case 'g': goto yy99;
|
778
|
+
default: goto yy35;
|
779
|
+
}
|
780
|
+
yy60:
|
781
|
+
yych = *++YYCURSOR;
|
782
|
+
switch (yych) {
|
783
|
+
case 'N':
|
784
|
+
case 'n': goto yy100;
|
785
|
+
default: goto yy35;
|
786
|
+
}
|
787
|
+
yy61:
|
788
|
+
yych = *++YYCURSOR;
|
789
|
+
switch (yych) {
|
790
|
+
case 'E':
|
791
|
+
case 'e': goto yy101;
|
792
|
+
default: goto yy35;
|
793
|
+
}
|
794
|
+
yy62:
|
795
|
+
yych = *++YYCURSOR;
|
796
|
+
switch (yych) {
|
797
|
+
case 'A':
|
798
|
+
case 'a': goto yy102;
|
799
|
+
default: goto yy35;
|
800
|
+
}
|
801
|
+
yy63:
|
802
|
+
yych = *++YYCURSOR;
|
803
|
+
switch (yych) {
|
804
|
+
case 'C':
|
805
|
+
case 'c': goto yy103;
|
806
|
+
case 'V':
|
807
|
+
case 'v': goto yy104;
|
808
|
+
default: goto yy35;
|
809
|
+
}
|
810
|
+
yy64:
|
811
|
+
yych = *++YYCURSOR;
|
812
|
+
switch (yych) {
|
813
|
+
case 'X':
|
814
|
+
case 'x': goto yy105;
|
815
|
+
default: goto yy35;
|
816
|
+
}
|
817
|
+
yy65:
|
818
|
+
yych = *++YYCURSOR;
|
819
|
+
switch (yych) {
|
820
|
+
case 'N':
|
821
|
+
case 'n': goto yy107;
|
822
|
+
default: goto yy35;
|
823
|
+
}
|
824
|
+
yy66:
|
825
|
+
yych = *++YYCURSOR;
|
826
|
+
switch (yych) {
|
827
|
+
case 'I':
|
828
|
+
case 'i': goto yy109;
|
829
|
+
case 'O':
|
830
|
+
case 'o': goto yy110;
|
831
|
+
case 'R':
|
832
|
+
case 'r': goto yy111;
|
833
|
+
default: goto yy35;
|
834
|
+
}
|
835
|
+
yy67:
|
836
|
+
yych = *++YYCURSOR;
|
837
|
+
switch (yych) {
|
838
|
+
case 'I':
|
839
|
+
case 'i': goto yy112;
|
840
|
+
default: goto yy35;
|
841
|
+
}
|
842
|
+
yy68:
|
843
|
+
yych = *++YYCURSOR;
|
844
|
+
switch (yych) {
|
845
|
+
case 'E':
|
846
|
+
case 'e': goto yy113;
|
847
|
+
case 'O':
|
848
|
+
case 'o': goto yy114;
|
849
|
+
default: goto yy35;
|
850
|
+
}
|
851
|
+
yy69:
|
852
|
+
yych = *++YYCURSOR;
|
853
|
+
switch (yych) {
|
854
|
+
case 'R':
|
855
|
+
case 'r': goto yy116;
|
856
|
+
default: goto yy35;
|
857
|
+
}
|
858
|
+
yy70:
|
859
|
+
++YYCURSOR;
|
860
|
+
yych = *YYCURSOR;
|
861
|
+
switch (yych) {
|
862
|
+
case '0':
|
863
|
+
case '1':
|
864
|
+
case '2':
|
865
|
+
case '3':
|
866
|
+
case '4':
|
867
|
+
case '5':
|
868
|
+
case '6':
|
869
|
+
case '7':
|
870
|
+
case '8':
|
871
|
+
case '9': goto yy117;
|
872
|
+
default: goto yy35;
|
873
|
+
}
|
874
|
+
yy71:
|
875
|
+
yych = *++YYCURSOR;
|
876
|
+
switch (yych) {
|
877
|
+
case ' ': goto yy40;
|
878
|
+
case '\'': goto yy41;
|
879
|
+
case ',': goto yy42;
|
880
|
+
case '.': goto yy70;
|
881
|
+
case '0':
|
882
|
+
case '1':
|
883
|
+
case '2':
|
884
|
+
case '3':
|
885
|
+
case '4':
|
886
|
+
case '5':
|
887
|
+
case '6':
|
888
|
+
case '7':
|
889
|
+
case '8':
|
890
|
+
case '9': goto yy118;
|
891
|
+
default: goto yy35;
|
892
|
+
}
|
893
|
+
yy72:
|
894
|
+
++YYCURSOR;
|
895
|
+
yych = *YYCURSOR;
|
896
|
+
switch (yych) {
|
897
|
+
case '0':
|
898
|
+
case '1':
|
899
|
+
case '2':
|
900
|
+
case '3':
|
901
|
+
case '4':
|
902
|
+
case '5':
|
903
|
+
case '6':
|
904
|
+
case '7':
|
905
|
+
case '8':
|
906
|
+
case '9': goto yy119;
|
907
|
+
default: goto yy35;
|
908
|
+
}
|
909
|
+
yy73:
|
910
|
+
++YYCURSOR;
|
911
|
+
yych = *YYCURSOR;
|
912
|
+
switch (yych) {
|
913
|
+
case '0':
|
914
|
+
case '1':
|
915
|
+
case '2':
|
916
|
+
case '3':
|
917
|
+
case '4':
|
918
|
+
case '5':
|
919
|
+
case '6':
|
920
|
+
case '7':
|
921
|
+
case '8':
|
922
|
+
case '9': goto yy120;
|
923
|
+
default: goto yy35;
|
924
|
+
}
|
925
|
+
yy74:
|
926
|
+
yych = *++YYCURSOR;
|
927
|
+
switch (yych) {
|
928
|
+
case '0':
|
929
|
+
case '1':
|
930
|
+
case '2':
|
931
|
+
case '3':
|
932
|
+
case '4':
|
933
|
+
case '5':
|
934
|
+
case '6':
|
935
|
+
case '7':
|
936
|
+
case '8':
|
937
|
+
case '9': goto yy121;
|
938
|
+
default: goto yy35;
|
939
|
+
}
|
940
|
+
yy75:
|
941
|
+
yych = *++YYCURSOR;
|
942
|
+
switch (yych) {
|
943
|
+
case '0':
|
944
|
+
case '1':
|
945
|
+
case '2':
|
946
|
+
case '3':
|
947
|
+
case '4':
|
948
|
+
case '5':
|
949
|
+
case '6':
|
950
|
+
case '7':
|
951
|
+
case '8':
|
952
|
+
case '9': goto yy122;
|
953
|
+
default: goto yy39;
|
954
|
+
}
|
955
|
+
yy76:
|
956
|
+
++YYCURSOR;
|
957
|
+
yych = *YYCURSOR;
|
958
|
+
yy77:
|
959
|
+
switch (yych) {
|
960
|
+
case '0':
|
961
|
+
case '1':
|
962
|
+
case '2':
|
963
|
+
case '3':
|
964
|
+
case '4':
|
965
|
+
case '5':
|
966
|
+
case '6':
|
967
|
+
case '7':
|
968
|
+
case '8':
|
969
|
+
case '9': goto yy76;
|
970
|
+
default: goto yy78;
|
971
|
+
}
|
972
|
+
yy78:
|
973
|
+
#line 278 "scanner.re"
|
974
|
+
{
|
975
|
+
if (state->is_parsing) {
|
976
|
+
if (state->last_token != TOKEN_SEPARATOR) {
|
977
|
+
// number followed by character... e.g. "oneself"
|
978
|
+
} else {
|
979
|
+
// finish whatever we had and reset
|
980
|
+
Parse(pParser, 0, *yylval, state);
|
981
|
+
}
|
982
|
+
|
983
|
+
ParseReset(pParser);
|
984
|
+
state->is_parsing = false;
|
985
|
+
}
|
986
|
+
|
987
|
+
state->last_token = TOKEN_CHARACTERS;
|
988
|
+
goto fast_path;
|
989
|
+
}
|
990
|
+
#line 991 "scanner.c"
|
991
|
+
yy79:
|
992
|
+
yych = *++YYCURSOR;
|
993
|
+
switch (yych) {
|
994
|
+
case '0':
|
995
|
+
case '1':
|
996
|
+
case '2':
|
997
|
+
case '3':
|
998
|
+
case '4':
|
999
|
+
case '5':
|
1000
|
+
case '6':
|
1001
|
+
case '7':
|
1002
|
+
case '8':
|
1003
|
+
case '9': goto yy123;
|
1004
|
+
default: goto yy35;
|
1005
|
+
}
|
1006
|
+
yy80:
|
1007
|
+
yyaccept = 6;
|
1008
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1009
|
+
switch (yych) {
|
1010
|
+
case ' ': goto yy40;
|
1011
|
+
case '\'': goto yy41;
|
1012
|
+
case ',': goto yy124;
|
1013
|
+
case '.': goto yy43;
|
1014
|
+
case '/': goto yy79;
|
1015
|
+
case '0':
|
1016
|
+
case '1':
|
1017
|
+
case '2':
|
1018
|
+
case '3':
|
1019
|
+
case '4':
|
1020
|
+
case '5':
|
1021
|
+
case '6':
|
1022
|
+
case '7':
|
1023
|
+
case '8':
|
1024
|
+
case '9': goto yy125;
|
1025
|
+
default: goto yy46;
|
1026
|
+
}
|
1027
|
+
yy81:
|
1028
|
+
yyaccept = 3;
|
1029
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1030
|
+
switch (yych) {
|
1031
|
+
case ' ': goto yy40;
|
1032
|
+
case '\'': goto yy41;
|
1033
|
+
case ',': goto yy124;
|
1034
|
+
case '.': goto yy43;
|
1035
|
+
case '/': goto yy79;
|
1036
|
+
case '0':
|
1037
|
+
case '1':
|
1038
|
+
case '2':
|
1039
|
+
case '3':
|
1040
|
+
case '4':
|
1041
|
+
case '5':
|
1042
|
+
case '6':
|
1043
|
+
case '7':
|
1044
|
+
case '8':
|
1045
|
+
case '9': goto yy126;
|
1046
|
+
default: goto yy17;
|
1047
|
+
}
|
1048
|
+
yy82:
|
1049
|
+
yych = *++YYCURSOR;
|
1050
|
+
switch (yych) {
|
1051
|
+
case 'I':
|
1052
|
+
case 'i': goto yy127;
|
1053
|
+
default: goto yy35;
|
1054
|
+
}
|
1055
|
+
yy83:
|
1056
|
+
yych = *++YYCURSOR;
|
1057
|
+
switch (yych) {
|
1058
|
+
case 'U':
|
1059
|
+
case 'u': goto yy128;
|
1060
|
+
default: goto yy35;
|
1061
|
+
}
|
1062
|
+
yy84:
|
1063
|
+
yych = *++YYCURSOR;
|
1064
|
+
switch (yych) {
|
1065
|
+
case 'I':
|
1066
|
+
case 'i': goto yy129;
|
1067
|
+
default: goto yy35;
|
1068
|
+
}
|
1069
|
+
yy85:
|
1070
|
+
yych = *++YYCURSOR;
|
1071
|
+
switch (yych) {
|
1072
|
+
case 'H':
|
1073
|
+
case 'h': goto yy130;
|
1074
|
+
case 'R':
|
1075
|
+
case 'r': goto yy131;
|
1076
|
+
default: goto yy35;
|
1077
|
+
}
|
1078
|
+
yy86:
|
1079
|
+
yyaccept = 7;
|
1080
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1081
|
+
switch (yych) {
|
1082
|
+
case ' ': goto yy132;
|
1083
|
+
default: goto yy87;
|
1084
|
+
}
|
1085
|
+
yy87:
|
1086
|
+
#line 77 "scanner.re"
|
1087
|
+
{ return TOKEN_AND; }
|
1088
|
+
#line 1089 "scanner.c"
|
1089
|
+
yy88:
|
1090
|
+
yych = *++YYCURSOR;
|
1091
|
+
switch (yych) {
|
1092
|
+
case 'L':
|
1093
|
+
case 'l': goto yy133;
|
1094
|
+
default: goto yy35;
|
1095
|
+
}
|
1096
|
+
yy89:
|
1097
|
+
yych = *++YYCURSOR;
|
1098
|
+
switch (yych) {
|
1099
|
+
case 'H':
|
1100
|
+
case 'h': goto yy134;
|
1101
|
+
default: goto yy35;
|
1102
|
+
}
|
1103
|
+
yy90:
|
1104
|
+
yych = *++YYCURSOR;
|
1105
|
+
switch (yych) {
|
1106
|
+
case 'V':
|
1107
|
+
case 'v': goto yy135;
|
1108
|
+
default: goto yy35;
|
1109
|
+
}
|
1110
|
+
yy91:
|
1111
|
+
yych = *++YYCURSOR;
|
1112
|
+
switch (yych) {
|
1113
|
+
case 'T':
|
1114
|
+
case 't': goto yy136;
|
1115
|
+
default: goto yy35;
|
1116
|
+
}
|
1117
|
+
yy92:
|
1118
|
+
yych = *++YYCURSOR;
|
1119
|
+
switch (yych) {
|
1120
|
+
case 'S':
|
1121
|
+
case 's': goto yy137;
|
1122
|
+
default: goto yy35;
|
1123
|
+
}
|
1124
|
+
yy93:
|
1125
|
+
yych = *++YYCURSOR;
|
1126
|
+
switch (yych) {
|
1127
|
+
case 'E':
|
1128
|
+
case 'e': goto yy138;
|
1129
|
+
default: goto yy35;
|
1130
|
+
}
|
1131
|
+
yy94:
|
1132
|
+
yych = *++YYCURSOR;
|
1133
|
+
switch (yych) {
|
1134
|
+
case 'T':
|
1135
|
+
case 't': goto yy140;
|
1136
|
+
default: goto yy35;
|
1137
|
+
}
|
1138
|
+
yy95:
|
1139
|
+
yych = *++YYCURSOR;
|
1140
|
+
switch (yych) {
|
1141
|
+
case 'R':
|
1142
|
+
case 'r': goto yy141;
|
1143
|
+
default: goto yy35;
|
1144
|
+
}
|
1145
|
+
yy96:
|
1146
|
+
yych = *++YYCURSOR;
|
1147
|
+
switch (yych) {
|
1148
|
+
case 'F':
|
1149
|
+
case 'f': goto yy143;
|
1150
|
+
case 'V':
|
1151
|
+
case 'v': goto yy145;
|
1152
|
+
default: goto yy35;
|
1153
|
+
}
|
1154
|
+
yy97:
|
1155
|
+
yych = *++YYCURSOR;
|
1156
|
+
switch (yych) {
|
1157
|
+
case 'D':
|
1158
|
+
case 'd': goto yy146;
|
1159
|
+
default: goto yy35;
|
1160
|
+
}
|
1161
|
+
yy98:
|
1162
|
+
yych = *++YYCURSOR;
|
1163
|
+
switch (yych) {
|
1164
|
+
case 'L':
|
1165
|
+
case 'l': goto yy147;
|
1166
|
+
default: goto yy35;
|
1167
|
+
}
|
1168
|
+
yy99:
|
1169
|
+
yych = *++YYCURSOR;
|
1170
|
+
switch (yych) {
|
1171
|
+
case 'A':
|
1172
|
+
case 'a': goto yy148;
|
1173
|
+
default: goto yy35;
|
1174
|
+
}
|
1175
|
+
yy100:
|
1176
|
+
yych = *++YYCURSOR;
|
1177
|
+
switch (yych) {
|
1178
|
+
case 'E':
|
1179
|
+
case 'e': goto yy149;
|
1180
|
+
case 'T':
|
1181
|
+
case 't': goto yy151;
|
1182
|
+
default: goto yy35;
|
1183
|
+
}
|
1184
|
+
yy101:
|
1185
|
+
yych = *++YYCURSOR;
|
1186
|
+
goto yy15;
|
1187
|
+
yy102:
|
1188
|
+
yych = *++YYCURSOR;
|
1189
|
+
switch (yych) {
|
1190
|
+
case 'R':
|
1191
|
+
case 'r': goto yy152;
|
1192
|
+
default: goto yy35;
|
1193
|
+
}
|
1194
|
+
yy103:
|
1195
|
+
yych = *++YYCURSOR;
|
1196
|
+
switch (yych) {
|
1197
|
+
case 'O':
|
1198
|
+
case 'o': goto yy153;
|
1199
|
+
default: goto yy35;
|
1200
|
+
}
|
1201
|
+
yy104:
|
1202
|
+
yych = *++YYCURSOR;
|
1203
|
+
switch (yych) {
|
1204
|
+
case 'E':
|
1205
|
+
case 'e': goto yy154;
|
1206
|
+
default: goto yy35;
|
1207
|
+
}
|
1208
|
+
yy105:
|
1209
|
+
yyaccept = 8;
|
1210
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1211
|
+
switch (yych) {
|
1212
|
+
case 'T':
|
1213
|
+
case 't': goto yy155;
|
1214
|
+
default: goto yy106;
|
1215
|
+
}
|
1216
|
+
yy106:
|
1217
|
+
#line 88 "scanner.re"
|
1218
|
+
{ return TOKEN_SIX; }
|
1219
|
+
#line 1220 "scanner.c"
|
1220
|
+
yy107:
|
1221
|
+
yyaccept = 9;
|
1222
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1223
|
+
switch (yych) {
|
1224
|
+
case 'T':
|
1225
|
+
case 't': goto yy156;
|
1226
|
+
default: goto yy108;
|
1227
|
+
}
|
1228
|
+
yy108:
|
1229
|
+
#line 92 "scanner.re"
|
1230
|
+
{ return TOKEN_TEN; }
|
1231
|
+
#line 1232 "scanner.c"
|
1232
|
+
yy109:
|
1233
|
+
yych = *++YYCURSOR;
|
1234
|
+
switch (yych) {
|
1235
|
+
case 'R':
|
1236
|
+
case 'r': goto yy157;
|
1237
|
+
default: goto yy35;
|
1238
|
+
}
|
1239
|
+
yy110:
|
1240
|
+
yych = *++YYCURSOR;
|
1241
|
+
switch (yych) {
|
1242
|
+
case 'U':
|
1243
|
+
case 'u': goto yy158;
|
1244
|
+
default: goto yy35;
|
1245
|
+
}
|
1246
|
+
yy111:
|
1247
|
+
yych = *++YYCURSOR;
|
1248
|
+
switch (yych) {
|
1249
|
+
case 'E':
|
1250
|
+
case 'e': goto yy159;
|
1251
|
+
default: goto yy35;
|
1252
|
+
}
|
1253
|
+
yy112:
|
1254
|
+
yych = *++YYCURSOR;
|
1255
|
+
switch (yych) {
|
1256
|
+
case 'L':
|
1257
|
+
case 'l': goto yy160;
|
1258
|
+
default: goto yy35;
|
1259
|
+
}
|
1260
|
+
yy113:
|
1261
|
+
yych = *++YYCURSOR;
|
1262
|
+
switch (yych) {
|
1263
|
+
case 'L':
|
1264
|
+
case 'l': goto yy161;
|
1265
|
+
case 'N':
|
1266
|
+
case 'n': goto yy162;
|
1267
|
+
default: goto yy35;
|
1268
|
+
}
|
1269
|
+
yy114:
|
1270
|
+
++YYCURSOR;
|
1271
|
+
#line 84 "scanner.re"
|
1272
|
+
{ return TOKEN_TWO; }
|
1273
|
+
#line 1274 "scanner.c"
|
1274
|
+
yy116:
|
1275
|
+
yych = *++YYCURSOR;
|
1276
|
+
switch (yych) {
|
1277
|
+
case 'O':
|
1278
|
+
case 'o': goto yy163;
|
1279
|
+
default: goto yy35;
|
1280
|
+
}
|
1281
|
+
yy117:
|
1282
|
+
++YYCURSOR;
|
1283
|
+
yych = *YYCURSOR;
|
1284
|
+
switch (yych) {
|
1285
|
+
case '0':
|
1286
|
+
case '1':
|
1287
|
+
case '2':
|
1288
|
+
case '3':
|
1289
|
+
case '4':
|
1290
|
+
case '5':
|
1291
|
+
case '6':
|
1292
|
+
case '7':
|
1293
|
+
case '8':
|
1294
|
+
case '9': goto yy165;
|
1295
|
+
default: goto yy35;
|
1296
|
+
}
|
1297
|
+
yy118:
|
1298
|
+
yych = *++YYCURSOR;
|
1299
|
+
switch (yych) {
|
1300
|
+
case ' ': goto yy40;
|
1301
|
+
case '\'': goto yy41;
|
1302
|
+
case ',': goto yy124;
|
1303
|
+
case '.': goto yy70;
|
1304
|
+
case '0':
|
1305
|
+
case '1':
|
1306
|
+
case '2':
|
1307
|
+
case '3':
|
1308
|
+
case '4':
|
1309
|
+
case '5':
|
1310
|
+
case '6':
|
1311
|
+
case '7':
|
1312
|
+
case '8':
|
1313
|
+
case '9': goto yy166;
|
1314
|
+
default: goto yy35;
|
1315
|
+
}
|
1316
|
+
yy119:
|
1317
|
+
++YYCURSOR;
|
1318
|
+
yych = *YYCURSOR;
|
1319
|
+
switch (yych) {
|
1320
|
+
case '0':
|
1321
|
+
case '1':
|
1322
|
+
case '2':
|
1323
|
+
case '3':
|
1324
|
+
case '4':
|
1325
|
+
case '5':
|
1326
|
+
case '6':
|
1327
|
+
case '7':
|
1328
|
+
case '8':
|
1329
|
+
case '9': goto yy167;
|
1330
|
+
default: goto yy35;
|
1331
|
+
}
|
1332
|
+
yy120:
|
1333
|
+
++YYCURSOR;
|
1334
|
+
yych = *YYCURSOR;
|
1335
|
+
switch (yych) {
|
1336
|
+
case '0':
|
1337
|
+
case '1':
|
1338
|
+
case '2':
|
1339
|
+
case '3':
|
1340
|
+
case '4':
|
1341
|
+
case '5':
|
1342
|
+
case '6':
|
1343
|
+
case '7':
|
1344
|
+
case '8':
|
1345
|
+
case '9': goto yy168;
|
1346
|
+
default: goto yy35;
|
1347
|
+
}
|
1348
|
+
yy121:
|
1349
|
+
yych = *++YYCURSOR;
|
1350
|
+
switch (yych) {
|
1351
|
+
case ',': goto yy169;
|
1352
|
+
case '0':
|
1353
|
+
case '1':
|
1354
|
+
case '2':
|
1355
|
+
case '3':
|
1356
|
+
case '4':
|
1357
|
+
case '5':
|
1358
|
+
case '6':
|
1359
|
+
case '7':
|
1360
|
+
case '8':
|
1361
|
+
case '9': goto yy170;
|
1362
|
+
default: goto yy35;
|
1363
|
+
}
|
1364
|
+
yy122:
|
1365
|
+
yych = *++YYCURSOR;
|
1366
|
+
switch (yych) {
|
1367
|
+
case '0':
|
1368
|
+
case '1':
|
1369
|
+
case '2':
|
1370
|
+
case '3':
|
1371
|
+
case '4':
|
1372
|
+
case '5':
|
1373
|
+
case '6':
|
1374
|
+
case '7':
|
1375
|
+
case '8':
|
1376
|
+
case '9': goto yy172;
|
1377
|
+
default: goto yy39;
|
1378
|
+
}
|
1379
|
+
yy123:
|
1380
|
+
yych = *++YYCURSOR;
|
1381
|
+
switch (yych) {
|
1382
|
+
case '0':
|
1383
|
+
case '1':
|
1384
|
+
case '2':
|
1385
|
+
case '3':
|
1386
|
+
case '4':
|
1387
|
+
case '5':
|
1388
|
+
case '6':
|
1389
|
+
case '7':
|
1390
|
+
case '8':
|
1391
|
+
case '9': goto yy173;
|
1392
|
+
default: goto yy78;
|
1393
|
+
}
|
1394
|
+
yy124:
|
1395
|
+
yych = *++YYCURSOR;
|
1396
|
+
switch (yych) {
|
1397
|
+
case '0':
|
1398
|
+
case '1':
|
1399
|
+
case '2':
|
1400
|
+
case '3':
|
1401
|
+
case '4':
|
1402
|
+
case '5':
|
1403
|
+
case '6':
|
1404
|
+
case '7':
|
1405
|
+
case '8':
|
1406
|
+
case '9': goto yy174;
|
1407
|
+
default: goto yy35;
|
1408
|
+
}
|
1409
|
+
yy125:
|
1410
|
+
yyaccept = 6;
|
1411
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1412
|
+
switch (yych) {
|
1413
|
+
case ',': goto yy175;
|
1414
|
+
case '/': goto yy79;
|
1415
|
+
default: goto yy178;
|
1416
|
+
}
|
1417
|
+
yy126:
|
1418
|
+
yyaccept = 3;
|
1419
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1420
|
+
switch (yych) {
|
1421
|
+
case ',': goto yy175;
|
1422
|
+
case '/': goto yy79;
|
1423
|
+
default: goto yy180;
|
1424
|
+
}
|
1425
|
+
yy127:
|
1426
|
+
yych = *++YYCURSOR;
|
1427
|
+
switch (yych) {
|
1428
|
+
case 'L':
|
1429
|
+
case 'l': goto yy181;
|
1430
|
+
default: goto yy35;
|
1431
|
+
}
|
1432
|
+
yy128:
|
1433
|
+
yych = *++YYCURSOR;
|
1434
|
+
switch (yych) {
|
1435
|
+
case 'N':
|
1436
|
+
case 'n': goto yy182;
|
1437
|
+
default: goto yy35;
|
1438
|
+
}
|
1439
|
+
yy129:
|
1440
|
+
yych = *++YYCURSOR;
|
1441
|
+
switch (yych) {
|
1442
|
+
case 'L':
|
1443
|
+
case 'l': goto yy183;
|
1444
|
+
default: goto yy35;
|
1445
|
+
}
|
1446
|
+
yy130:
|
1447
|
+
yych = *++YYCURSOR;
|
1448
|
+
switch (yych) {
|
1449
|
+
case 'O':
|
1450
|
+
case 'o': goto yy184;
|
1451
|
+
default: goto yy35;
|
1452
|
+
}
|
1453
|
+
yy131:
|
1454
|
+
yych = *++YYCURSOR;
|
1455
|
+
switch (yych) {
|
1456
|
+
case 'I':
|
1457
|
+
case 'i': goto yy185;
|
1458
|
+
default: goto yy35;
|
1459
|
+
}
|
1460
|
+
yy132:
|
1461
|
+
yych = *++YYCURSOR;
|
1462
|
+
switch (yych) {
|
1463
|
+
case 'A':
|
1464
|
+
case 'a': goto yy186;
|
1465
|
+
default: goto yy35;
|
1466
|
+
}
|
1467
|
+
yy133:
|
1468
|
+
yych = *++YYCURSOR;
|
1469
|
+
switch (yych) {
|
1470
|
+
case 'I':
|
1471
|
+
case 'i': goto yy188;
|
1472
|
+
default: goto yy35;
|
1473
|
+
}
|
1474
|
+
yy134:
|
1475
|
+
yych = *++YYCURSOR;
|
1476
|
+
switch (yych) {
|
1477
|
+
case 'T':
|
1478
|
+
case 't': goto yy189;
|
1479
|
+
default: goto yy35;
|
1480
|
+
}
|
1481
|
+
yy135:
|
1482
|
+
yych = *++YYCURSOR;
|
1483
|
+
switch (yych) {
|
1484
|
+
case 'E':
|
1485
|
+
case 'e': goto yy191;
|
1486
|
+
default: goto yy35;
|
1487
|
+
}
|
1488
|
+
yy136:
|
1489
|
+
yych = *++YYCURSOR;
|
1490
|
+
switch (yych) {
|
1491
|
+
case 'E':
|
1492
|
+
case 'e': goto yy192;
|
1493
|
+
case 'H':
|
1494
|
+
case 'h': goto yy193;
|
1495
|
+
case 'I':
|
1496
|
+
case 'i': goto yy195;
|
1497
|
+
case 'Y':
|
1498
|
+
case 'y': goto yy196;
|
1499
|
+
default: goto yy35;
|
1500
|
+
}
|
1501
|
+
yy137:
|
1502
|
+
yych = *++YYCURSOR;
|
1503
|
+
switch (yych) {
|
1504
|
+
case 'T':
|
1505
|
+
case 't': goto yy198;
|
1506
|
+
default: goto yy35;
|
1507
|
+
}
|
1508
|
+
yy138:
|
1509
|
+
++YYCURSOR;
|
1510
|
+
#line 87 "scanner.re"
|
1511
|
+
{ return TOKEN_FIVE; }
|
1512
|
+
#line 1513 "scanner.c"
|
1513
|
+
yy140:
|
1514
|
+
yych = *++YYCURSOR;
|
1515
|
+
switch (yych) {
|
1516
|
+
case 'I':
|
1517
|
+
case 'i': goto yy200;
|
1518
|
+
case 'Y':
|
1519
|
+
case 'y': goto yy201;
|
1520
|
+
default: goto yy35;
|
1521
|
+
}
|
1522
|
+
yy141:
|
1523
|
+
yyaccept = 10;
|
1524
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1525
|
+
switch (yych) {
|
1526
|
+
case 'T':
|
1527
|
+
case 't': goto yy203;
|
1528
|
+
default: goto yy142;
|
1529
|
+
}
|
1530
|
+
yy142:
|
1531
|
+
#line 86 "scanner.re"
|
1532
|
+
{ return TOKEN_FOUR; }
|
1533
|
+
#line 1534 "scanner.c"
|
1534
|
+
yy143:
|
1535
|
+
++YYCURSOR;
|
1536
|
+
#line 190 "scanner.re"
|
1537
|
+
{ return TOKEN_HALF; }
|
1538
|
+
#line 1539 "scanner.c"
|
1539
|
+
yy145:
|
1540
|
+
yych = *++YYCURSOR;
|
1541
|
+
switch (yych) {
|
1542
|
+
case 'E':
|
1543
|
+
case 'e': goto yy204;
|
1544
|
+
default: goto yy35;
|
1545
|
+
}
|
1546
|
+
yy146:
|
1547
|
+
yych = *++YYCURSOR;
|
1548
|
+
switch (yych) {
|
1549
|
+
case 'R':
|
1550
|
+
case 'r': goto yy205;
|
1551
|
+
default: goto yy35;
|
1552
|
+
}
|
1553
|
+
yy147:
|
1554
|
+
yych = *++YYCURSOR;
|
1555
|
+
switch (yych) {
|
1556
|
+
case 'I':
|
1557
|
+
case 'i': goto yy206;
|
1558
|
+
default: goto yy35;
|
1559
|
+
}
|
1560
|
+
yy148:
|
1561
|
+
yych = *++YYCURSOR;
|
1562
|
+
switch (yych) {
|
1563
|
+
case 'T':
|
1564
|
+
case 't': goto yy207;
|
1565
|
+
default: goto yy35;
|
1566
|
+
}
|
1567
|
+
yy149:
|
1568
|
+
yyaccept = 11;
|
1569
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1570
|
+
switch (yych) {
|
1571
|
+
case 'T':
|
1572
|
+
case 't': goto yy208;
|
1573
|
+
default: goto yy150;
|
1574
|
+
}
|
1575
|
+
yy150:
|
1576
|
+
#line 91 "scanner.re"
|
1577
|
+
{ return TOKEN_NINE; }
|
1578
|
+
#line 1579 "scanner.c"
|
1579
|
+
yy151:
|
1580
|
+
yych = *++YYCURSOR;
|
1581
|
+
switch (yych) {
|
1582
|
+
case 'E':
|
1583
|
+
case 'e': goto yy209;
|
1584
|
+
case 'H':
|
1585
|
+
case 'h': goto yy210;
|
1586
|
+
default: goto yy35;
|
1587
|
+
}
|
1588
|
+
yy152:
|
1589
|
+
yych = *++YYCURSOR;
|
1590
|
+
switch (yych) {
|
1591
|
+
case 'T':
|
1592
|
+
case 't': goto yy212;
|
1593
|
+
default: goto yy35;
|
1594
|
+
}
|
1595
|
+
yy153:
|
1596
|
+
yych = *++YYCURSOR;
|
1597
|
+
switch (yych) {
|
1598
|
+
case 'N':
|
1599
|
+
case 'n': goto yy213;
|
1600
|
+
default: goto yy35;
|
1601
|
+
}
|
1602
|
+
yy154:
|
1603
|
+
yych = *++YYCURSOR;
|
1604
|
+
switch (yych) {
|
1605
|
+
case 'N':
|
1606
|
+
case 'n': goto yy214;
|
1607
|
+
default: goto yy35;
|
1608
|
+
}
|
1609
|
+
yy155:
|
1610
|
+
yych = *++YYCURSOR;
|
1611
|
+
switch (yych) {
|
1612
|
+
case 'E':
|
1613
|
+
case 'e': goto yy216;
|
1614
|
+
case 'H':
|
1615
|
+
case 'h': goto yy217;
|
1616
|
+
case 'I':
|
1617
|
+
case 'i': goto yy219;
|
1618
|
+
case 'Y':
|
1619
|
+
case 'y': goto yy220;
|
1620
|
+
default: goto yy35;
|
1621
|
+
}
|
1622
|
+
yy156:
|
1623
|
+
yych = *++YYCURSOR;
|
1624
|
+
switch (yych) {
|
1625
|
+
case 'H':
|
1626
|
+
case 'h': goto yy222;
|
1627
|
+
default: goto yy35;
|
1628
|
+
}
|
1629
|
+
yy157:
|
1630
|
+
yych = *++YYCURSOR;
|
1631
|
+
switch (yych) {
|
1632
|
+
case 'D':
|
1633
|
+
case 'd': goto yy224;
|
1634
|
+
case 'T':
|
1635
|
+
case 't': goto yy226;
|
1636
|
+
default: goto yy35;
|
1637
|
+
}
|
1638
|
+
yy158:
|
1639
|
+
yych = *++YYCURSOR;
|
1640
|
+
switch (yych) {
|
1641
|
+
case 'S':
|
1642
|
+
case 's': goto yy227;
|
1643
|
+
default: goto yy35;
|
1644
|
+
}
|
1645
|
+
yy159:
|
1646
|
+
yych = *++YYCURSOR;
|
1647
|
+
switch (yych) {
|
1648
|
+
case 'E':
|
1649
|
+
case 'e': goto yy228;
|
1650
|
+
default: goto yy35;
|
1651
|
+
}
|
1652
|
+
yy160:
|
1653
|
+
yych = *++YYCURSOR;
|
1654
|
+
switch (yych) {
|
1655
|
+
case 'L':
|
1656
|
+
case 'l': goto yy230;
|
1657
|
+
default: goto yy35;
|
1658
|
+
}
|
1659
|
+
yy161:
|
1660
|
+
yych = *++YYCURSOR;
|
1661
|
+
switch (yych) {
|
1662
|
+
case 'F':
|
1663
|
+
case 'f': goto yy231;
|
1664
|
+
case 'V':
|
1665
|
+
case 'v': goto yy232;
|
1666
|
+
default: goto yy35;
|
1667
|
+
}
|
1668
|
+
yy162:
|
1669
|
+
yych = *++YYCURSOR;
|
1670
|
+
switch (yych) {
|
1671
|
+
case 'T':
|
1672
|
+
case 't': goto yy233;
|
1673
|
+
default: goto yy35;
|
1674
|
+
}
|
1675
|
+
yy163:
|
1676
|
+
++YYCURSOR;
|
1677
|
+
#line 82 "scanner.re"
|
1678
|
+
{ return TOKEN_ZERO; }
|
1679
|
+
#line 1680 "scanner.c"
|
1680
|
+
yy165:
|
1681
|
+
++YYCURSOR;
|
1682
|
+
yych = *YYCURSOR;
|
1683
|
+
switch (yych) {
|
1684
|
+
case '0':
|
1685
|
+
case '1':
|
1686
|
+
case '2':
|
1687
|
+
case '3':
|
1688
|
+
case '4':
|
1689
|
+
case '5':
|
1690
|
+
case '6':
|
1691
|
+
case '7':
|
1692
|
+
case '8':
|
1693
|
+
case '9': goto yy234;
|
1694
|
+
default: goto yy35;
|
1695
|
+
}
|
1696
|
+
yy166:
|
1697
|
+
yych = *++YYCURSOR;
|
1698
|
+
switch (yych) {
|
1699
|
+
case ',': goto yy175;
|
1700
|
+
default: goto yy35;
|
1701
|
+
}
|
1702
|
+
yy167:
|
1703
|
+
++YYCURSOR;
|
1704
|
+
yych = *YYCURSOR;
|
1705
|
+
switch (yych) {
|
1706
|
+
case ' ': goto yy40;
|
1707
|
+
case ',': goto yy235;
|
1708
|
+
case '.': goto yy236;
|
1709
|
+
default: goto yy35;
|
1710
|
+
}
|
1711
|
+
yy168:
|
1712
|
+
++YYCURSOR;
|
1713
|
+
yych = *YYCURSOR;
|
1714
|
+
switch (yych) {
|
1715
|
+
case '\'': goto yy41;
|
1716
|
+
case '.': goto yy237;
|
1717
|
+
default: goto yy35;
|
1718
|
+
}
|
1719
|
+
yy169:
|
1720
|
+
++YYCURSOR;
|
1721
|
+
yych = *YYCURSOR;
|
1722
|
+
switch (yych) {
|
1723
|
+
case '0':
|
1724
|
+
case '1':
|
1725
|
+
case '2':
|
1726
|
+
case '3':
|
1727
|
+
case '4':
|
1728
|
+
case '5':
|
1729
|
+
case '6':
|
1730
|
+
case '7':
|
1731
|
+
case '8':
|
1732
|
+
case '9': goto yy238;
|
1733
|
+
default: goto yy35;
|
1734
|
+
}
|
1735
|
+
yy170:
|
1736
|
+
yyaccept = 12;
|
1737
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1738
|
+
switch (yych) {
|
1739
|
+
case ',': goto yy239;
|
1740
|
+
case '.': goto yy240;
|
1741
|
+
case '0':
|
1742
|
+
case '1':
|
1743
|
+
case '2':
|
1744
|
+
case '3':
|
1745
|
+
case '4':
|
1746
|
+
case '5':
|
1747
|
+
case '6':
|
1748
|
+
case '7':
|
1749
|
+
case '8':
|
1750
|
+
case '9': goto yy241;
|
1751
|
+
case 0xC2: goto yy242;
|
1752
|
+
default: goto yy171;
|
1753
|
+
}
|
1754
|
+
yy171:
|
1755
|
+
#line 294 "scanner.re"
|
1756
|
+
{
|
1757
|
+
// create duplicate of string (to be modified inplace)
|
1758
|
+
size_t token_len = ss->cursor - ss->token;
|
1759
|
+
char* tmp = (char*)malloc(token_len + 1);
|
1760
|
+
strncpy(tmp, ss->token, token_len);
|
1761
|
+
tmp[token_len] = '\0';
|
1762
|
+
|
1763
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ',');
|
1764
|
+
|
1765
|
+
// turn string version of number into double
|
1766
|
+
sds string_value = sdsnewlen(tmp, len);
|
1767
|
+
free(tmp);
|
1768
|
+
|
1769
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
1770
|
+
sdsfree(string_value);
|
1771
|
+
|
1772
|
+
return TOKEN_DECIMAL;
|
1773
|
+
}
|
1774
|
+
#line 1775 "scanner.c"
|
1775
|
+
yy172:
|
1776
|
+
yyaccept = 13;
|
1777
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1778
|
+
switch (yych) {
|
1779
|
+
case ',': goto yy243;
|
1780
|
+
case '.': goto yy70;
|
1781
|
+
default: goto yy38;
|
1782
|
+
}
|
1783
|
+
yy173:
|
1784
|
+
yyaccept = 14;
|
1785
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1786
|
+
switch (yych) {
|
1787
|
+
case '/': goto yy244;
|
1788
|
+
case '0':
|
1789
|
+
case '1':
|
1790
|
+
case '2':
|
1791
|
+
case '3':
|
1792
|
+
case '4':
|
1793
|
+
case '5':
|
1794
|
+
case '6':
|
1795
|
+
case '7':
|
1796
|
+
case '8':
|
1797
|
+
case '9': goto yy245;
|
1798
|
+
default: goto yy78;
|
1799
|
+
}
|
1800
|
+
yy174:
|
1801
|
+
yych = *++YYCURSOR;
|
1802
|
+
switch (yych) {
|
1803
|
+
case '0':
|
1804
|
+
case '1':
|
1805
|
+
case '2':
|
1806
|
+
case '3':
|
1807
|
+
case '4':
|
1808
|
+
case '5':
|
1809
|
+
case '6':
|
1810
|
+
case '7':
|
1811
|
+
case '8':
|
1812
|
+
case '9': goto yy246;
|
1813
|
+
default: goto yy35;
|
1814
|
+
}
|
1815
|
+
yy175:
|
1816
|
+
++YYCURSOR;
|
1817
|
+
yych = *YYCURSOR;
|
1818
|
+
switch (yych) {
|
1819
|
+
case '0':
|
1820
|
+
case '1':
|
1821
|
+
case '2':
|
1822
|
+
case '3':
|
1823
|
+
case '4':
|
1824
|
+
case '5':
|
1825
|
+
case '6':
|
1826
|
+
case '7':
|
1827
|
+
case '8':
|
1828
|
+
case '9': goto yy247;
|
1829
|
+
default: goto yy35;
|
1830
|
+
}
|
1831
|
+
yy176:
|
1832
|
+
yych = *++YYCURSOR;
|
1833
|
+
switch (yych) {
|
1834
|
+
case '0':
|
1835
|
+
case '1':
|
1836
|
+
case '2':
|
1837
|
+
case '3':
|
1838
|
+
case '4':
|
1839
|
+
case '5':
|
1840
|
+
case '6':
|
1841
|
+
case '7':
|
1842
|
+
case '8':
|
1843
|
+
case '9': goto yy37;
|
1844
|
+
default: goto yy35;
|
1845
|
+
}
|
1846
|
+
yy177:
|
1847
|
+
yyaccept = 6;
|
1848
|
+
YYMARKER = ++YYCURSOR;
|
1849
|
+
yych = *YYCURSOR;
|
1850
|
+
yy178:
|
1851
|
+
switch (yych) {
|
1852
|
+
case '.': goto yy176;
|
1853
|
+
case '/': goto yy44;
|
1854
|
+
case '0':
|
1855
|
+
case '1':
|
1856
|
+
case '2':
|
1857
|
+
case '3':
|
1858
|
+
case '4':
|
1859
|
+
case '5':
|
1860
|
+
case '6':
|
1861
|
+
case '7':
|
1862
|
+
case '8':
|
1863
|
+
case '9': goto yy177;
|
1864
|
+
default: goto yy46;
|
1865
|
+
}
|
1866
|
+
yy179:
|
1867
|
+
yyaccept = 3;
|
1868
|
+
YYMARKER = ++YYCURSOR;
|
1869
|
+
yych = *YYCURSOR;
|
1870
|
+
yy180:
|
1871
|
+
switch (yych) {
|
1872
|
+
case '.': goto yy176;
|
1873
|
+
case '/': goto yy44;
|
1874
|
+
case '0':
|
1875
|
+
case '1':
|
1876
|
+
case '2':
|
1877
|
+
case '3':
|
1878
|
+
case '4':
|
1879
|
+
case '5':
|
1880
|
+
case '6':
|
1881
|
+
case '7':
|
1882
|
+
case '8':
|
1883
|
+
case '9': goto yy179;
|
1884
|
+
default: goto yy17;
|
1885
|
+
}
|
1886
|
+
yy181:
|
1887
|
+
yych = *++YYCURSOR;
|
1888
|
+
switch (yych) {
|
1889
|
+
case 'L':
|
1890
|
+
case 'l': goto yy248;
|
1891
|
+
default: goto yy35;
|
1892
|
+
}
|
1893
|
+
yy182:
|
1894
|
+
yych = *++YYCURSOR;
|
1895
|
+
switch (yych) {
|
1896
|
+
case 'D':
|
1897
|
+
case 'd': goto yy249;
|
1898
|
+
default: goto yy35;
|
1899
|
+
}
|
1900
|
+
yy183:
|
1901
|
+
yych = *++YYCURSOR;
|
1902
|
+
switch (yych) {
|
1903
|
+
case 'L':
|
1904
|
+
case 'l': goto yy250;
|
1905
|
+
default: goto yy35;
|
1906
|
+
}
|
1907
|
+
yy184:
|
1908
|
+
yych = *++YYCURSOR;
|
1909
|
+
switch (yych) {
|
1910
|
+
case 'U':
|
1911
|
+
case 'u': goto yy251;
|
1912
|
+
default: goto yy35;
|
1913
|
+
}
|
1914
|
+
yy185:
|
1915
|
+
yych = *++YYCURSOR;
|
1916
|
+
switch (yych) {
|
1917
|
+
case 'L':
|
1918
|
+
case 'l': goto yy252;
|
1919
|
+
default: goto yy35;
|
1920
|
+
}
|
1921
|
+
yy186:
|
1922
|
+
++YYCURSOR;
|
1923
|
+
#line 78 "scanner.re"
|
1924
|
+
{ return TOKEN_AND_A; }
|
1925
|
+
#line 1926 "scanner.c"
|
1926
|
+
yy188:
|
1927
|
+
yych = *++YYCURSOR;
|
1928
|
+
switch (yych) {
|
1929
|
+
case 'O':
|
1930
|
+
case 'o': goto yy253;
|
1931
|
+
default: goto yy35;
|
1932
|
+
}
|
1933
|
+
yy189:
|
1934
|
+
yyaccept = 15;
|
1935
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
1936
|
+
switch (yych) {
|
1937
|
+
case 'E':
|
1938
|
+
case 'e': goto yy254;
|
1939
|
+
case 'H':
|
1940
|
+
case 'h': goto yy255;
|
1941
|
+
case 'I':
|
1942
|
+
case 'i': goto yy257;
|
1943
|
+
case 'Y':
|
1944
|
+
case 'y': goto yy258;
|
1945
|
+
default: goto yy190;
|
1946
|
+
}
|
1947
|
+
yy190:
|
1948
|
+
#line 90 "scanner.re"
|
1949
|
+
{ return TOKEN_EIGHT; }
|
1950
|
+
#line 1951 "scanner.c"
|
1951
|
+
yy191:
|
1952
|
+
yych = *++YYCURSOR;
|
1953
|
+
switch (yych) {
|
1954
|
+
case 'N':
|
1955
|
+
case 'n': goto yy260;
|
1956
|
+
default: goto yy35;
|
1957
|
+
}
|
1958
|
+
yy192:
|
1959
|
+
yych = *++YYCURSOR;
|
1960
|
+
switch (yych) {
|
1961
|
+
case 'E':
|
1962
|
+
case 'e': goto yy262;
|
1963
|
+
default: goto yy35;
|
1964
|
+
}
|
1965
|
+
yy193:
|
1966
|
+
++YYCURSOR;
|
1967
|
+
switch ((yych = *YYCURSOR)) {
|
1968
|
+
case 'S':
|
1969
|
+
case 's': goto yy263;
|
1970
|
+
default: goto yy194;
|
1971
|
+
}
|
1972
|
+
yy194:
|
1973
|
+
#line 150 "scanner.re"
|
1974
|
+
{ return TOKEN_FIFTH; }
|
1975
|
+
#line 1976 "scanner.c"
|
1976
|
+
yy195:
|
1977
|
+
yych = *++YYCURSOR;
|
1978
|
+
switch (yych) {
|
1979
|
+
case 'E':
|
1980
|
+
case 'e': goto yy265;
|
1981
|
+
default: goto yy35;
|
1982
|
+
}
|
1983
|
+
yy196:
|
1984
|
+
++YYCURSOR;
|
1985
|
+
#line 108 "scanner.re"
|
1986
|
+
{ return TOKEN_FIFTY; }
|
1987
|
+
#line 1988 "scanner.c"
|
1988
|
+
yy198:
|
1989
|
+
++YYCURSOR;
|
1990
|
+
switch ((yych = *YYCURSOR)) {
|
1991
|
+
case 'S':
|
1992
|
+
case 's': goto yy266;
|
1993
|
+
default: goto yy199;
|
1994
|
+
}
|
1995
|
+
yy199:
|
1996
|
+
#line 125 "scanner.re"
|
1997
|
+
{ return TOKEN_FIRST; }
|
1998
|
+
#line 1999 "scanner.c"
|
1999
|
+
yy200:
|
2000
|
+
yych = *++YYCURSOR;
|
2001
|
+
switch (yych) {
|
2002
|
+
case 'E':
|
2003
|
+
case 'e': goto yy268;
|
2004
|
+
default: goto yy35;
|
2005
|
+
}
|
2006
|
+
yy201:
|
2007
|
+
++YYCURSOR;
|
2008
|
+
#line 106 "scanner.re"
|
2009
|
+
{ return TOKEN_FORTY; }
|
2010
|
+
#line 2011 "scanner.c"
|
2011
|
+
yy203:
|
2012
|
+
yych = *++YYCURSOR;
|
2013
|
+
switch (yych) {
|
2014
|
+
case 'E':
|
2015
|
+
case 'e': goto yy269;
|
2016
|
+
case 'H':
|
2017
|
+
case 'h': goto yy270;
|
2018
|
+
case 'I':
|
2019
|
+
case 'i': goto yy272;
|
2020
|
+
case 'Y':
|
2021
|
+
case 'y': goto yy273;
|
2022
|
+
default: goto yy35;
|
2023
|
+
}
|
2024
|
+
yy204:
|
2025
|
+
yych = *++YYCURSOR;
|
2026
|
+
switch (yych) {
|
2027
|
+
case 'S':
|
2028
|
+
case 's': goto yy275;
|
2029
|
+
default: goto yy35;
|
2030
|
+
}
|
2031
|
+
yy205:
|
2032
|
+
yych = *++YYCURSOR;
|
2033
|
+
switch (yych) {
|
2034
|
+
case 'E':
|
2035
|
+
case 'e': goto yy277;
|
2036
|
+
default: goto yy35;
|
2037
|
+
}
|
2038
|
+
yy206:
|
2039
|
+
yych = *++YYCURSOR;
|
2040
|
+
switch (yych) {
|
2041
|
+
case 'O':
|
2042
|
+
case 'o': goto yy278;
|
2043
|
+
default: goto yy35;
|
2044
|
+
}
|
2045
|
+
yy207:
|
2046
|
+
yych = *++YYCURSOR;
|
2047
|
+
switch (yych) {
|
2048
|
+
case 'I':
|
2049
|
+
case 'i': goto yy279;
|
2050
|
+
default: goto yy35;
|
2051
|
+
}
|
2052
|
+
yy208:
|
2053
|
+
yych = *++YYCURSOR;
|
2054
|
+
switch (yych) {
|
2055
|
+
case 'E':
|
2056
|
+
case 'e': goto yy280;
|
2057
|
+
case 'H':
|
2058
|
+
case 'h': goto yy281;
|
2059
|
+
case 'I':
|
2060
|
+
case 'i': goto yy283;
|
2061
|
+
case 'Y':
|
2062
|
+
case 'y': goto yy284;
|
2063
|
+
default: goto yy35;
|
2064
|
+
}
|
2065
|
+
yy209:
|
2066
|
+
yych = *++YYCURSOR;
|
2067
|
+
switch (yych) {
|
2068
|
+
case 'E':
|
2069
|
+
case 'e': goto yy286;
|
2070
|
+
default: goto yy35;
|
2071
|
+
}
|
2072
|
+
yy210:
|
2073
|
+
++YYCURSOR;
|
2074
|
+
switch ((yych = *YYCURSOR)) {
|
2075
|
+
case 'S':
|
2076
|
+
case 's': goto yy287;
|
2077
|
+
default: goto yy211;
|
2078
|
+
}
|
2079
|
+
yy211:
|
2080
|
+
#line 155 "scanner.re"
|
2081
|
+
{ return TOKEN_NINTH; }
|
2082
|
+
#line 2083 "scanner.c"
|
2083
|
+
yy212:
|
2084
|
+
yych = *++YYCURSOR;
|
2085
|
+
switch (yych) {
|
2086
|
+
case 'E':
|
2087
|
+
case 'e': goto yy289;
|
2088
|
+
default: goto yy35;
|
2089
|
+
}
|
2090
|
+
yy213:
|
2091
|
+
yych = *++YYCURSOR;
|
2092
|
+
switch (yych) {
|
2093
|
+
case 'D':
|
2094
|
+
case 'd': goto yy290;
|
2095
|
+
default: goto yy35;
|
2096
|
+
}
|
2097
|
+
yy214:
|
2098
|
+
yyaccept = 16;
|
2099
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
2100
|
+
switch (yych) {
|
2101
|
+
case 'T':
|
2102
|
+
case 't': goto yy292;
|
2103
|
+
default: goto yy215;
|
2104
|
+
}
|
2105
|
+
yy215:
|
2106
|
+
#line 89 "scanner.re"
|
2107
|
+
{ return TOKEN_SEVEN; }
|
2108
|
+
#line 2109 "scanner.c"
|
2109
|
+
yy216:
|
2110
|
+
yych = *++YYCURSOR;
|
2111
|
+
switch (yych) {
|
2112
|
+
case 'E':
|
2113
|
+
case 'e': goto yy293;
|
2114
|
+
default: goto yy35;
|
2115
|
+
}
|
2116
|
+
yy217:
|
2117
|
+
++YYCURSOR;
|
2118
|
+
switch ((yych = *YYCURSOR)) {
|
2119
|
+
case 'S':
|
2120
|
+
case 's': goto yy294;
|
2121
|
+
default: goto yy218;
|
2122
|
+
}
|
2123
|
+
yy218:
|
2124
|
+
#line 151 "scanner.re"
|
2125
|
+
{ return TOKEN_SIXTH; }
|
2126
|
+
#line 2127 "scanner.c"
|
2127
|
+
yy219:
|
2128
|
+
yych = *++YYCURSOR;
|
2129
|
+
switch (yych) {
|
2130
|
+
case 'E':
|
2131
|
+
case 'e': goto yy296;
|
2132
|
+
default: goto yy35;
|
2133
|
+
}
|
2134
|
+
yy220:
|
2135
|
+
++YYCURSOR;
|
2136
|
+
#line 109 "scanner.re"
|
2137
|
+
{ return TOKEN_SIXTY; }
|
2138
|
+
#line 2139 "scanner.c"
|
2139
|
+
yy222:
|
2140
|
+
++YYCURSOR;
|
2141
|
+
switch ((yych = *YYCURSOR)) {
|
2142
|
+
case 'S':
|
2143
|
+
case 's': goto yy297;
|
2144
|
+
default: goto yy223;
|
2145
|
+
}
|
2146
|
+
yy223:
|
2147
|
+
#line 157 "scanner.re"
|
2148
|
+
{ return TOKEN_TENTH; }
|
2149
|
+
#line 2150 "scanner.c"
|
2150
|
+
yy224:
|
2151
|
+
++YYCURSOR;
|
2152
|
+
switch ((yych = *YYCURSOR)) {
|
2153
|
+
case 'S':
|
2154
|
+
case 's': goto yy299;
|
2155
|
+
default: goto yy225;
|
2156
|
+
}
|
2157
|
+
yy225:
|
2158
|
+
#line 148 "scanner.re"
|
2159
|
+
{ return TOKEN_THIRD; }
|
2160
|
+
#line 2161 "scanner.c"
|
2161
|
+
yy226:
|
2162
|
+
yych = *++YYCURSOR;
|
2163
|
+
switch (yych) {
|
2164
|
+
case 'E':
|
2165
|
+
case 'e': goto yy301;
|
2166
|
+
case 'I':
|
2167
|
+
case 'i': goto yy302;
|
2168
|
+
case 'Y':
|
2169
|
+
case 'y': goto yy303;
|
2170
|
+
default: goto yy35;
|
2171
|
+
}
|
2172
|
+
yy227:
|
2173
|
+
yych = *++YYCURSOR;
|
2174
|
+
switch (yych) {
|
2175
|
+
case 'A':
|
2176
|
+
case 'a': goto yy305;
|
2177
|
+
default: goto yy35;
|
2178
|
+
}
|
2179
|
+
yy228:
|
2180
|
+
++YYCURSOR;
|
2181
|
+
#line 85 "scanner.re"
|
2182
|
+
{ return TOKEN_THREE; }
|
2183
|
+
#line 2184 "scanner.c"
|
2184
|
+
yy230:
|
2185
|
+
yych = *++YYCURSOR;
|
2186
|
+
switch (yych) {
|
2187
|
+
case 'I':
|
2188
|
+
case 'i': goto yy306;
|
2189
|
+
default: goto yy35;
|
2190
|
+
}
|
2191
|
+
yy231:
|
2192
|
+
yych = *++YYCURSOR;
|
2193
|
+
switch (yych) {
|
2194
|
+
case 'T':
|
2195
|
+
case 't': goto yy307;
|
2196
|
+
default: goto yy35;
|
2197
|
+
}
|
2198
|
+
yy232:
|
2199
|
+
yych = *++YYCURSOR;
|
2200
|
+
switch (yych) {
|
2201
|
+
case 'E':
|
2202
|
+
case 'e': goto yy308;
|
2203
|
+
default: goto yy35;
|
2204
|
+
}
|
2205
|
+
yy233:
|
2206
|
+
yych = *++YYCURSOR;
|
2207
|
+
switch (yych) {
|
2208
|
+
case 'I':
|
2209
|
+
case 'i': goto yy310;
|
2210
|
+
case 'Y':
|
2211
|
+
case 'y': goto yy311;
|
2212
|
+
default: goto yy35;
|
2213
|
+
}
|
2214
|
+
yy234:
|
2215
|
+
++YYCURSOR;
|
2216
|
+
yych = *YYCURSOR;
|
2217
|
+
switch (yych) {
|
2218
|
+
case ',': goto yy243;
|
2219
|
+
case '.': goto yy70;
|
2220
|
+
default: goto yy35;
|
2221
|
+
}
|
2222
|
+
yy235:
|
2223
|
+
yych = *++YYCURSOR;
|
2224
|
+
switch (yych) {
|
2225
|
+
case '0':
|
2226
|
+
case '1':
|
2227
|
+
case '2':
|
2228
|
+
case '3':
|
2229
|
+
case '4':
|
2230
|
+
case '5':
|
2231
|
+
case '6':
|
2232
|
+
case '7':
|
2233
|
+
case '8':
|
2234
|
+
case '9': goto yy313;
|
2235
|
+
default: goto yy35;
|
2236
|
+
}
|
2237
|
+
yy236:
|
2238
|
+
yych = *++YYCURSOR;
|
2239
|
+
switch (yych) {
|
2240
|
+
case '0':
|
2241
|
+
case '1':
|
2242
|
+
case '2':
|
2243
|
+
case '3':
|
2244
|
+
case '4':
|
2245
|
+
case '5':
|
2246
|
+
case '6':
|
2247
|
+
case '7':
|
2248
|
+
case '8':
|
2249
|
+
case '9': goto yy316;
|
2250
|
+
default: goto yy35;
|
2251
|
+
}
|
2252
|
+
yy237:
|
2253
|
+
++YYCURSOR;
|
2254
|
+
yych = *YYCURSOR;
|
2255
|
+
switch (yych) {
|
2256
|
+
case '0':
|
2257
|
+
case '1':
|
2258
|
+
case '2':
|
2259
|
+
case '3':
|
2260
|
+
case '4':
|
2261
|
+
case '5':
|
2262
|
+
case '6':
|
2263
|
+
case '7':
|
2264
|
+
case '8':
|
2265
|
+
case '9': goto yy319;
|
2266
|
+
default: goto yy35;
|
2267
|
+
}
|
2268
|
+
yy238:
|
2269
|
+
++YYCURSOR;
|
2270
|
+
yych = *YYCURSOR;
|
2271
|
+
switch (yych) {
|
2272
|
+
case '0':
|
2273
|
+
case '1':
|
2274
|
+
case '2':
|
2275
|
+
case '3':
|
2276
|
+
case '4':
|
2277
|
+
case '5':
|
2278
|
+
case '6':
|
2279
|
+
case '7':
|
2280
|
+
case '8':
|
2281
|
+
case '9': goto yy322;
|
2282
|
+
default: goto yy35;
|
2283
|
+
}
|
2284
|
+
yy239:
|
2285
|
+
++YYCURSOR;
|
2286
|
+
yych = *YYCURSOR;
|
2287
|
+
switch (yych) {
|
2288
|
+
case '0':
|
2289
|
+
case '1':
|
2290
|
+
case '2':
|
2291
|
+
case '3':
|
2292
|
+
case '4':
|
2293
|
+
case '5':
|
2294
|
+
case '6':
|
2295
|
+
case '7':
|
2296
|
+
case '8':
|
2297
|
+
case '9': goto yy323;
|
2298
|
+
default: goto yy35;
|
2299
|
+
}
|
2300
|
+
yy240:
|
2301
|
+
++YYCURSOR;
|
2302
|
+
yych = *YYCURSOR;
|
2303
|
+
switch (yych) {
|
2304
|
+
case '0':
|
2305
|
+
case '1':
|
2306
|
+
case '2':
|
2307
|
+
case '3':
|
2308
|
+
case '4':
|
2309
|
+
case '5':
|
2310
|
+
case '6':
|
2311
|
+
case '7':
|
2312
|
+
case '8':
|
2313
|
+
case '9': goto yy324;
|
2314
|
+
default: goto yy35;
|
2315
|
+
}
|
2316
|
+
yy241:
|
2317
|
+
++YYCURSOR;
|
2318
|
+
yych = *YYCURSOR;
|
2319
|
+
switch (yych) {
|
2320
|
+
case ',': goto yy175;
|
2321
|
+
case '.': goto yy326;
|
2322
|
+
default: goto yy35;
|
2323
|
+
}
|
2324
|
+
yy242:
|
2325
|
+
++YYCURSOR;
|
2326
|
+
yych = *YYCURSOR;
|
2327
|
+
switch (yych) {
|
2328
|
+
case 0xB7: goto yy327;
|
2329
|
+
default: goto yy35;
|
2330
|
+
}
|
2331
|
+
yy243:
|
2332
|
+
++YYCURSOR;
|
2333
|
+
yych = *YYCURSOR;
|
2334
|
+
switch (yych) {
|
2335
|
+
case '0':
|
2336
|
+
case '1':
|
2337
|
+
case '2':
|
2338
|
+
case '3':
|
2339
|
+
case '4':
|
2340
|
+
case '5':
|
2341
|
+
case '6':
|
2342
|
+
case '7':
|
2343
|
+
case '8':
|
2344
|
+
case '9': goto yy328;
|
2345
|
+
default: goto yy35;
|
2346
|
+
}
|
2347
|
+
yy244:
|
2348
|
+
yych = *++YYCURSOR;
|
2349
|
+
switch (yych) {
|
2350
|
+
case '0':
|
2351
|
+
case '1':
|
2352
|
+
case '2':
|
2353
|
+
case '3':
|
2354
|
+
case '4':
|
2355
|
+
case '5':
|
2356
|
+
case '6':
|
2357
|
+
case '7':
|
2358
|
+
case '8':
|
2359
|
+
case '9': goto yy331;
|
2360
|
+
default: goto yy35;
|
2361
|
+
}
|
2362
|
+
yy245:
|
2363
|
+
yyaccept = 14;
|
2364
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
2365
|
+
switch (yych) {
|
2366
|
+
case '/': goto yy244;
|
2367
|
+
case '0':
|
2368
|
+
case '1':
|
2369
|
+
case '2':
|
2370
|
+
case '3':
|
2371
|
+
case '4':
|
2372
|
+
case '5':
|
2373
|
+
case '6':
|
2374
|
+
case '7':
|
2375
|
+
case '8':
|
2376
|
+
case '9': goto yy332;
|
2377
|
+
default: goto yy78;
|
2378
|
+
}
|
2379
|
+
yy246:
|
2380
|
+
yych = *++YYCURSOR;
|
2381
|
+
switch (yych) {
|
2382
|
+
case '0':
|
2383
|
+
case '1':
|
2384
|
+
case '2':
|
2385
|
+
case '3':
|
2386
|
+
case '4':
|
2387
|
+
case '5':
|
2388
|
+
case '6':
|
2389
|
+
case '7':
|
2390
|
+
case '8':
|
2391
|
+
case '9': goto yy170;
|
2392
|
+
default: goto yy35;
|
2393
|
+
}
|
2394
|
+
yy247:
|
2395
|
+
++YYCURSOR;
|
2396
|
+
yych = *YYCURSOR;
|
2397
|
+
switch (yych) {
|
2398
|
+
case '0':
|
2399
|
+
case '1':
|
2400
|
+
case '2':
|
2401
|
+
case '3':
|
2402
|
+
case '4':
|
2403
|
+
case '5':
|
2404
|
+
case '6':
|
2405
|
+
case '7':
|
2406
|
+
case '8':
|
2407
|
+
case '9': goto yy333;
|
2408
|
+
default: goto yy35;
|
2409
|
+
}
|
2410
|
+
yy248:
|
2411
|
+
yych = *++YYCURSOR;
|
2412
|
+
switch (yych) {
|
2413
|
+
case 'I':
|
2414
|
+
case 'i': goto yy334;
|
2415
|
+
default: goto yy35;
|
2416
|
+
}
|
2417
|
+
yy249:
|
2418
|
+
yych = *++YYCURSOR;
|
2419
|
+
switch (yych) {
|
2420
|
+
case 'R':
|
2421
|
+
case 'r': goto yy335;
|
2422
|
+
default: goto yy35;
|
2423
|
+
}
|
2424
|
+
yy250:
|
2425
|
+
yych = *++YYCURSOR;
|
2426
|
+
switch (yych) {
|
2427
|
+
case 'I':
|
2428
|
+
case 'i': goto yy336;
|
2429
|
+
default: goto yy35;
|
2430
|
+
}
|
2431
|
+
yy251:
|
2432
|
+
yych = *++YYCURSOR;
|
2433
|
+
switch (yych) {
|
2434
|
+
case 'S':
|
2435
|
+
case 's': goto yy337;
|
2436
|
+
default: goto yy35;
|
2437
|
+
}
|
2438
|
+
yy252:
|
2439
|
+
yych = *++YYCURSOR;
|
2440
|
+
switch (yych) {
|
2441
|
+
case 'L':
|
2442
|
+
case 'l': goto yy338;
|
2443
|
+
default: goto yy35;
|
2444
|
+
}
|
2445
|
+
yy253:
|
2446
|
+
yych = *++YYCURSOR;
|
2447
|
+
switch (yych) {
|
2448
|
+
case 'N':
|
2449
|
+
case 'n': goto yy339;
|
2450
|
+
default: goto yy35;
|
2451
|
+
}
|
2452
|
+
yy254:
|
2453
|
+
yych = *++YYCURSOR;
|
2454
|
+
switch (yych) {
|
2455
|
+
case 'E':
|
2456
|
+
case 'e': goto yy341;
|
2457
|
+
default: goto yy35;
|
2458
|
+
}
|
2459
|
+
yy255:
|
2460
|
+
++YYCURSOR;
|
2461
|
+
switch ((yych = *YYCURSOR)) {
|
2462
|
+
case 'S':
|
2463
|
+
case 's': goto yy342;
|
2464
|
+
default: goto yy256;
|
2465
|
+
}
|
2466
|
+
yy256:
|
2467
|
+
#line 153 "scanner.re"
|
2468
|
+
{ return TOKEN_EIGHTH; }
|
2469
|
+
#line 2470 "scanner.c"
|
2470
|
+
yy257:
|
2471
|
+
yych = *++YYCURSOR;
|
2472
|
+
switch (yych) {
|
2473
|
+
case 'E':
|
2474
|
+
case 'e': goto yy344;
|
2475
|
+
default: goto yy35;
|
2476
|
+
}
|
2477
|
+
yy258:
|
2478
|
+
++YYCURSOR;
|
2479
|
+
#line 111 "scanner.re"
|
2480
|
+
{ return TOKEN_EIGHTY; }
|
2481
|
+
#line 2482 "scanner.c"
|
2482
|
+
yy260:
|
2483
|
+
yyaccept = 17;
|
2484
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
2485
|
+
switch (yych) {
|
2486
|
+
case 'T':
|
2487
|
+
case 't': goto yy345;
|
2488
|
+
default: goto yy261;
|
2489
|
+
}
|
2490
|
+
yy261:
|
2491
|
+
#line 93 "scanner.re"
|
2492
|
+
{ return TOKEN_ELEVEN; }
|
2493
|
+
#line 2494 "scanner.c"
|
2494
|
+
yy262:
|
2495
|
+
yych = *++YYCURSOR;
|
2496
|
+
switch (yych) {
|
2497
|
+
case 'N':
|
2498
|
+
case 'n': goto yy346;
|
2499
|
+
default: goto yy35;
|
2500
|
+
}
|
2501
|
+
yy263:
|
2502
|
+
++YYCURSOR;
|
2503
|
+
#line 217 "scanner.re"
|
2504
|
+
{ return TOKEN_FIFTHS; }
|
2505
|
+
#line 2506 "scanner.c"
|
2506
|
+
yy265:
|
2507
|
+
yych = *++YYCURSOR;
|
2508
|
+
switch (yych) {
|
2509
|
+
case 'T':
|
2510
|
+
case 't': goto yy348;
|
2511
|
+
default: goto yy35;
|
2512
|
+
}
|
2513
|
+
yy266:
|
2514
|
+
++YYCURSOR;
|
2515
|
+
#line 192 "scanner.re"
|
2516
|
+
{ return TOKEN_FIRSTS; }
|
2517
|
+
#line 2518 "scanner.c"
|
2518
|
+
yy268:
|
2519
|
+
yych = *++YYCURSOR;
|
2520
|
+
switch (yych) {
|
2521
|
+
case 'T':
|
2522
|
+
case 't': goto yy349;
|
2523
|
+
default: goto yy35;
|
2524
|
+
}
|
2525
|
+
yy269:
|
2526
|
+
yych = *++YYCURSOR;
|
2527
|
+
switch (yych) {
|
2528
|
+
case 'E':
|
2529
|
+
case 'e': goto yy350;
|
2530
|
+
default: goto yy35;
|
2531
|
+
}
|
2532
|
+
yy270:
|
2533
|
+
++YYCURSOR;
|
2534
|
+
switch ((yych = *YYCURSOR)) {
|
2535
|
+
case 'S':
|
2536
|
+
case 's': goto yy351;
|
2537
|
+
default: goto yy271;
|
2538
|
+
}
|
2539
|
+
yy271:
|
2540
|
+
#line 149 "scanner.re"
|
2541
|
+
{ return TOKEN_FOURTH; }
|
2542
|
+
#line 2543 "scanner.c"
|
2543
|
+
yy272:
|
2544
|
+
yych = *++YYCURSOR;
|
2545
|
+
switch (yych) {
|
2546
|
+
case 'E':
|
2547
|
+
case 'e': goto yy353;
|
2548
|
+
default: goto yy35;
|
2549
|
+
}
|
2550
|
+
yy273:
|
2551
|
+
++YYCURSOR;
|
2552
|
+
#line 107 "scanner.re"
|
2553
|
+
{ return TOKEN_FORTY; }
|
2554
|
+
#line 2555 "scanner.c"
|
2555
|
+
yy275:
|
2556
|
+
++YYCURSOR;
|
2557
|
+
#line 251 "scanner.re"
|
2558
|
+
{ return TOKEN_HALVES; }
|
2559
|
+
#line 2560 "scanner.c"
|
2560
|
+
yy277:
|
2561
|
+
yych = *++YYCURSOR;
|
2562
|
+
switch (yych) {
|
2563
|
+
case 'D':
|
2564
|
+
case 'd': goto yy354;
|
2565
|
+
default: goto yy35;
|
2566
|
+
}
|
2567
|
+
yy278:
|
2568
|
+
yych = *++YYCURSOR;
|
2569
|
+
switch (yych) {
|
2570
|
+
case 'N':
|
2571
|
+
case 'n': goto yy356;
|
2572
|
+
default: goto yy35;
|
2573
|
+
}
|
2574
|
+
yy279:
|
2575
|
+
yych = *++YYCURSOR;
|
2576
|
+
switch (yych) {
|
2577
|
+
case 'V':
|
2578
|
+
case 'v': goto yy358;
|
2579
|
+
default: goto yy35;
|
2580
|
+
}
|
2581
|
+
yy280:
|
2582
|
+
yych = *++YYCURSOR;
|
2583
|
+
switch (yych) {
|
2584
|
+
case 'E':
|
2585
|
+
case 'e': goto yy359;
|
2586
|
+
default: goto yy35;
|
2587
|
+
}
|
2588
|
+
yy281:
|
2589
|
+
++YYCURSOR;
|
2590
|
+
switch ((yych = *YYCURSOR)) {
|
2591
|
+
case 'S':
|
2592
|
+
case 's': goto yy360;
|
2593
|
+
default: goto yy282;
|
2594
|
+
}
|
2595
|
+
yy282:
|
2596
|
+
#line 154 "scanner.re"
|
2597
|
+
{ return TOKEN_NINTH; }
|
2598
|
+
#line 2599 "scanner.c"
|
2599
|
+
yy283:
|
2600
|
+
yych = *++YYCURSOR;
|
2601
|
+
switch (yych) {
|
2602
|
+
case 'E':
|
2603
|
+
case 'e': goto yy362;
|
2604
|
+
default: goto yy35;
|
2605
|
+
}
|
2606
|
+
yy284:
|
2607
|
+
++YYCURSOR;
|
2608
|
+
#line 112 "scanner.re"
|
2609
|
+
{ return TOKEN_NINETY; }
|
2610
|
+
#line 2611 "scanner.c"
|
2611
|
+
yy286:
|
2612
|
+
yych = *++YYCURSOR;
|
2613
|
+
switch (yych) {
|
2614
|
+
case 'N':
|
2615
|
+
case 'n': goto yy363;
|
2616
|
+
default: goto yy35;
|
2617
|
+
}
|
2618
|
+
yy287:
|
2619
|
+
++YYCURSOR;
|
2620
|
+
#line 222 "scanner.re"
|
2621
|
+
{ return TOKEN_NINTHS; }
|
2622
|
+
#line 2623 "scanner.c"
|
2623
|
+
yy289:
|
2624
|
+
yych = *++YYCURSOR;
|
2625
|
+
switch (yych) {
|
2626
|
+
case 'R':
|
2627
|
+
case 'r': goto yy365;
|
2628
|
+
default: goto yy35;
|
2629
|
+
}
|
2630
|
+
yy290:
|
2631
|
+
++YYCURSOR;
|
2632
|
+
switch ((yych = *YYCURSOR)) {
|
2633
|
+
case 'S':
|
2634
|
+
case 's': goto yy367;
|
2635
|
+
default: goto yy291;
|
2636
|
+
}
|
2637
|
+
yy291:
|
2638
|
+
#line 126 "scanner.re"
|
2639
|
+
{
|
2640
|
+
if (!state->parse_second) {
|
2641
|
+
// dont' parse "second" by default. easiest way to do this is to
|
2642
|
+
// treat it as a character token
|
2643
|
+
if (state->is_parsing) {
|
2644
|
+
if (state->last_token != TOKEN_SEPARATOR) {
|
2645
|
+
// number followed by character... e.g. "oneself"
|
2646
|
+
} else {
|
2647
|
+
// finish whatever we had and reset
|
2648
|
+
Parse(pParser, 0, *yylval, state);
|
2649
|
+
}
|
2650
|
+
|
2651
|
+
ParseReset(pParser);
|
2652
|
+
state->is_parsing = false;
|
2653
|
+
}
|
2654
|
+
|
2655
|
+
state->last_token = TOKEN_CHARACTERS;
|
2656
|
+
goto fast_path;
|
2657
|
+
} else {
|
2658
|
+
return TOKEN_SECOND;
|
2659
|
+
}
|
2660
|
+
}
|
2661
|
+
#line 2662 "scanner.c"
|
2662
|
+
yy292:
|
2663
|
+
yych = *++YYCURSOR;
|
2664
|
+
switch (yych) {
|
2665
|
+
case 'E':
|
2666
|
+
case 'e': goto yy369;
|
2667
|
+
case 'H':
|
2668
|
+
case 'h': goto yy370;
|
2669
|
+
case 'I':
|
2670
|
+
case 'i': goto yy372;
|
2671
|
+
case 'Y':
|
2672
|
+
case 'y': goto yy373;
|
2673
|
+
default: goto yy35;
|
2674
|
+
}
|
2675
|
+
yy293:
|
2676
|
+
yych = *++YYCURSOR;
|
2677
|
+
switch (yych) {
|
2678
|
+
case 'N':
|
2679
|
+
case 'n': goto yy375;
|
2680
|
+
default: goto yy35;
|
2681
|
+
}
|
2682
|
+
yy294:
|
2683
|
+
++YYCURSOR;
|
2684
|
+
#line 218 "scanner.re"
|
2685
|
+
{ return TOKEN_SIXTHS; }
|
2686
|
+
#line 2687 "scanner.c"
|
2687
|
+
yy296:
|
2688
|
+
yych = *++YYCURSOR;
|
2689
|
+
switch (yych) {
|
2690
|
+
case 'T':
|
2691
|
+
case 't': goto yy377;
|
2692
|
+
default: goto yy35;
|
2693
|
+
}
|
2694
|
+
yy297:
|
2695
|
+
++YYCURSOR;
|
2696
|
+
#line 224 "scanner.re"
|
2697
|
+
{ return TOKEN_TENTHS; }
|
2698
|
+
#line 2699 "scanner.c"
|
2699
|
+
yy299:
|
2700
|
+
++YYCURSOR;
|
2701
|
+
#line 215 "scanner.re"
|
2702
|
+
{ return TOKEN_THIRDS; }
|
2703
|
+
#line 2704 "scanner.c"
|
2704
|
+
yy301:
|
2705
|
+
yych = *++YYCURSOR;
|
2706
|
+
switch (yych) {
|
2707
|
+
case 'E':
|
2708
|
+
case 'e': goto yy378;
|
2709
|
+
default: goto yy35;
|
2710
|
+
}
|
2711
|
+
yy302:
|
2712
|
+
yych = *++YYCURSOR;
|
2713
|
+
switch (yych) {
|
2714
|
+
case 'E':
|
2715
|
+
case 'e': goto yy379;
|
2716
|
+
default: goto yy35;
|
2717
|
+
}
|
2718
|
+
yy303:
|
2719
|
+
++YYCURSOR;
|
2720
|
+
#line 105 "scanner.re"
|
2721
|
+
{ return TOKEN_THIRTY; }
|
2722
|
+
#line 2723 "scanner.c"
|
2723
|
+
yy305:
|
2724
|
+
yych = *++YYCURSOR;
|
2725
|
+
switch (yych) {
|
2726
|
+
case 'N':
|
2727
|
+
case 'n': goto yy380;
|
2728
|
+
default: goto yy35;
|
2729
|
+
}
|
2730
|
+
yy306:
|
2731
|
+
yych = *++YYCURSOR;
|
2732
|
+
switch (yych) {
|
2733
|
+
case 'O':
|
2734
|
+
case 'o': goto yy381;
|
2735
|
+
default: goto yy35;
|
2736
|
+
}
|
2737
|
+
yy307:
|
2738
|
+
yych = *++YYCURSOR;
|
2739
|
+
switch (yych) {
|
2740
|
+
case 'H':
|
2741
|
+
case 'h': goto yy382;
|
2742
|
+
default: goto yy35;
|
2743
|
+
}
|
2744
|
+
yy308:
|
2745
|
+
++YYCURSOR;
|
2746
|
+
#line 94 "scanner.re"
|
2747
|
+
{ return TOKEN_TWELVE; }
|
2748
|
+
#line 2749 "scanner.c"
|
2749
|
+
yy310:
|
2750
|
+
yych = *++YYCURSOR;
|
2751
|
+
switch (yych) {
|
2752
|
+
case 'E':
|
2753
|
+
case 'e': goto yy384;
|
2754
|
+
default: goto yy35;
|
2755
|
+
}
|
2756
|
+
yy311:
|
2757
|
+
++YYCURSOR;
|
2758
|
+
#line 104 "scanner.re"
|
2759
|
+
{ return TOKEN_TWENTY; }
|
2760
|
+
#line 2761 "scanner.c"
|
2761
|
+
yy313:
|
2762
|
+
++YYCURSOR;
|
2763
|
+
yych = *YYCURSOR;
|
2764
|
+
switch (yych) {
|
2765
|
+
case '0':
|
2766
|
+
case '1':
|
2767
|
+
case '2':
|
2768
|
+
case '3':
|
2769
|
+
case '4':
|
2770
|
+
case '5':
|
2771
|
+
case '6':
|
2772
|
+
case '7':
|
2773
|
+
case '8':
|
2774
|
+
case '9': goto yy313;
|
2775
|
+
default: goto yy315;
|
2776
|
+
}
|
2777
|
+
yy315:
|
2778
|
+
#line 330 "scanner.re"
|
2779
|
+
{
|
2780
|
+
// create duplicate of string (to be modified inplace)
|
2781
|
+
size_t token_len = ss->cursor - ss->token;
|
2782
|
+
char* tmp = (char*)malloc(token_len + 1);
|
2783
|
+
strncpy(tmp, ss->token, token_len);
|
2784
|
+
tmp[token_len] = '\0';
|
2785
|
+
|
2786
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ' ');
|
2787
|
+
replace_char_inplace(tmp, len, ',', '.');
|
2788
|
+
|
2789
|
+
// turn string version of number into double
|
2790
|
+
sds string_value = sdsnewlen(tmp, len);
|
2791
|
+
free(tmp);
|
2792
|
+
|
2793
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
2794
|
+
sdsfree(string_value);
|
2795
|
+
|
2796
|
+
return TOKEN_DECIMAL;
|
2797
|
+
}
|
2798
|
+
#line 2799 "scanner.c"
|
2799
|
+
yy316:
|
2800
|
+
++YYCURSOR;
|
2801
|
+
yych = *YYCURSOR;
|
2802
|
+
switch (yych) {
|
2803
|
+
case '0':
|
2804
|
+
case '1':
|
2805
|
+
case '2':
|
2806
|
+
case '3':
|
2807
|
+
case '4':
|
2808
|
+
case '5':
|
2809
|
+
case '6':
|
2810
|
+
case '7':
|
2811
|
+
case '8':
|
2812
|
+
case '9': goto yy316;
|
2813
|
+
default: goto yy318;
|
2814
|
+
}
|
2815
|
+
yy318:
|
2816
|
+
#line 312 "scanner.re"
|
2817
|
+
{
|
2818
|
+
// create duplicate of string (to be modified inplace)
|
2819
|
+
size_t token_len = ss->cursor - ss->token;
|
2820
|
+
char* tmp = (char*)malloc(token_len + 1);
|
2821
|
+
strncpy(tmp, ss->token, token_len);
|
2822
|
+
tmp[token_len] = '\0';
|
2823
|
+
|
2824
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ' ');
|
2825
|
+
|
2826
|
+
// turn string version of number into double
|
2827
|
+
sds string_value = sdsnewlen(tmp, len);
|
2828
|
+
free(tmp);
|
2829
|
+
|
2830
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
2831
|
+
sdsfree(string_value);
|
2832
|
+
|
2833
|
+
return TOKEN_DECIMAL;
|
2834
|
+
}
|
2835
|
+
#line 2836 "scanner.c"
|
2836
|
+
yy319:
|
2837
|
+
yyaccept = 18;
|
2838
|
+
YYMARKER = ++YYCURSOR;
|
2839
|
+
yych = *YYCURSOR;
|
2840
|
+
switch (yych) {
|
2841
|
+
case '.': goto yy237;
|
2842
|
+
case '0':
|
2843
|
+
case '1':
|
2844
|
+
case '2':
|
2845
|
+
case '3':
|
2846
|
+
case '4':
|
2847
|
+
case '5':
|
2848
|
+
case '6':
|
2849
|
+
case '7':
|
2850
|
+
case '8':
|
2851
|
+
case '9': goto yy319;
|
2852
|
+
default: goto yy321;
|
2853
|
+
}
|
2854
|
+
yy321:
|
2855
|
+
#line 405 "scanner.re"
|
2856
|
+
{
|
2857
|
+
// create duplicate of string (to be modified inplace)
|
2858
|
+
size_t token_len = ss->cursor - ss->token;
|
2859
|
+
char* tmp = (char*)malloc(token_len + 1);
|
2860
|
+
strncpy(tmp, ss->token, token_len);
|
2861
|
+
tmp[token_len] = '\0';
|
2862
|
+
|
2863
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, '\'');
|
2864
|
+
|
2865
|
+
// turn string version of number into double
|
2866
|
+
sds string_value = sdsnewlen(tmp, len);
|
2867
|
+
free(tmp);
|
2868
|
+
|
2869
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
2870
|
+
sdsfree(string_value);
|
2871
|
+
|
2872
|
+
return TOKEN_DECIMAL;
|
2873
|
+
}
|
2874
|
+
#line 2875 "scanner.c"
|
2875
|
+
yy322:
|
2876
|
+
++YYCURSOR;
|
2877
|
+
yych = *YYCURSOR;
|
2878
|
+
switch (yych) {
|
2879
|
+
case ',': goto yy169;
|
2880
|
+
case '0':
|
2881
|
+
case '1':
|
2882
|
+
case '2':
|
2883
|
+
case '3':
|
2884
|
+
case '4':
|
2885
|
+
case '5':
|
2886
|
+
case '6':
|
2887
|
+
case '7':
|
2888
|
+
case '8':
|
2889
|
+
case '9': goto yy385;
|
2890
|
+
default: goto yy35;
|
2891
|
+
}
|
2892
|
+
yy323:
|
2893
|
+
++YYCURSOR;
|
2894
|
+
yych = *YYCURSOR;
|
2895
|
+
switch (yych) {
|
2896
|
+
case '0':
|
2897
|
+
case '1':
|
2898
|
+
case '2':
|
2899
|
+
case '3':
|
2900
|
+
case '4':
|
2901
|
+
case '5':
|
2902
|
+
case '6':
|
2903
|
+
case '7':
|
2904
|
+
case '8':
|
2905
|
+
case '9': goto yy386;
|
2906
|
+
default: goto yy35;
|
2907
|
+
}
|
2908
|
+
yy324:
|
2909
|
+
yyaccept = 12;
|
2910
|
+
YYMARKER = ++YYCURSOR;
|
2911
|
+
yych = *YYCURSOR;
|
2912
|
+
switch (yych) {
|
2913
|
+
case '.': goto yy240;
|
2914
|
+
case '0':
|
2915
|
+
case '1':
|
2916
|
+
case '2':
|
2917
|
+
case '3':
|
2918
|
+
case '4':
|
2919
|
+
case '5':
|
2920
|
+
case '6':
|
2921
|
+
case '7':
|
2922
|
+
case '8':
|
2923
|
+
case '9': goto yy324;
|
2924
|
+
default: goto yy171;
|
2925
|
+
}
|
2926
|
+
yy326:
|
2927
|
+
++YYCURSOR;
|
2928
|
+
yych = *YYCURSOR;
|
2929
|
+
switch (yych) {
|
2930
|
+
case '0':
|
2931
|
+
case '1':
|
2932
|
+
case '2':
|
2933
|
+
case '3':
|
2934
|
+
case '4':
|
2935
|
+
case '5':
|
2936
|
+
case '6':
|
2937
|
+
case '7':
|
2938
|
+
case '8':
|
2939
|
+
case '9': goto yy387;
|
2940
|
+
default: goto yy35;
|
2941
|
+
}
|
2942
|
+
yy327:
|
2943
|
+
++YYCURSOR;
|
2944
|
+
yych = *YYCURSOR;
|
2945
|
+
switch (yych) {
|
2946
|
+
case '0':
|
2947
|
+
case '1':
|
2948
|
+
case '2':
|
2949
|
+
case '3':
|
2950
|
+
case '4':
|
2951
|
+
case '5':
|
2952
|
+
case '6':
|
2953
|
+
case '7':
|
2954
|
+
case '8':
|
2955
|
+
case '9': goto yy390;
|
2956
|
+
default: goto yy35;
|
2957
|
+
}
|
2958
|
+
yy328:
|
2959
|
+
yyaccept = 19;
|
2960
|
+
YYMARKER = ++YYCURSOR;
|
2961
|
+
yych = *YYCURSOR;
|
2962
|
+
switch (yych) {
|
2963
|
+
case ',': goto yy243;
|
2964
|
+
case '0':
|
2965
|
+
case '1':
|
2966
|
+
case '2':
|
2967
|
+
case '3':
|
2968
|
+
case '4':
|
2969
|
+
case '5':
|
2970
|
+
case '6':
|
2971
|
+
case '7':
|
2972
|
+
case '8':
|
2973
|
+
case '9': goto yy328;
|
2974
|
+
default: goto yy330;
|
2975
|
+
}
|
2976
|
+
yy330:
|
2977
|
+
#line 368 "scanner.re"
|
2978
|
+
{
|
2979
|
+
// create duplicate of string (to be modified inplace)
|
2980
|
+
size_t token_len = ss->cursor - ss->token;
|
2981
|
+
char* tmp = (char*)malloc(token_len + 1);
|
2982
|
+
strncpy(tmp, ss->token, token_len);
|
2983
|
+
tmp[token_len] = '\0';
|
2984
|
+
|
2985
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, '.');
|
2986
|
+
replace_char_inplace(tmp, len, ',', '.');
|
2987
|
+
|
2988
|
+
// turn string version of number into double
|
2989
|
+
sds string_value = sdsnewlen(tmp, len);
|
2990
|
+
free(tmp);
|
2991
|
+
|
2992
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
2993
|
+
sdsfree(string_value);
|
2994
|
+
|
2995
|
+
return TOKEN_DECIMAL;
|
2996
|
+
}
|
2997
|
+
#line 2998 "scanner.c"
|
2998
|
+
yy331:
|
2999
|
+
yych = *++YYCURSOR;
|
3000
|
+
switch (yych) {
|
3001
|
+
case '0':
|
3002
|
+
case '1':
|
3003
|
+
case '2':
|
3004
|
+
case '3':
|
3005
|
+
case '4':
|
3006
|
+
case '5':
|
3007
|
+
case '6':
|
3008
|
+
case '7':
|
3009
|
+
case '8':
|
3010
|
+
case '9': goto yy393;
|
3011
|
+
default: goto yy35;
|
3012
|
+
}
|
3013
|
+
yy332:
|
3014
|
+
yyaccept = 14;
|
3015
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3016
|
+
switch (yych) {
|
3017
|
+
case '/': goto yy244;
|
3018
|
+
default: goto yy77;
|
3019
|
+
}
|
3020
|
+
yy333:
|
3021
|
+
++YYCURSOR;
|
3022
|
+
yych = *YYCURSOR;
|
3023
|
+
switch (yych) {
|
3024
|
+
case '0':
|
3025
|
+
case '1':
|
3026
|
+
case '2':
|
3027
|
+
case '3':
|
3028
|
+
case '4':
|
3029
|
+
case '5':
|
3030
|
+
case '6':
|
3031
|
+
case '7':
|
3032
|
+
case '8':
|
3033
|
+
case '9': goto yy395;
|
3034
|
+
default: goto yy35;
|
3035
|
+
}
|
3036
|
+
yy334:
|
3037
|
+
yych = *++YYCURSOR;
|
3038
|
+
switch (yych) {
|
3039
|
+
case 'O':
|
3040
|
+
case 'o': goto yy396;
|
3041
|
+
default: goto yy35;
|
3042
|
+
}
|
3043
|
+
yy335:
|
3044
|
+
yych = *++YYCURSOR;
|
3045
|
+
switch (yych) {
|
3046
|
+
case 'E':
|
3047
|
+
case 'e': goto yy397;
|
3048
|
+
default: goto yy35;
|
3049
|
+
}
|
3050
|
+
yy336:
|
3051
|
+
yych = *++YYCURSOR;
|
3052
|
+
switch (yych) {
|
3053
|
+
case 'O':
|
3054
|
+
case 'o': goto yy398;
|
3055
|
+
default: goto yy35;
|
3056
|
+
}
|
3057
|
+
yy337:
|
3058
|
+
yych = *++YYCURSOR;
|
3059
|
+
switch (yych) {
|
3060
|
+
case 'A':
|
3061
|
+
case 'a': goto yy399;
|
3062
|
+
default: goto yy35;
|
3063
|
+
}
|
3064
|
+
yy338:
|
3065
|
+
yych = *++YYCURSOR;
|
3066
|
+
switch (yych) {
|
3067
|
+
case 'I':
|
3068
|
+
case 'i': goto yy400;
|
3069
|
+
default: goto yy35;
|
3070
|
+
}
|
3071
|
+
yy339:
|
3072
|
+
yyaccept = 20;
|
3073
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3074
|
+
switch (yych) {
|
3075
|
+
case 'T':
|
3076
|
+
case 't': goto yy401;
|
3077
|
+
default: goto yy340;
|
3078
|
+
}
|
3079
|
+
yy340:
|
3080
|
+
#line 121 "scanner.re"
|
3081
|
+
{ return TOKEN_BILLION; }
|
3082
|
+
#line 3083 "scanner.c"
|
3083
|
+
yy341:
|
3084
|
+
yych = *++YYCURSOR;
|
3085
|
+
switch (yych) {
|
3086
|
+
case 'N':
|
3087
|
+
case 'n': goto yy402;
|
3088
|
+
default: goto yy35;
|
3089
|
+
}
|
3090
|
+
yy342:
|
3091
|
+
++YYCURSOR;
|
3092
|
+
#line 220 "scanner.re"
|
3093
|
+
{ return TOKEN_EIGHTHS; }
|
3094
|
+
#line 3095 "scanner.c"
|
3095
|
+
yy344:
|
3096
|
+
yych = *++YYCURSOR;
|
3097
|
+
switch (yych) {
|
3098
|
+
case 'T':
|
3099
|
+
case 't': goto yy404;
|
3100
|
+
default: goto yy35;
|
3101
|
+
}
|
3102
|
+
yy345:
|
3103
|
+
yych = *++YYCURSOR;
|
3104
|
+
switch (yych) {
|
3105
|
+
case 'H':
|
3106
|
+
case 'h': goto yy405;
|
3107
|
+
default: goto yy35;
|
3108
|
+
}
|
3109
|
+
yy346:
|
3110
|
+
yyaccept = 21;
|
3111
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3112
|
+
switch (yych) {
|
3113
|
+
case 'T':
|
3114
|
+
case 't': goto yy407;
|
3115
|
+
default: goto yy347;
|
3116
|
+
}
|
3117
|
+
yy347:
|
3118
|
+
#line 97 "scanner.re"
|
3119
|
+
{ return TOKEN_FIFTEEN; }
|
3120
|
+
#line 3121 "scanner.c"
|
3121
|
+
yy348:
|
3122
|
+
yych = *++YYCURSOR;
|
3123
|
+
switch (yych) {
|
3124
|
+
case 'H':
|
3125
|
+
case 'h': goto yy408;
|
3126
|
+
default: goto yy35;
|
3127
|
+
}
|
3128
|
+
yy349:
|
3129
|
+
yych = *++YYCURSOR;
|
3130
|
+
switch (yych) {
|
3131
|
+
case 'H':
|
3132
|
+
case 'h': goto yy410;
|
3133
|
+
default: goto yy35;
|
3134
|
+
}
|
3135
|
+
yy350:
|
3136
|
+
yych = *++YYCURSOR;
|
3137
|
+
switch (yych) {
|
3138
|
+
case 'N':
|
3139
|
+
case 'n': goto yy412;
|
3140
|
+
default: goto yy35;
|
3141
|
+
}
|
3142
|
+
yy351:
|
3143
|
+
++YYCURSOR;
|
3144
|
+
#line 216 "scanner.re"
|
3145
|
+
{ return TOKEN_FOURTHS; }
|
3146
|
+
#line 3147 "scanner.c"
|
3147
|
+
yy353:
|
3148
|
+
yych = *++YYCURSOR;
|
3149
|
+
switch (yych) {
|
3150
|
+
case 'T':
|
3151
|
+
case 't': goto yy414;
|
3152
|
+
default: goto yy35;
|
3153
|
+
}
|
3154
|
+
yy354:
|
3155
|
+
yyaccept = 22;
|
3156
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3157
|
+
switch (yych) {
|
3158
|
+
case 'T':
|
3159
|
+
case 't': goto yy415;
|
3160
|
+
default: goto yy355;
|
3161
|
+
}
|
3162
|
+
yy355:
|
3163
|
+
#line 115 "scanner.re"
|
3164
|
+
{ return TOKEN_HUNDRED; }
|
3165
|
+
#line 3166 "scanner.c"
|
3166
|
+
yy356:
|
3167
|
+
yyaccept = 23;
|
3168
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3169
|
+
switch (yych) {
|
3170
|
+
case 'T':
|
3171
|
+
case 't': goto yy416;
|
3172
|
+
default: goto yy357;
|
3173
|
+
}
|
3174
|
+
yy357:
|
3175
|
+
#line 119 "scanner.re"
|
3176
|
+
{ return TOKEN_MILLION; }
|
3177
|
+
#line 3178 "scanner.c"
|
3178
|
+
yy358:
|
3179
|
+
yych = *++YYCURSOR;
|
3180
|
+
switch (yych) {
|
3181
|
+
case 'E':
|
3182
|
+
case 'e': goto yy417;
|
3183
|
+
default: goto yy35;
|
3184
|
+
}
|
3185
|
+
yy359:
|
3186
|
+
yych = *++YYCURSOR;
|
3187
|
+
switch (yych) {
|
3188
|
+
case 'N':
|
3189
|
+
case 'n': goto yy419;
|
3190
|
+
default: goto yy35;
|
3191
|
+
}
|
3192
|
+
yy360:
|
3193
|
+
++YYCURSOR;
|
3194
|
+
#line 221 "scanner.re"
|
3195
|
+
{ return TOKEN_NINTHS; }
|
3196
|
+
#line 3197 "scanner.c"
|
3197
|
+
yy362:
|
3198
|
+
yych = *++YYCURSOR;
|
3199
|
+
switch (yych) {
|
3200
|
+
case 'T':
|
3201
|
+
case 't': goto yy421;
|
3202
|
+
default: goto yy35;
|
3203
|
+
}
|
3204
|
+
yy363:
|
3205
|
+
++YYCURSOR;
|
3206
|
+
#line 102 "scanner.re"
|
3207
|
+
{ return TOKEN_NINETEEN; }
|
3208
|
+
#line 3209 "scanner.c"
|
3209
|
+
yy365:
|
3210
|
+
++YYCURSOR;
|
3211
|
+
switch ((yych = *YYCURSOR)) {
|
3212
|
+
case 'S':
|
3213
|
+
case 's': goto yy422;
|
3214
|
+
default: goto yy366;
|
3215
|
+
}
|
3216
|
+
yy366:
|
3217
|
+
#line 189 "scanner.re"
|
3218
|
+
{ return TOKEN_QUARTER; }
|
3219
|
+
#line 3220 "scanner.c"
|
3220
|
+
yy367:
|
3221
|
+
++YYCURSOR;
|
3222
|
+
#line 193 "scanner.re"
|
3223
|
+
{
|
3224
|
+
if (!state->parse_second) {
|
3225
|
+
// dont' parse "second" by default. easiest way to do this is to
|
3226
|
+
// treat it as a character token
|
3227
|
+
if (state->is_parsing) {
|
3228
|
+
if (state->last_token != TOKEN_SEPARATOR) {
|
3229
|
+
// number followed by character... e.g. "oneself"
|
3230
|
+
} else {
|
3231
|
+
// finish whatever we had and reset
|
3232
|
+
Parse(pParser, 0, *yylval, state);
|
3233
|
+
}
|
3234
|
+
|
3235
|
+
ParseReset(pParser);
|
3236
|
+
state->is_parsing = false;
|
3237
|
+
}
|
3238
|
+
|
3239
|
+
state->last_token = TOKEN_CHARACTERS;
|
3240
|
+
goto fast_path;
|
3241
|
+
} else {
|
3242
|
+
return TOKEN_SECONDS;
|
3243
|
+
}
|
3244
|
+
}
|
3245
|
+
#line 3246 "scanner.c"
|
3246
|
+
yy369:
|
3247
|
+
yych = *++YYCURSOR;
|
3248
|
+
switch (yych) {
|
3249
|
+
case 'E':
|
3250
|
+
case 'e': goto yy424;
|
3251
|
+
default: goto yy35;
|
3252
|
+
}
|
3253
|
+
yy370:
|
3254
|
+
++YYCURSOR;
|
3255
|
+
switch ((yych = *YYCURSOR)) {
|
3256
|
+
case 'S':
|
3257
|
+
case 's': goto yy425;
|
3258
|
+
default: goto yy371;
|
3259
|
+
}
|
3260
|
+
yy371:
|
3261
|
+
#line 152 "scanner.re"
|
3262
|
+
{ return TOKEN_SEVENTH; }
|
3263
|
+
#line 3264 "scanner.c"
|
3264
|
+
yy372:
|
3265
|
+
yych = *++YYCURSOR;
|
3266
|
+
switch (yych) {
|
3267
|
+
case 'E':
|
3268
|
+
case 'e': goto yy427;
|
3269
|
+
default: goto yy35;
|
3270
|
+
}
|
3271
|
+
yy373:
|
3272
|
+
++YYCURSOR;
|
3273
|
+
#line 110 "scanner.re"
|
3274
|
+
{ return TOKEN_SEVENTY; }
|
3275
|
+
#line 3276 "scanner.c"
|
3276
|
+
yy375:
|
3277
|
+
yyaccept = 24;
|
3278
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3279
|
+
switch (yych) {
|
3280
|
+
case 'T':
|
3281
|
+
case 't': goto yy428;
|
3282
|
+
default: goto yy376;
|
3283
|
+
}
|
3284
|
+
yy376:
|
3285
|
+
#line 98 "scanner.re"
|
3286
|
+
{ return TOKEN_SIXTEEN; }
|
3287
|
+
#line 3288 "scanner.c"
|
3288
|
+
yy377:
|
3289
|
+
yych = *++YYCURSOR;
|
3290
|
+
switch (yych) {
|
3291
|
+
case 'H':
|
3292
|
+
case 'h': goto yy429;
|
3293
|
+
default: goto yy35;
|
3294
|
+
}
|
3295
|
+
yy378:
|
3296
|
+
yych = *++YYCURSOR;
|
3297
|
+
switch (yych) {
|
3298
|
+
case 'N':
|
3299
|
+
case 'n': goto yy431;
|
3300
|
+
default: goto yy35;
|
3301
|
+
}
|
3302
|
+
yy379:
|
3303
|
+
yych = *++YYCURSOR;
|
3304
|
+
switch (yych) {
|
3305
|
+
case 'T':
|
3306
|
+
case 't': goto yy433;
|
3307
|
+
default: goto yy35;
|
3308
|
+
}
|
3309
|
+
yy380:
|
3310
|
+
yych = *++YYCURSOR;
|
3311
|
+
switch (yych) {
|
3312
|
+
case 'D':
|
3313
|
+
case 'd': goto yy434;
|
3314
|
+
default: goto yy35;
|
3315
|
+
}
|
3316
|
+
yy381:
|
3317
|
+
yych = *++YYCURSOR;
|
3318
|
+
switch (yych) {
|
3319
|
+
case 'N':
|
3320
|
+
case 'n': goto yy436;
|
3321
|
+
default: goto yy35;
|
3322
|
+
}
|
3323
|
+
yy382:
|
3324
|
+
++YYCURSOR;
|
3325
|
+
switch ((yych = *YYCURSOR)) {
|
3326
|
+
case 'S':
|
3327
|
+
case 's': goto yy438;
|
3328
|
+
default: goto yy383;
|
3329
|
+
}
|
3330
|
+
yy383:
|
3331
|
+
#line 159 "scanner.re"
|
3332
|
+
{ return TOKEN_TWELFTH; }
|
3333
|
+
#line 3334 "scanner.c"
|
3334
|
+
yy384:
|
3335
|
+
yych = *++YYCURSOR;
|
3336
|
+
switch (yych) {
|
3337
|
+
case 'T':
|
3338
|
+
case 't': goto yy440;
|
3339
|
+
default: goto yy35;
|
3340
|
+
}
|
3341
|
+
yy385:
|
3342
|
+
yych = *++YYCURSOR;
|
3343
|
+
switch (yych) {
|
3344
|
+
case '.': goto yy441;
|
3345
|
+
default: goto yy35;
|
3346
|
+
}
|
3347
|
+
yy386:
|
3348
|
+
++YYCURSOR;
|
3349
|
+
yych = *YYCURSOR;
|
3350
|
+
switch (yych) {
|
3351
|
+
case '0':
|
3352
|
+
case '1':
|
3353
|
+
case '2':
|
3354
|
+
case '3':
|
3355
|
+
case '4':
|
3356
|
+
case '5':
|
3357
|
+
case '6':
|
3358
|
+
case '7':
|
3359
|
+
case '8':
|
3360
|
+
case '9': goto yy442;
|
3361
|
+
default: goto yy35;
|
3362
|
+
}
|
3363
|
+
yy387:
|
3364
|
+
yyaccept = 25;
|
3365
|
+
YYMARKER = ++YYCURSOR;
|
3366
|
+
yych = *YYCURSOR;
|
3367
|
+
switch (yych) {
|
3368
|
+
case '.': goto yy326;
|
3369
|
+
case '0':
|
3370
|
+
case '1':
|
3371
|
+
case '2':
|
3372
|
+
case '3':
|
3373
|
+
case '4':
|
3374
|
+
case '5':
|
3375
|
+
case '6':
|
3376
|
+
case '7':
|
3377
|
+
case '8':
|
3378
|
+
case '9': goto yy387;
|
3379
|
+
default: goto yy389;
|
3380
|
+
}
|
3381
|
+
yy389:
|
3382
|
+
#line 423 "scanner.re"
|
3383
|
+
{
|
3384
|
+
// create duplicate of string (to be modified inplace)
|
3385
|
+
size_t token_len = ss->cursor - ss->token;
|
3386
|
+
char* tmp = (char*)malloc(token_len + 1);
|
3387
|
+
strncpy(tmp, ss->token, token_len);
|
3388
|
+
tmp[token_len] = '\0';
|
3389
|
+
|
3390
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ',');
|
3391
|
+
|
3392
|
+
// turn string version of number into double
|
3393
|
+
sds string_value = sdsnewlen(tmp, len);
|
3394
|
+
free(tmp);
|
3395
|
+
|
3396
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
3397
|
+
sdsfree(string_value);
|
3398
|
+
|
3399
|
+
return TOKEN_DECIMAL;
|
3400
|
+
}
|
3401
|
+
#line 3402 "scanner.c"
|
3402
|
+
yy390:
|
3403
|
+
yyaccept = 26;
|
3404
|
+
YYMARKER = ++YYCURSOR;
|
3405
|
+
yych = *YYCURSOR;
|
3406
|
+
switch (yych) {
|
3407
|
+
case '0':
|
3408
|
+
case '1':
|
3409
|
+
case '2':
|
3410
|
+
case '3':
|
3411
|
+
case '4':
|
3412
|
+
case '5':
|
3413
|
+
case '6':
|
3414
|
+
case '7':
|
3415
|
+
case '8':
|
3416
|
+
case '9': goto yy390;
|
3417
|
+
case 0xC2: goto yy242;
|
3418
|
+
default: goto yy392;
|
3419
|
+
}
|
3420
|
+
yy392:
|
3421
|
+
#line 349 "scanner.re"
|
3422
|
+
{
|
3423
|
+
// create duplicate of string (to be modified inplace)
|
3424
|
+
size_t token_len = ss->cursor - ss->token;
|
3425
|
+
char* tmp = (char*)malloc(token_len + 1);
|
3426
|
+
strncpy(tmp, ss->token, token_len);
|
3427
|
+
tmp[token_len] = '\0';
|
3428
|
+
|
3429
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ',');
|
3430
|
+
len = replace_two_byte_char_inplace((unsigned char*)tmp, len, (unsigned char*)"·", '.');
|
3431
|
+
|
3432
|
+
// turn string version of number into double
|
3433
|
+
sds string_value = sdsnewlen(tmp, len);
|
3434
|
+
free(tmp);
|
3435
|
+
|
3436
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
3437
|
+
sdsfree(string_value);
|
3438
|
+
|
3439
|
+
return TOKEN_DECIMAL;
|
3440
|
+
}
|
3441
|
+
#line 3442 "scanner.c"
|
3442
|
+
yy393:
|
3443
|
+
++YYCURSOR;
|
3444
|
+
switch ((yych = *YYCURSOR)) {
|
3445
|
+
case '0':
|
3446
|
+
case '1':
|
3447
|
+
case '2':
|
3448
|
+
case '3':
|
3449
|
+
case '4':
|
3450
|
+
case '5':
|
3451
|
+
case '6':
|
3452
|
+
case '7':
|
3453
|
+
case '8':
|
3454
|
+
case '9': goto yy443;
|
3455
|
+
default: goto yy394;
|
3456
|
+
}
|
3457
|
+
yy394:
|
3458
|
+
#line 262 "scanner.re"
|
3459
|
+
{
|
3460
|
+
if (state->is_parsing) {
|
3461
|
+
if (state->last_token != TOKEN_SEPARATOR) {
|
3462
|
+
// number followed by character... e.g. "oneself"
|
3463
|
+
} else {
|
3464
|
+
// finish whatever we had and reset
|
3465
|
+
Parse(pParser, 0, *yylval, state);
|
3466
|
+
}
|
3467
|
+
|
3468
|
+
ParseReset(pParser);
|
3469
|
+
state->is_parsing = false;
|
3470
|
+
}
|
3471
|
+
|
3472
|
+
state->last_token = TOKEN_CHARACTERS;
|
3473
|
+
goto fast_path;
|
3474
|
+
}
|
3475
|
+
#line 3476 "scanner.c"
|
3476
|
+
yy395:
|
3477
|
+
++YYCURSOR;
|
3478
|
+
yych = *YYCURSOR;
|
3479
|
+
switch (yych) {
|
3480
|
+
case '0':
|
3481
|
+
case '1':
|
3482
|
+
case '2':
|
3483
|
+
case '3':
|
3484
|
+
case '4':
|
3485
|
+
case '5':
|
3486
|
+
case '6':
|
3487
|
+
case '7':
|
3488
|
+
case '8':
|
3489
|
+
case '9': goto yy241;
|
3490
|
+
default: goto yy35;
|
3491
|
+
}
|
3492
|
+
yy396:
|
3493
|
+
yych = *++YYCURSOR;
|
3494
|
+
switch (yych) {
|
3495
|
+
case 'N':
|
3496
|
+
case 'n': goto yy444;
|
3497
|
+
default: goto yy35;
|
3498
|
+
}
|
3499
|
+
yy397:
|
3500
|
+
yych = *++YYCURSOR;
|
3501
|
+
switch (yych) {
|
3502
|
+
case 'D':
|
3503
|
+
case 'd': goto yy446;
|
3504
|
+
default: goto yy35;
|
3505
|
+
}
|
3506
|
+
yy398:
|
3507
|
+
yych = *++YYCURSOR;
|
3508
|
+
switch (yych) {
|
3509
|
+
case 'N':
|
3510
|
+
case 'n': goto yy448;
|
3511
|
+
default: goto yy35;
|
3512
|
+
}
|
3513
|
+
yy399:
|
3514
|
+
yych = *++YYCURSOR;
|
3515
|
+
switch (yych) {
|
3516
|
+
case 'N':
|
3517
|
+
case 'n': goto yy450;
|
3518
|
+
default: goto yy35;
|
3519
|
+
}
|
3520
|
+
yy400:
|
3521
|
+
yych = *++YYCURSOR;
|
3522
|
+
switch (yych) {
|
3523
|
+
case 'O':
|
3524
|
+
case 'o': goto yy451;
|
3525
|
+
default: goto yy35;
|
3526
|
+
}
|
3527
|
+
yy401:
|
3528
|
+
yych = *++YYCURSOR;
|
3529
|
+
switch (yych) {
|
3530
|
+
case 'H':
|
3531
|
+
case 'h': goto yy452;
|
3532
|
+
default: goto yy35;
|
3533
|
+
}
|
3534
|
+
yy402:
|
3535
|
+
yyaccept = 27;
|
3536
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3537
|
+
switch (yych) {
|
3538
|
+
case 'T':
|
3539
|
+
case 't': goto yy454;
|
3540
|
+
default: goto yy403;
|
3541
|
+
}
|
3542
|
+
yy403:
|
3543
|
+
#line 100 "scanner.re"
|
3544
|
+
{ return TOKEN_EIGHTEEN; }
|
3545
|
+
#line 3546 "scanner.c"
|
3546
|
+
yy404:
|
3547
|
+
yych = *++YYCURSOR;
|
3548
|
+
switch (yych) {
|
3549
|
+
case 'H':
|
3550
|
+
case 'h': goto yy455;
|
3551
|
+
default: goto yy35;
|
3552
|
+
}
|
3553
|
+
yy405:
|
3554
|
+
++YYCURSOR;
|
3555
|
+
switch ((yych = *YYCURSOR)) {
|
3556
|
+
case 'S':
|
3557
|
+
case 's': goto yy457;
|
3558
|
+
default: goto yy406;
|
3559
|
+
}
|
3560
|
+
yy406:
|
3561
|
+
#line 158 "scanner.re"
|
3562
|
+
{ return TOKEN_ELEVENTH; }
|
3563
|
+
#line 3564 "scanner.c"
|
3564
|
+
yy407:
|
3565
|
+
yych = *++YYCURSOR;
|
3566
|
+
switch (yych) {
|
3567
|
+
case 'H':
|
3568
|
+
case 'h': goto yy459;
|
3569
|
+
default: goto yy35;
|
3570
|
+
}
|
3571
|
+
yy408:
|
3572
|
+
++YYCURSOR;
|
3573
|
+
switch ((yych = *YYCURSOR)) {
|
3574
|
+
case 'S':
|
3575
|
+
case 's': goto yy461;
|
3576
|
+
default: goto yy409;
|
3577
|
+
}
|
3578
|
+
yy409:
|
3579
|
+
#line 172 "scanner.re"
|
3580
|
+
{ return TOKEN_FIFTIETH; }
|
3581
|
+
#line 3582 "scanner.c"
|
3582
|
+
yy410:
|
3583
|
+
++YYCURSOR;
|
3584
|
+
#line 170 "scanner.re"
|
3585
|
+
{ return TOKEN_FOURTIETH; }
|
3586
|
+
#line 3587 "scanner.c"
|
3587
|
+
yy412:
|
3588
|
+
yyaccept = 28;
|
3589
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3590
|
+
switch (yych) {
|
3591
|
+
case 'T':
|
3592
|
+
case 't': goto yy463;
|
3593
|
+
default: goto yy413;
|
3594
|
+
}
|
3595
|
+
yy413:
|
3596
|
+
#line 96 "scanner.re"
|
3597
|
+
{ return TOKEN_FOURTEEN; }
|
3598
|
+
#line 3599 "scanner.c"
|
3599
|
+
yy414:
|
3600
|
+
yych = *++YYCURSOR;
|
3601
|
+
switch (yych) {
|
3602
|
+
case 'H':
|
3603
|
+
case 'h': goto yy464;
|
3604
|
+
default: goto yy35;
|
3605
|
+
}
|
3606
|
+
yy415:
|
3607
|
+
yych = *++YYCURSOR;
|
3608
|
+
switch (yych) {
|
3609
|
+
case 'H':
|
3610
|
+
case 'h': goto yy466;
|
3611
|
+
default: goto yy35;
|
3612
|
+
}
|
3613
|
+
yy416:
|
3614
|
+
yych = *++YYCURSOR;
|
3615
|
+
switch (yych) {
|
3616
|
+
case 'H':
|
3617
|
+
case 'h': goto yy468;
|
3618
|
+
default: goto yy35;
|
3619
|
+
}
|
3620
|
+
yy417:
|
3621
|
+
++YYCURSOR;
|
3622
|
+
#line 80 "scanner.re"
|
3623
|
+
{ return TOKEN_NEGATIVE; }
|
3624
|
+
#line 3625 "scanner.c"
|
3625
|
+
yy419:
|
3626
|
+
yyaccept = 29;
|
3627
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3628
|
+
switch (yych) {
|
3629
|
+
case 'T':
|
3630
|
+
case 't': goto yy470;
|
3631
|
+
default: goto yy420;
|
3632
|
+
}
|
3633
|
+
yy420:
|
3634
|
+
#line 101 "scanner.re"
|
3635
|
+
{ return TOKEN_NINETEEN; }
|
3636
|
+
#line 3637 "scanner.c"
|
3637
|
+
yy421:
|
3638
|
+
yych = *++YYCURSOR;
|
3639
|
+
switch (yych) {
|
3640
|
+
case 'H':
|
3641
|
+
case 'h': goto yy471;
|
3642
|
+
default: goto yy35;
|
3643
|
+
}
|
3644
|
+
yy422:
|
3645
|
+
++YYCURSOR;
|
3646
|
+
#line 250 "scanner.re"
|
3647
|
+
{ return TOKEN_QUARTERS; }
|
3648
|
+
#line 3649 "scanner.c"
|
3649
|
+
yy424:
|
3650
|
+
yych = *++YYCURSOR;
|
3651
|
+
switch (yych) {
|
3652
|
+
case 'N':
|
3653
|
+
case 'n': goto yy473;
|
3654
|
+
default: goto yy35;
|
3655
|
+
}
|
3656
|
+
yy425:
|
3657
|
+
++YYCURSOR;
|
3658
|
+
#line 219 "scanner.re"
|
3659
|
+
{ return TOKEN_SEVENTHS; }
|
3660
|
+
#line 3661 "scanner.c"
|
3661
|
+
yy427:
|
3662
|
+
yych = *++YYCURSOR;
|
3663
|
+
switch (yych) {
|
3664
|
+
case 'T':
|
3665
|
+
case 't': goto yy475;
|
3666
|
+
default: goto yy35;
|
3667
|
+
}
|
3668
|
+
yy428:
|
3669
|
+
yych = *++YYCURSOR;
|
3670
|
+
switch (yych) {
|
3671
|
+
case 'H':
|
3672
|
+
case 'h': goto yy476;
|
3673
|
+
default: goto yy35;
|
3674
|
+
}
|
3675
|
+
yy429:
|
3676
|
+
++YYCURSOR;
|
3677
|
+
switch ((yych = *YYCURSOR)) {
|
3678
|
+
case 'S':
|
3679
|
+
case 's': goto yy478;
|
3680
|
+
default: goto yy430;
|
3681
|
+
}
|
3682
|
+
yy430:
|
3683
|
+
#line 173 "scanner.re"
|
3684
|
+
{ return TOKEN_SIXTIETH; }
|
3685
|
+
#line 3686 "scanner.c"
|
3686
|
+
yy431:
|
3687
|
+
yyaccept = 30;
|
3688
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3689
|
+
switch (yych) {
|
3690
|
+
case 'T':
|
3691
|
+
case 't': goto yy480;
|
3692
|
+
default: goto yy432;
|
3693
|
+
}
|
3694
|
+
yy432:
|
3695
|
+
#line 95 "scanner.re"
|
3696
|
+
{ return TOKEN_THIRTEEN; }
|
3697
|
+
#line 3698 "scanner.c"
|
3698
|
+
yy433:
|
3699
|
+
yych = *++YYCURSOR;
|
3700
|
+
switch (yych) {
|
3701
|
+
case 'H':
|
3702
|
+
case 'h': goto yy481;
|
3703
|
+
default: goto yy35;
|
3704
|
+
}
|
3705
|
+
yy434:
|
3706
|
+
yyaccept = 31;
|
3707
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3708
|
+
switch (yych) {
|
3709
|
+
case 'T':
|
3710
|
+
case 't': goto yy483;
|
3711
|
+
default: goto yy435;
|
3712
|
+
}
|
3713
|
+
yy435:
|
3714
|
+
#line 117 "scanner.re"
|
3715
|
+
{ return TOKEN_THOUSAND; }
|
3716
|
+
#line 3717 "scanner.c"
|
3717
|
+
yy436:
|
3718
|
+
yyaccept = 32;
|
3719
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3720
|
+
switch (yych) {
|
3721
|
+
case 'T':
|
3722
|
+
case 't': goto yy484;
|
3723
|
+
default: goto yy437;
|
3724
|
+
}
|
3725
|
+
yy437:
|
3726
|
+
#line 123 "scanner.re"
|
3727
|
+
{ return TOKEN_TRILLION; }
|
3728
|
+
#line 3729 "scanner.c"
|
3729
|
+
yy438:
|
3730
|
+
++YYCURSOR;
|
3731
|
+
#line 226 "scanner.re"
|
3732
|
+
{ return TOKEN_TWELFTHS; }
|
3733
|
+
#line 3734 "scanner.c"
|
3734
|
+
yy440:
|
3735
|
+
yych = *++YYCURSOR;
|
3736
|
+
switch (yych) {
|
3737
|
+
case 'H':
|
3738
|
+
case 'h': goto yy485;
|
3739
|
+
default: goto yy35;
|
3740
|
+
}
|
3741
|
+
yy441:
|
3742
|
+
++YYCURSOR;
|
3743
|
+
yych = *YYCURSOR;
|
3744
|
+
switch (yych) {
|
3745
|
+
case '0':
|
3746
|
+
case '1':
|
3747
|
+
case '2':
|
3748
|
+
case '3':
|
3749
|
+
case '4':
|
3750
|
+
case '5':
|
3751
|
+
case '6':
|
3752
|
+
case '7':
|
3753
|
+
case '8':
|
3754
|
+
case '9': goto yy487;
|
3755
|
+
default: goto yy35;
|
3756
|
+
}
|
3757
|
+
yy442:
|
3758
|
+
yyaccept = 12;
|
3759
|
+
YYMARKER = ++YYCURSOR;
|
3760
|
+
yych = *YYCURSOR;
|
3761
|
+
switch (yych) {
|
3762
|
+
case ',': goto yy239;
|
3763
|
+
case '.': goto yy240;
|
3764
|
+
case 0xC2: goto yy242;
|
3765
|
+
default: goto yy171;
|
3766
|
+
}
|
3767
|
+
yy443:
|
3768
|
+
yych = *++YYCURSOR;
|
3769
|
+
switch (yych) {
|
3770
|
+
case '0':
|
3771
|
+
case '1':
|
3772
|
+
case '2':
|
3773
|
+
case '3':
|
3774
|
+
case '4':
|
3775
|
+
case '5':
|
3776
|
+
case '6':
|
3777
|
+
case '7':
|
3778
|
+
case '8':
|
3779
|
+
case '9': goto yy490;
|
3780
|
+
default: goto yy394;
|
3781
|
+
}
|
3782
|
+
yy444:
|
3783
|
+
yyaccept = 33;
|
3784
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3785
|
+
switch (yych) {
|
3786
|
+
case 'T':
|
3787
|
+
case 't': goto yy491;
|
3788
|
+
default: goto yy445;
|
3789
|
+
}
|
3790
|
+
yy445:
|
3791
|
+
#line 120 "scanner.re"
|
3792
|
+
{ return TOKEN_BILLION; }
|
3793
|
+
#line 3794 "scanner.c"
|
3794
|
+
yy446:
|
3795
|
+
yyaccept = 34;
|
3796
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3797
|
+
switch (yych) {
|
3798
|
+
case 'T':
|
3799
|
+
case 't': goto yy492;
|
3800
|
+
default: goto yy447;
|
3801
|
+
}
|
3802
|
+
yy447:
|
3803
|
+
#line 114 "scanner.re"
|
3804
|
+
{ return TOKEN_HUNDRED; }
|
3805
|
+
#line 3806 "scanner.c"
|
3806
|
+
yy448:
|
3807
|
+
yyaccept = 35;
|
3808
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3809
|
+
switch (yych) {
|
3810
|
+
case 'T':
|
3811
|
+
case 't': goto yy493;
|
3812
|
+
default: goto yy449;
|
3813
|
+
}
|
3814
|
+
yy449:
|
3815
|
+
#line 118 "scanner.re"
|
3816
|
+
{ return TOKEN_MILLION; }
|
3817
|
+
#line 3818 "scanner.c"
|
3818
|
+
yy450:
|
3819
|
+
yych = *++YYCURSOR;
|
3820
|
+
switch (yych) {
|
3821
|
+
case 'D':
|
3822
|
+
case 'd': goto yy494;
|
3823
|
+
default: goto yy35;
|
3824
|
+
}
|
3825
|
+
yy451:
|
3826
|
+
yych = *++YYCURSOR;
|
3827
|
+
switch (yych) {
|
3828
|
+
case 'N':
|
3829
|
+
case 'n': goto yy496;
|
3830
|
+
default: goto yy35;
|
3831
|
+
}
|
3832
|
+
yy452:
|
3833
|
+
++YYCURSOR;
|
3834
|
+
switch ((yych = *YYCURSOR)) {
|
3835
|
+
case 'S':
|
3836
|
+
case 's': goto yy498;
|
3837
|
+
default: goto yy453;
|
3838
|
+
}
|
3839
|
+
yy453:
|
3840
|
+
#line 185 "scanner.re"
|
3841
|
+
{ return TOKEN_BILLIONTH; }
|
3842
|
+
#line 3843 "scanner.c"
|
3843
|
+
yy454:
|
3844
|
+
yych = *++YYCURSOR;
|
3845
|
+
switch (yych) {
|
3846
|
+
case 'H':
|
3847
|
+
case 'h': goto yy500;
|
3848
|
+
default: goto yy35;
|
3849
|
+
}
|
3850
|
+
yy455:
|
3851
|
+
++YYCURSOR;
|
3852
|
+
switch ((yych = *YYCURSOR)) {
|
3853
|
+
case 'S':
|
3854
|
+
case 's': goto yy502;
|
3855
|
+
default: goto yy456;
|
3856
|
+
}
|
3857
|
+
yy456:
|
3858
|
+
#line 175 "scanner.re"
|
3859
|
+
{ return TOKEN_EIGHTIETH; }
|
3860
|
+
#line 3861 "scanner.c"
|
3861
|
+
yy457:
|
3862
|
+
++YYCURSOR;
|
3863
|
+
#line 225 "scanner.re"
|
3864
|
+
{ return TOKEN_ELEVENTHS; }
|
3865
|
+
#line 3866 "scanner.c"
|
3866
|
+
yy459:
|
3867
|
+
++YYCURSOR;
|
3868
|
+
switch ((yych = *YYCURSOR)) {
|
3869
|
+
case 'S':
|
3870
|
+
case 's': goto yy504;
|
3871
|
+
default: goto yy460;
|
3872
|
+
}
|
3873
|
+
yy460:
|
3874
|
+
#line 162 "scanner.re"
|
3875
|
+
{ return TOKEN_FIFTEENTH; }
|
3876
|
+
#line 3877 "scanner.c"
|
3877
|
+
yy461:
|
3878
|
+
++YYCURSOR;
|
3879
|
+
#line 238 "scanner.re"
|
3880
|
+
{ return TOKEN_FIFTIETHS; }
|
3881
|
+
#line 3882 "scanner.c"
|
3882
|
+
yy463:
|
3883
|
+
yych = *++YYCURSOR;
|
3884
|
+
switch (yych) {
|
3885
|
+
case 'H':
|
3886
|
+
case 'h': goto yy506;
|
3887
|
+
default: goto yy35;
|
3888
|
+
}
|
3889
|
+
yy464:
|
3890
|
+
++YYCURSOR;
|
3891
|
+
switch ((yych = *YYCURSOR)) {
|
3892
|
+
case 'S':
|
3893
|
+
case 's': goto yy508;
|
3894
|
+
default: goto yy465;
|
3895
|
+
}
|
3896
|
+
yy465:
|
3897
|
+
#line 171 "scanner.re"
|
3898
|
+
{ return TOKEN_FOURTIETH; }
|
3899
|
+
#line 3900 "scanner.c"
|
3900
|
+
yy466:
|
3901
|
+
++YYCURSOR;
|
3902
|
+
switch ((yych = *YYCURSOR)) {
|
3903
|
+
case 'S':
|
3904
|
+
case 's': goto yy510;
|
3905
|
+
default: goto yy467;
|
3906
|
+
}
|
3907
|
+
yy467:
|
3908
|
+
#line 179 "scanner.re"
|
3909
|
+
{ return TOKEN_HUNDREDTH; }
|
3910
|
+
#line 3911 "scanner.c"
|
3911
|
+
yy468:
|
3912
|
+
++YYCURSOR;
|
3913
|
+
switch ((yych = *YYCURSOR)) {
|
3914
|
+
case 'S':
|
3915
|
+
case 's': goto yy512;
|
3916
|
+
default: goto yy469;
|
3917
|
+
}
|
3918
|
+
yy469:
|
3919
|
+
#line 183 "scanner.re"
|
3920
|
+
{ return TOKEN_MILLIONTH; }
|
3921
|
+
#line 3922 "scanner.c"
|
3922
|
+
yy470:
|
3923
|
+
yych = *++YYCURSOR;
|
3924
|
+
switch (yych) {
|
3925
|
+
case 'H':
|
3926
|
+
case 'h': goto yy514;
|
3927
|
+
default: goto yy35;
|
3928
|
+
}
|
3929
|
+
yy471:
|
3930
|
+
++YYCURSOR;
|
3931
|
+
switch ((yych = *YYCURSOR)) {
|
3932
|
+
case 'S':
|
3933
|
+
case 's': goto yy516;
|
3934
|
+
default: goto yy472;
|
3935
|
+
}
|
3936
|
+
yy472:
|
3937
|
+
#line 176 "scanner.re"
|
3938
|
+
{ return TOKEN_NINETIETH; }
|
3939
|
+
#line 3940 "scanner.c"
|
3940
|
+
yy473:
|
3941
|
+
yyaccept = 36;
|
3942
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
3943
|
+
switch (yych) {
|
3944
|
+
case 'T':
|
3945
|
+
case 't': goto yy518;
|
3946
|
+
default: goto yy474;
|
3947
|
+
}
|
3948
|
+
yy474:
|
3949
|
+
#line 99 "scanner.re"
|
3950
|
+
{ return TOKEN_SEVENTEEN; }
|
3951
|
+
#line 3952 "scanner.c"
|
3952
|
+
yy475:
|
3953
|
+
yych = *++YYCURSOR;
|
3954
|
+
switch (yych) {
|
3955
|
+
case 'H':
|
3956
|
+
case 'h': goto yy519;
|
3957
|
+
default: goto yy35;
|
3958
|
+
}
|
3959
|
+
yy476:
|
3960
|
+
++YYCURSOR;
|
3961
|
+
switch ((yych = *YYCURSOR)) {
|
3962
|
+
case 'S':
|
3963
|
+
case 's': goto yy521;
|
3964
|
+
default: goto yy477;
|
3965
|
+
}
|
3966
|
+
yy477:
|
3967
|
+
#line 163 "scanner.re"
|
3968
|
+
{ return TOKEN_SIXTEENTH; }
|
3969
|
+
#line 3970 "scanner.c"
|
3970
|
+
yy478:
|
3971
|
+
++YYCURSOR;
|
3972
|
+
#line 239 "scanner.re"
|
3973
|
+
{ return TOKEN_SIXTIETHS; }
|
3974
|
+
#line 3975 "scanner.c"
|
3975
|
+
yy480:
|
3976
|
+
yych = *++YYCURSOR;
|
3977
|
+
switch (yych) {
|
3978
|
+
case 'H':
|
3979
|
+
case 'h': goto yy523;
|
3980
|
+
default: goto yy35;
|
3981
|
+
}
|
3982
|
+
yy481:
|
3983
|
+
++YYCURSOR;
|
3984
|
+
switch ((yych = *YYCURSOR)) {
|
3985
|
+
case 'S':
|
3986
|
+
case 's': goto yy525;
|
3987
|
+
default: goto yy482;
|
3988
|
+
}
|
3989
|
+
yy482:
|
3990
|
+
#line 169 "scanner.re"
|
3991
|
+
{ return TOKEN_THIRTIETH; }
|
3992
|
+
#line 3993 "scanner.c"
|
3993
|
+
yy483:
|
3994
|
+
yych = *++YYCURSOR;
|
3995
|
+
switch (yych) {
|
3996
|
+
case 'H':
|
3997
|
+
case 'h': goto yy527;
|
3998
|
+
default: goto yy35;
|
3999
|
+
}
|
4000
|
+
yy484:
|
4001
|
+
yych = *++YYCURSOR;
|
4002
|
+
switch (yych) {
|
4003
|
+
case 'H':
|
4004
|
+
case 'h': goto yy529;
|
4005
|
+
default: goto yy35;
|
4006
|
+
}
|
4007
|
+
yy485:
|
4008
|
+
++YYCURSOR;
|
4009
|
+
switch ((yych = *YYCURSOR)) {
|
4010
|
+
case 'S':
|
4011
|
+
case 's': goto yy531;
|
4012
|
+
default: goto yy486;
|
4013
|
+
}
|
4014
|
+
yy486:
|
4015
|
+
#line 168 "scanner.re"
|
4016
|
+
{ return TOKEN_TWENTIETH; }
|
4017
|
+
#line 4018 "scanner.c"
|
4018
|
+
yy487:
|
4019
|
+
yyaccept = 37;
|
4020
|
+
YYMARKER = ++YYCURSOR;
|
4021
|
+
yych = *YYCURSOR;
|
4022
|
+
switch (yych) {
|
4023
|
+
case '.': goto yy441;
|
4024
|
+
case '0':
|
4025
|
+
case '1':
|
4026
|
+
case '2':
|
4027
|
+
case '3':
|
4028
|
+
case '4':
|
4029
|
+
case '5':
|
4030
|
+
case '6':
|
4031
|
+
case '7':
|
4032
|
+
case '8':
|
4033
|
+
case '9': goto yy487;
|
4034
|
+
default: goto yy489;
|
4035
|
+
}
|
4036
|
+
yy489:
|
4037
|
+
#line 387 "scanner.re"
|
4038
|
+
{
|
4039
|
+
// create duplicate of string (to be modified inplace)
|
4040
|
+
size_t token_len = ss->cursor - ss->token;
|
4041
|
+
char* tmp = (char*)malloc(token_len + 1);
|
4042
|
+
strncpy(tmp, ss->token, token_len);
|
4043
|
+
tmp[token_len] = '\0';
|
4044
|
+
|
4045
|
+
size_t len = remove_char_inplace(tmp, ss->cursor - ss->token, ',');
|
4046
|
+
|
4047
|
+
// turn string version of number into double
|
4048
|
+
sds string_value = sdsnewlen(tmp, len);
|
4049
|
+
free(tmp);
|
4050
|
+
|
4051
|
+
sscanf(string_value, "%lf", &(*yylval).dbl);
|
4052
|
+
sdsfree(string_value);
|
4053
|
+
|
4054
|
+
return TOKEN_DECIMAL;
|
4055
|
+
}
|
4056
|
+
#line 4057 "scanner.c"
|
4057
|
+
yy490:
|
4058
|
+
yych = *++YYCURSOR;
|
4059
|
+
goto yy394;
|
4060
|
+
yy491:
|
4061
|
+
yych = *++YYCURSOR;
|
4062
|
+
switch (yych) {
|
4063
|
+
case 'H':
|
4064
|
+
case 'h': goto yy533;
|
4065
|
+
default: goto yy35;
|
4066
|
+
}
|
4067
|
+
yy492:
|
4068
|
+
yych = *++YYCURSOR;
|
4069
|
+
switch (yych) {
|
4070
|
+
case 'H':
|
4071
|
+
case 'h': goto yy535;
|
4072
|
+
default: goto yy35;
|
4073
|
+
}
|
4074
|
+
yy493:
|
4075
|
+
yych = *++YYCURSOR;
|
4076
|
+
switch (yych) {
|
4077
|
+
case 'H':
|
4078
|
+
case 'h': goto yy537;
|
4079
|
+
default: goto yy35;
|
4080
|
+
}
|
4081
|
+
yy494:
|
4082
|
+
yyaccept = 38;
|
4083
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
4084
|
+
switch (yych) {
|
4085
|
+
case 'T':
|
4086
|
+
case 't': goto yy539;
|
4087
|
+
default: goto yy495;
|
4088
|
+
}
|
4089
|
+
yy495:
|
4090
|
+
#line 116 "scanner.re"
|
4091
|
+
{ return TOKEN_THOUSAND; }
|
4092
|
+
#line 4093 "scanner.c"
|
4093
|
+
yy496:
|
4094
|
+
yyaccept = 39;
|
4095
|
+
yych = *(YYMARKER = ++YYCURSOR);
|
4096
|
+
switch (yych) {
|
4097
|
+
case 'T':
|
4098
|
+
case 't': goto yy540;
|
4099
|
+
default: goto yy497;
|
4100
|
+
}
|
4101
|
+
yy497:
|
4102
|
+
#line 122 "scanner.re"
|
4103
|
+
{ return TOKEN_TRILLION; }
|
4104
|
+
#line 4105 "scanner.c"
|
4105
|
+
yy498:
|
4106
|
+
++YYCURSOR;
|
4107
|
+
#line 247 "scanner.re"
|
4108
|
+
{ return TOKEN_BILLIONTHS; }
|
4109
|
+
#line 4110 "scanner.c"
|
4110
|
+
yy500:
|
4111
|
+
++YYCURSOR;
|
4112
|
+
switch ((yych = *YYCURSOR)) {
|
4113
|
+
case 'S':
|
4114
|
+
case 's': goto yy541;
|
4115
|
+
default: goto yy501;
|
4116
|
+
}
|
4117
|
+
yy501:
|
4118
|
+
#line 165 "scanner.re"
|
4119
|
+
{ return TOKEN_EIGHTEENTH; }
|
4120
|
+
#line 4121 "scanner.c"
|
4121
|
+
yy502:
|
4122
|
+
++YYCURSOR;
|
4123
|
+
#line 241 "scanner.re"
|
4124
|
+
{ return TOKEN_EIGHTIETHS; }
|
4125
|
+
#line 4126 "scanner.c"
|
4126
|
+
yy504:
|
4127
|
+
++YYCURSOR;
|
4128
|
+
#line 229 "scanner.re"
|
4129
|
+
{ return TOKEN_FIFTEENTHS; }
|
4130
|
+
#line 4131 "scanner.c"
|
4131
|
+
yy506:
|
4132
|
+
++YYCURSOR;
|
4133
|
+
switch ((yych = *YYCURSOR)) {
|
4134
|
+
case 'S':
|
4135
|
+
case 's': goto yy543;
|
4136
|
+
default: goto yy507;
|
4137
|
+
}
|
4138
|
+
yy507:
|
4139
|
+
#line 161 "scanner.re"
|
4140
|
+
{ return TOKEN_FOURTEENTH; }
|
4141
|
+
#line 4142 "scanner.c"
|
4142
|
+
yy508:
|
4143
|
+
++YYCURSOR;
|
4144
|
+
#line 237 "scanner.re"
|
4145
|
+
{ return TOKEN_FOURTIETHS; }
|
4146
|
+
#line 4147 "scanner.c"
|
4147
|
+
yy510:
|
4148
|
+
++YYCURSOR;
|
4149
|
+
#line 244 "scanner.re"
|
4150
|
+
{ return TOKEN_HUNDREDTHS; }
|
4151
|
+
#line 4152 "scanner.c"
|
4152
|
+
yy512:
|
4153
|
+
++YYCURSOR;
|
4154
|
+
#line 246 "scanner.re"
|
4155
|
+
{ return TOKEN_MILLIONTHS; }
|
4156
|
+
#line 4157 "scanner.c"
|
4157
|
+
yy514:
|
4158
|
+
++YYCURSOR;
|
4159
|
+
switch ((yych = *YYCURSOR)) {
|
4160
|
+
case 'S':
|
4161
|
+
case 's': goto yy545;
|
4162
|
+
default: goto yy515;
|
4163
|
+
}
|
4164
|
+
yy515:
|
4165
|
+
#line 166 "scanner.re"
|
4166
|
+
{ return TOKEN_NINETEENTH; }
|
4167
|
+
#line 4168 "scanner.c"
|
4168
|
+
yy516:
|
4169
|
+
++YYCURSOR;
|
4170
|
+
#line 242 "scanner.re"
|
4171
|
+
{ return TOKEN_NINETIETHS; }
|
4172
|
+
#line 4173 "scanner.c"
|
4173
|
+
yy518:
|
4174
|
+
yych = *++YYCURSOR;
|
4175
|
+
switch (yych) {
|
4176
|
+
case 'H':
|
4177
|
+
case 'h': goto yy547;
|
4178
|
+
default: goto yy35;
|
4179
|
+
}
|
4180
|
+
yy519:
|
4181
|
+
++YYCURSOR;
|
4182
|
+
switch ((yych = *YYCURSOR)) {
|
4183
|
+
case 'S':
|
4184
|
+
case 's': goto yy549;
|
4185
|
+
default: goto yy520;
|
4186
|
+
}
|
4187
|
+
yy520:
|
4188
|
+
#line 174 "scanner.re"
|
4189
|
+
{ return TOKEN_SEVENTIETH; }
|
4190
|
+
#line 4191 "scanner.c"
|
4191
|
+
yy521:
|
4192
|
+
++YYCURSOR;
|
4193
|
+
#line 230 "scanner.re"
|
4194
|
+
{ return TOKEN_SIXTEENTHS; }
|
4195
|
+
#line 4196 "scanner.c"
|
4196
|
+
yy523:
|
4197
|
+
++YYCURSOR;
|
4198
|
+
switch ((yych = *YYCURSOR)) {
|
4199
|
+
case 'S':
|
4200
|
+
case 's': goto yy551;
|
4201
|
+
default: goto yy524;
|
4202
|
+
}
|
4203
|
+
yy524:
|
4204
|
+
#line 160 "scanner.re"
|
4205
|
+
{ return TOKEN_THIRTEENTH; }
|
4206
|
+
#line 4207 "scanner.c"
|
4207
|
+
yy525:
|
4208
|
+
++YYCURSOR;
|
4209
|
+
#line 236 "scanner.re"
|
4210
|
+
{ return TOKEN_THIRTIETHS; }
|
4211
|
+
#line 4212 "scanner.c"
|
4212
|
+
yy527:
|
4213
|
+
++YYCURSOR;
|
4214
|
+
switch ((yych = *YYCURSOR)) {
|
4215
|
+
case 'S':
|
4216
|
+
case 's': goto yy553;
|
4217
|
+
default: goto yy528;
|
4218
|
+
}
|
4219
|
+
yy528:
|
4220
|
+
#line 181 "scanner.re"
|
4221
|
+
{ return TOKEN_THOUSANDTH; }
|
4222
|
+
#line 4223 "scanner.c"
|
4223
|
+
yy529:
|
4224
|
+
++YYCURSOR;
|
4225
|
+
switch ((yych = *YYCURSOR)) {
|
4226
|
+
case 'S':
|
4227
|
+
case 's': goto yy555;
|
4228
|
+
default: goto yy530;
|
4229
|
+
}
|
4230
|
+
yy530:
|
4231
|
+
#line 187 "scanner.re"
|
4232
|
+
{ return TOKEN_TRILLIONTH; }
|
4233
|
+
#line 4234 "scanner.c"
|
4234
|
+
yy531:
|
4235
|
+
++YYCURSOR;
|
4236
|
+
#line 235 "scanner.re"
|
4237
|
+
{ return TOKEN_TWENTIETHS; }
|
4238
|
+
#line 4239 "scanner.c"
|
4239
|
+
yy533:
|
4240
|
+
++YYCURSOR;
|
4241
|
+
#line 184 "scanner.re"
|
4242
|
+
{ return TOKEN_BILLIONTH; }
|
4243
|
+
#line 4244 "scanner.c"
|
4244
|
+
yy535:
|
4245
|
+
++YYCURSOR;
|
4246
|
+
#line 178 "scanner.re"
|
4247
|
+
{ return TOKEN_HUNDREDTH; }
|
4248
|
+
#line 4249 "scanner.c"
|
4249
|
+
yy537:
|
4250
|
+
++YYCURSOR;
|
4251
|
+
#line 182 "scanner.re"
|
4252
|
+
{ return TOKEN_MILLIONTH; }
|
4253
|
+
#line 4254 "scanner.c"
|
4254
|
+
yy539:
|
4255
|
+
yych = *++YYCURSOR;
|
4256
|
+
switch (yych) {
|
4257
|
+
case 'H':
|
4258
|
+
case 'h': goto yy557;
|
4259
|
+
default: goto yy35;
|
4260
|
+
}
|
4261
|
+
yy540:
|
4262
|
+
yych = *++YYCURSOR;
|
4263
|
+
switch (yych) {
|
4264
|
+
case 'H':
|
4265
|
+
case 'h': goto yy559;
|
4266
|
+
default: goto yy35;
|
4267
|
+
}
|
4268
|
+
yy541:
|
4269
|
+
++YYCURSOR;
|
4270
|
+
#line 232 "scanner.re"
|
4271
|
+
{ return TOKEN_EIGHTEENTHS; }
|
4272
|
+
#line 4273 "scanner.c"
|
4273
|
+
yy543:
|
4274
|
+
++YYCURSOR;
|
4275
|
+
#line 228 "scanner.re"
|
4276
|
+
{ return TOKEN_FOURTEENTHS; }
|
4277
|
+
#line 4278 "scanner.c"
|
4278
|
+
yy545:
|
4279
|
+
++YYCURSOR;
|
4280
|
+
#line 233 "scanner.re"
|
4281
|
+
{ return TOKEN_NINETEENTHS; }
|
4282
|
+
#line 4283 "scanner.c"
|
4283
|
+
yy547:
|
4284
|
+
++YYCURSOR;
|
4285
|
+
switch ((yych = *YYCURSOR)) {
|
4286
|
+
case 'S':
|
4287
|
+
case 's': goto yy561;
|
4288
|
+
default: goto yy548;
|
4289
|
+
}
|
4290
|
+
yy548:
|
4291
|
+
#line 164 "scanner.re"
|
4292
|
+
{ return TOKEN_SEVENTEENTH; }
|
4293
|
+
#line 4294 "scanner.c"
|
4294
|
+
yy549:
|
4295
|
+
++YYCURSOR;
|
4296
|
+
#line 240 "scanner.re"
|
4297
|
+
{ return TOKEN_SEVENTIETHS; }
|
4298
|
+
#line 4299 "scanner.c"
|
4299
|
+
yy551:
|
4300
|
+
++YYCURSOR;
|
4301
|
+
#line 227 "scanner.re"
|
4302
|
+
{ return TOKEN_THIRTEENTHS; }
|
4303
|
+
#line 4304 "scanner.c"
|
4304
|
+
yy553:
|
4305
|
+
++YYCURSOR;
|
4306
|
+
#line 245 "scanner.re"
|
4307
|
+
{ return TOKEN_THOUSANDTHS; }
|
4308
|
+
#line 4309 "scanner.c"
|
4309
|
+
yy555:
|
4310
|
+
++YYCURSOR;
|
4311
|
+
#line 248 "scanner.re"
|
4312
|
+
{ return TOKEN_TRILLIONTHS; }
|
4313
|
+
#line 4314 "scanner.c"
|
4314
|
+
yy557:
|
4315
|
+
++YYCURSOR;
|
4316
|
+
#line 180 "scanner.re"
|
4317
|
+
{ return TOKEN_THOUSANDTH; }
|
4318
|
+
#line 4319 "scanner.c"
|
4319
|
+
yy559:
|
4320
|
+
++YYCURSOR;
|
4321
|
+
#line 186 "scanner.re"
|
4322
|
+
{ return TOKEN_TRILLIONTH; }
|
4323
|
+
#line 4324 "scanner.c"
|
4324
|
+
yy561:
|
4325
|
+
++YYCURSOR;
|
4326
|
+
#line 231 "scanner.re"
|
4327
|
+
{ return TOKEN_SEVENTEENTHS; }
|
4328
|
+
#line 4329 "scanner.c"
|
4329
|
+
}
|
4330
|
+
#line 503 "scanner.re"
|
4331
|
+
|
4332
|
+
}
|