SkSLLayoutLexer.cpp revision 8aa4dc9052a64d84cfd0a4330910057bd37b6bf7
1/*
2 * Copyright 2017 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7/*****************************************************************************************
8 ******************** This file was generated by sksllex. Do not edit. *******************
9 *****************************************************************************************/
10#include "SkSLLayoutLexer.h"
11
12namespace SkSL {
13
14static int16_t mappings[127] = {
15        0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
16        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
17        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
18        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
19        1,  1,  1,  1,  1,  1,  1,  3,  1,  4,  5,  6,  7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
20        17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1, 1, 1, 1,  1};
21static int16_t transitions[29][212] = {
22        {
23                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
24                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
26                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
28                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31        },
32        {
33                0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
36                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
37                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
38                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
39                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
41        },
42        {
43                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
44                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
45                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
46                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51        },
52        {
53                0, 2, 0,   0,  0,   0, 0,  0, 0,   0, 0,  0, 0, 14, 0,   0, 0,   0, 0, 0, 0,   22,
54                0, 0, 0,   26, 0,   0, 0,  0, 0,   0, 0,  0, 0, 0,  0,   0, 0,   0, 0, 0, 0,   0,
55                0, 0, 0,   0,  0,   0, 0,  0, 0,   0, 55, 0, 0, 0,  0,   0, 0,   0, 0, 0, 0,   66,
56                0, 0, 0,   0,  0,   0, 0,  0, 0,   0, 0,  0, 0, 0,  0,   0, 0,   0, 0, 0, 0,   88,
57                0, 0, 0,   0,  0,   0, 95, 0, 0,   0, 0,  0, 0, 0,  0,   0, 0,   0, 0, 0, 0,   0,
58                0, 0, 0,   0,  115, 0, 0,  0, 0,   0, 0,  0, 0, 0,  0,   0, 0,   0, 0, 0, 0,   0,
59                0, 0, 135, 0,  0,   0, 0,  0, 141, 0, 0,  0, 0, 0,  0,   0, 0,   0, 0, 0, 153, 0,
60                0, 0, 0,   0,  0,   0, 0,  0, 0,   0, 0,  0, 0, 0,  0,   0, 171, 0, 0, 0, 0,   0,
61                0, 0, 0,   0,  0,   0, 0,  0, 0,   0, 0,  0, 0, 0,  191, 0, 0,   0, 0, 0, 0,   198,
62                0, 0, 0,   0,  0,   0, 0,  0, 0,   0, 0,  0, 0, 0,
63        },
64        {
65                0,   2, 0,   0,   0,   0, 0, 0,  0,  0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
66                23,  0, 0,   0,   0,   0, 0, 30, 0,  0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
67                0,   0, 0,   0,   0,   0, 0, 0,  0,  0,   0,  56, 0, 0, 59, 0, 0, 0, 0,   0, 0, 0,
68                0,   0, 0,   0,   0,   0, 0, 0,  75, 0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
69                0,   0, 0,   0,   0,   0, 0, 96, 0,  0,   99, 0,  0, 0, 0,  0, 0, 0, 107, 0, 0, 0,
70                0,   0, 113, 0,   0,   0, 0, 0,  0,  0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
71                0,   0, 0,   0,   0,   0, 0, 0,  0,  0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
72                0,   0, 0,   0,   159, 0, 0, 0,  0,  0,   0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
73                177, 0, 0,   0,   0,   0, 0, 0,  0,  186, 0,  0,  0, 0, 0,  0, 0, 0, 0,   0, 0, 0,
74                199, 0, 0,   202, 0,   0, 0, 0,  0,  0,   0,  0,  0, 0,
75        },
76        {
77                0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
79                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
84                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85        },
86        {
87                0, 42, 0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 0,
88                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 0,
89                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   60, 0, 0,   0, 0, 0, 0,
90                0, 0,  0, 0, 0,   0, 0, 74,  0, 0, 0,   0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 0,
91                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   100, 0, 0, 103, 0,  0, 106, 0, 0, 0, 0,
92                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 121, 0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 0,
93                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 154,
94                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   0,  0, 172, 0, 0, 0, 0,
95                0, 0,  0, 0, 0,   0, 0, 0,   0, 0, 0,   0,   0, 0, 0,   0,  0, 0,   0, 0, 0, 0,
96                0, 0,  0, 0, 203, 0, 0, 206, 0, 0, 0,   0,   0, 0,
97        },
98        {
99                0,  2, 0, 0, 0, 6, 0,   0,   0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
100                0,  0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
101                49, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
102                0,  0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
103                97, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
104                0,  0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
105                0,  0, 0, 0, 0, 0, 151, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
106                0,  0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
107                0,  0, 0, 0, 0, 0, 0,   200, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
108        },
109        {
110                0,   2,   0,   0,   0, 0,  0,   0,   0, 0,   11, 0,   0, 0, 0, 0, 0,   0, 0,   0,
111                0,   0,   0,   0,   0, 0,  27,  0,   0, 0,   0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
112                0,   0,   0,   0,   0, 46, 0,   0,   0, 50,  0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
113                0,   0,   63,  0,   0, 0,  0,   0,   0, 70,  0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
114                0,   82,  0,   0,   0, 0,  87,  0,   0, 0,   0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
115                101, 0,   0,   0,   0, 0,  0,   0,   0, 0,   0,  0,   0, 0, 0, 0, 117, 0, 0,   0,
116                0,   122, 0,   0,   0, 0,  0,   128, 0, 0,   0,  0,   0, 0, 0, 0, 0,   0, 139, 0,
117                0,   0,   143, 0,   0, 0,  147, 0,   0, 0,   0,  152, 0, 0, 0, 0, 157, 0, 0,   0,
118                161, 0,   0,   0,   0, 0,  0,   0,   0, 0,   0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
119                181, 0,   0,   0,   0, 0,  0,   0,   0, 190, 0,  0,   0, 0, 0, 0, 0,   0, 0,   0,
120                0,   0,   0,   204, 0, 0,  0,   0,   0, 210, 0,  0,
121        },
122        {
123                0, 2, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
125                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
126                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
127                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
128                0, 0, 0, 0, 125, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144,
129                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
130                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
131                0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
132        },
133        {
134                0, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
135                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
136                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
137                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
138                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
139                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
140                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 160, 0, 0, 0, 0,   0, 0, 0, 0,
141                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 188, 0, 0, 0, 0,
142                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
143        },
144        {
145                0, 2,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
146                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
147                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
148                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
149                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
150                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
151                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
152                0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,
153                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 209, 0, 0, 0,
154        },
155        {
156                0,   47, 0, 4,  0, 0, 7, 0, 0,   0,   0,  0, 0, 0, 0,  0, 0, 0,   0,   0, 0,   0,
157                0,   0,  0, 0,  0, 0, 0, 0, 0,   32,  0,  0, 0, 0, 37, 0, 0, 40,  0,   0, 0,   0,
158                0,   0,  0, 0,  0, 0, 0, 0, 0,   0,   0,  0, 0, 0, 0,  0, 0, 0,   0,   0, 0,   0,
159                67,  0,  0, 0,  0, 0, 0, 0, 0,   0,   77, 0, 0, 0, 0,  0, 0, 0,   85,  0, 0,   0,
160                0,   0,  0, 92, 0, 0, 0, 0, 0,   0,   0,  0, 0, 0, 0,  0, 0, 0,   0,   0, 109, 0,
161                0,   0,  0, 0,  0, 0, 0, 0, 0,   120, 0,  0, 0, 0, 0,  0, 0, 0,   0,   0, 131, 0,
162                133, 0,  0, 0,  0, 0, 0, 0, 0,   0,   0,  0, 0, 0, 0,  0, 0, 150, 0,   0, 0,   0,
163                0,   0,  0, 0,  0, 0, 0, 0, 0,   164, 0,  0, 0, 0, 0,  0, 0, 0,   0,   0, 0,   0,
164                0,   0,  0, 0,  0, 0, 0, 0, 185, 0,   0,  0, 0, 0, 0,  0, 0, 0,   195, 0, 0,   0,
165                0,   0,  0, 0,  0, 0, 0, 0, 0,   0,   0,  0, 0, 0,
166        },
167        {
168                0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
169                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
170                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
171                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
172                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
173                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
175                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,
176        },
177        {
178                0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
179                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
180                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
181                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
182                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
183                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
184                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
185                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
186        },
187        {
188                0,  84, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0,   0, 24,
189                25, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
190                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
191                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
192                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
193                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   142, 0, 0,
194                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
195                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 189, 0,   0, 0,
196                0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,
197        },
198        {
199                0, 112, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
201                0, 0,   0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
202                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
203                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
204                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
206                0, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
207        },
208        {
209                0,   2,   0, 0,  5, 0, 0,   8, 0, 0, 0,   12, 0,   0,   0, 0, 0, 0, 0,  0,   0, 0,
210                0,   0,   0, 0,  0, 0, 0,   0, 0, 0, 0,   34, 0,   0,   0, 0, 0, 0, 41, 0,   0, 0,
211                0,   0,   0, 48, 0, 0, 0,   0, 0, 0, 0,   0,  0,   0,   0, 0, 0, 0, 0,  64,  0, 0,
212                0,   68,  0, 0,  0, 0, 0,   0, 0, 0, 0,   0,  79,  0,   0, 0, 0, 0, 0,  86,  0, 0,
213                0,   0,   0, 0,  0, 0, 0,   0, 0, 0, 0,   0,  0,   102, 0, 0, 0, 0, 0,  0,   0, 0,
214                111, 0,   0, 0,  0, 0, 0,   0, 0, 0, 0,   0,  0,   0,   0, 0, 0, 0, 0,  0,   0, 0,
215                0,   134, 0, 0,  0, 0, 0,   0, 0, 0, 0,   0,  0,   0,   0, 0, 0, 0, 0,  0,   0, 0,
216                0,   0,   0, 0,  0, 0, 0,   0, 0, 0, 165, 0,  0,   0,   0, 0, 0, 0, 0,  174, 0, 0,
217                0,   178, 0, 0,  0, 0, 0,   0, 0, 0, 187, 0,  0,   0,   0, 0, 0, 0, 0,  0,   0, 0,
218                0,   0,   0, 0,  0, 0, 205, 0, 0, 0, 0,   0,  211, 0,
219        },
220        {
221                0,   124, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 19,  0, 0, 0,
222                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 33, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
223                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
224                0,   0,   0, 0, 0, 0, 73, 0, 0,   0, 0,  78, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0,
225                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 110,
226                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
227                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
228                155, 0,   0, 0, 0, 0, 0,  0, 163, 0, 0,  0,  0, 0, 0, 0, 0, 0, 173, 0, 0, 0,
229                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
230                0,   0,   0, 0, 0, 0, 0,  0, 0,   0, 0,  0,  0, 0,
231        },
232        {
233                0,  162, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,  18,  0, 0, 0,  0, 0, 0,
234                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 45, 0, 0, 0,
235                52, 0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,
236                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 93, 0, 0, 0,
237                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,
238                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 138, 0, 0, 0,  0, 0, 0,
239                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,
240                0,  0,   0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,
241                0,  0,   0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0,
242        },
243        {
244                0,  2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
245                28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
249                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
250                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251                0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
252        },
253        {
254                0, 2, 0,  0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 20, 0, 0,
255                0, 0, 0,  0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 0,  0, 0,
256                0, 0, 0,  0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 0,  0, 0,
257                0, 0, 0,  0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 0,  0, 0,
258                0, 0, 91, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 0,  0, 0,
259                0, 0, 0,  0,   0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 130, 0,   0,   0,   0, 0,  0, 0,
260                0, 0, 0,  0,   0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0,   148, 149, 0,   0, 0,  0, 0,
261                0, 0, 0,  158, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0, 0,  0, 0,
262                0, 0, 0,  0,   0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0,   0,   0,   194, 0, 0,  0, 0,
263                0, 0, 0,  0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
264        },
265        {
266                0,  180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  15,  0,   0,   0, 0, 0, 0,   0,
267                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,  0,  0,   0,   0,   0, 0, 0, 0,   0,
268                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,   0,   0,   0, 0, 0, 0,   0,
269                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   80, 0,   0,   0,   0, 0, 0, 0,   94,
270                89, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,   0,   0,   0, 0, 0, 0,   0,
271                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0,  0,   0,   127, 0, 0, 0, 0,   0,
272                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,   0,   0,   0, 0, 0, 0,   0,
273                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0,  169, 0,   0,   0, 0, 0, 175, 0,
274                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  197, 192, 0,   0, 0, 0, 0,   0,
275                0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
276        },
277        {
278                0,  183, 0,  0, 0,   0,   0, 0,   0,   0,  0,  0, 0,   0,  0, 0,   0,  0,  0,   0,
279                21, 0,   0,  0, 0,   0,   0, 0,   0,   0,  31, 0, 0,   0,  0, 0,   0,  0,  39,  0,
280                0,  0,   43, 0, 0,   0,   0, 0,   0,   0,  0,  0, 0,   54, 0, 0,   57, 58, 0,   0,
281                0,  0,   0,  0, 65,  0,   0, 0,   0,   0,  0,  0, 0,   0,  0, 76,  0,  0,  0,   0,
282                0,  0,   0,  0, 0,   0,   0, 0,   0,   90, 0,  0, 0,   0,  0, 0,   0,  0,  0,   0,
283                0,  0,   0,  0, 0,   0,   0, 108, 0,   0,  0,  0, 0,   0,  0, 0,   0,  0,  119, 0,
284                0,  0,   0,  0, 0,   0,   0, 0,   129, 0,  0,  0, 0,   0,  0, 0,   0,  0,  0,   0,
285                0,  0,   0,  0, 145, 0,   0, 0,   0,   0,  0,  0, 0,   0,  0, 0,   0,  0,  0,   0,
286                0,  0,   0,  0, 0,   166, 0, 0,   0,   0,  0,  0, 0,   0,  0, 176, 0,  0,  179, 0,
287                0,  182, 0,  0, 0,   0,   0, 0,   0,   0,  0,  0, 193, 0,  0, 0,   0,  0,  0,   0,
288                0,  0,   0,  0, 0,   0,   0, 0,   0,   0,  0,  0,
289        },
290        {
291                0, 2, 0, 36, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,  0, 0, 0,   0, 0, 0, 0, 0,
292                0, 0, 0, 0,  29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0, 0, 0, 0, 0,
293                0, 0, 0, 0,  53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0, 0, 0, 0, 0,
294                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0, 0, 0, 0, 0,
295                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0, 0, 0, 0, 0,
296                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0,   0, 0, 0, 0, 0,
297                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 168, 0, 0, 0, 0, 0,
298                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0, 0, 0, 0, 0,
299                0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,   0,
300        },
301        {
302                0,  2, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
303                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
304                72, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
305                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
306                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
307                0,  0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
308                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
309                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
310                0,  0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0,
311        },
312        {
313                0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
314                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
315                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
316                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
317                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
318                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
319                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
320                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
321        },
322        {
323                0, 2, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
324                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 51, 0, 0, 0,
325                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
326                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
327                0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
328                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
329                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
330                0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,
331        },
332        {
333                0, 2, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
334                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 44, 0, 0, 0, 0,
335                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
336                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 83, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
337                0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
338                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
339                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
340                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0,
341                0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,  0, 0, 0, 207, 0, 0, 0, 0, 0,
342        },
343};
344
345static int8_t accepts[212] = {
346        -1, -1, 24, 24, -1, -1, -1, -1, -1, 3,  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
347        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 6,  24, -1,
348        -1, -1, 23, 24, -1, -1, -1, 4,  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
349        -1, -1, -1, -1, -1, 7,  -1, -1, -1, -1, -1, -1, -1, -1, 20, 24, -1, 22, 24, -1, -1, -1,
350        -1, -1, -1, -1, -1, 14, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1,
351        -1, 1,  24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 24, -1, -1, -1, -1, 2,  -1, -1,
352        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8,  -1, -1, -1, -1, -1, -1, -1, -1,
353        -1, -1, -1, -1, -1, -1, -1, 9,  24, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1,
354        -1, -1, -1, 11, 24, -1, 5,  24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 16,
355        -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 24, -1, -1, 21,
356};
357
358LayoutToken LayoutLexer::next() {
359    int startOffset = fOffset;
360    if (startOffset == fLength) {
361        return LayoutToken(LayoutToken::END_OF_FILE, startOffset, 0);
362    }
363    int offset = startOffset;
364    int state = 1;
365    LayoutToken::Kind lastAccept = LayoutToken::Kind::INVALID;
366    int lastAcceptEnd = startOffset + 1;
367    while (offset < fLength) {
368        if ((uint8_t)fText[offset] >= 127) {
369            break;
370        }
371        state = transitions[mappings[(int)fText[offset]]][state];
372        ++offset;
373        if (!state) {
374            break;
375        }
376        if (accepts[state]) {
377            lastAccept = (LayoutToken::Kind)accepts[state];
378            lastAcceptEnd = offset;
379        }
380    }
381    fOffset = lastAcceptEnd;
382    return LayoutToken(lastAccept, startOffset, lastAcceptEnd - startOffset);
383}
384
385}  // namespace
386