1 /* Automatically generated by Kelbt from "rlparse.kh".
3 * Parts of this file are copied from Kelbt source covered by the GNU
4 * GPL. As a special exception, you may use the parts of this file copied
5 * from Kelbt source without restriction. The remainder is derived from
6 * "rlparse.kh" and inherits the copyright status of that file.
11 * Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
14 /* This file is part of Ragel.
16 * Ragel is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
21 * Ragel is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
26 * You should have received a copy of the GNU General Public License
27 * along with Ragel; if not, write to the Free Software
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
36 #include "parsedata.h"
39 /* Import scanner tokens. */
41 #define IMP_Literal 129
43 #define IMP_Define 131
45 /* This is used for tracking the include files/machine pairs. */
46 struct IncludeHistoryItem
48 IncludeHistoryItem( const char *fileName, const char *sectionName )
49 : fileName(fileName), sectionName(sectionName) {}
52 const char *sectionName;
55 typedef Vector<IncludeHistoryItem> IncludeHistory;
59 #line 102 "rlparse.kh"
63 struct Parser_Block *block;
64 struct Parser_LangEl *freshEl;
66 struct Parser_LangEl *pool;
69 struct Parser_LangEl *stackTop;
70 struct Parser_LangEl *lastFinal;
73 #line 105 "rlparse.kh"
76 int parseLangEl( int type, const Token *token );
78 Parser( const char *fileName, char *sectionName, InputLoc §ionLoc )
79 : sectionName(sectionName)
81 pd = new ParseData( fileName, sectionName, sectionLoc );
82 exportContext.append( false );
83 includeHistory.append( IncludeHistoryItem(
84 fileName, sectionName ) );
87 int token( InputLoc &loc, int tokId, char *tokstart, int toklen );
88 void tryMachineDef( InputLoc &loc, char *name,
89 MachineDef *machineDef, bool isInstance );
91 /* Report an error encountered by the parser. */
92 ostream &parse_error( int tokId, Token &token );
96 /* The name of the root section, this does not change during an include. */
100 NameRefList nameRefList;
102 Vector<bool> exportContext;
103 IncludeHistory includeHistory;
108 #line 109 "rlparse.h"
110 #define TK_Literal 129
111 #define TK_Number 130
112 #define TK_EndSection 131
115 #define TK_DotDot 134
116 #define TK_ColonGt 135
117 #define TK_ColonGtGt 136
118 #define TK_LtColon 137
120 #define TK_DoubleArrow 139
121 #define TK_StarStar 140
122 #define TK_ColonEquals 141
123 #define TK_NameSep 142
124 #define TK_BarStar 143
125 #define TK_DashDash 144
126 #define TK_StartCond 145
127 #define TK_AllCond 146
128 #define TK_LeavingCond 147
129 #define TK_Middle 148
130 #define TK_StartGblError 149
131 #define TK_AllGblError 150
132 #define TK_FinalGblError 151
133 #define TK_NotFinalGblError 152
134 #define TK_NotStartGblError 153
135 #define TK_MiddleGblError 154
136 #define TK_StartLocalError 155
137 #define TK_AllLocalError 156
138 #define TK_FinalLocalError 157
139 #define TK_NotFinalLocalError 158
140 #define TK_NotStartLocalError 159
141 #define TK_MiddleLocalError 160
142 #define TK_StartEOF 161
143 #define TK_AllEOF 162
144 #define TK_FinalEOF 163
145 #define TK_NotFinalEOF 164
146 #define TK_NotStartEOF 165
147 #define TK_MiddleEOF 166
148 #define TK_StartToState 167
149 #define TK_AllToState 168
150 #define TK_FinalToState 169
151 #define TK_NotFinalToState 170
152 #define TK_NotStartToState 171
153 #define TK_MiddleToState 172
154 #define TK_StartFromState 173
155 #define TK_AllFromState 174
156 #define TK_FinalFromState 175
157 #define TK_NotFinalFromState 176
158 #define TK_NotStartFromState 177
159 #define TK_MiddleFromState 178
161 #define RE_SqOpen 180
162 #define RE_SqOpenNeg 181
163 #define RE_SqClose 182
168 #define IL_WhiteSpace 187
169 #define IL_Comment 188
170 #define IL_Literal 189
171 #define IL_Symbol 190
172 #define KW_Machine 191
173 #define KW_Include 192
174 #define KW_Import 193
176 #define KW_Action 195
177 #define KW_AlphType 196
179 #define KW_GetKey 198
180 #define KW_InWhen 199
182 #define KW_OutWhen 201
188 #define KW_Export 207
189 #define KW_PrePush 208
190 #define KW_PostPop 209
191 #define KW_Length 210
200 #define KW_CurState 219
201 #define KW_TargState 220
204 #define KW_Variable 223
205 #define KW_Access 224
206 #define Parser_tk_eof 225
208 #line 140 "rlparse.kh"