aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/ragel6/rlparse.kh
diff options
context:
space:
mode:
authorsmalov <smalov@yandex-team.ru>2022-02-10 16:47:36 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:36 +0300
commitf70d9720e13aef3a935e3f405b0eac554529e76e (patch)
tree5519c392aebdb16153197de07e4774c0a2be261a /contrib/tools/ragel6/rlparse.kh
parent7b659037613268d5eac4a1b6a7c5eff3cd36d4bf (diff)
downloadydb-f70d9720e13aef3a935e3f405b0eac554529e76e.tar.gz
Restoring authorship annotation for <smalov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/ragel6/rlparse.kh')
-rw-r--r--contrib/tools/ragel6/rlparse.kh280
1 files changed, 140 insertions, 140 deletions
diff --git a/contrib/tools/ragel6/rlparse.kh b/contrib/tools/ragel6/rlparse.kh
index 899bbbcee2..8e20778b33 100644
--- a/contrib/tools/ragel6/rlparse.kh
+++ b/contrib/tools/ragel6/rlparse.kh
@@ -1,141 +1,141 @@
-/*
- * Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
- */
-
-/* This file is part of Ragel.
- *
- * Ragel is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+/*
+ * Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
+ */
+
+/* This file is part of Ragel.
*
- * Ragel is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Ragel; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef _RLPARSE_H
-#define _RLPARSE_H
-
-#include <iostream>
-#include "avltree.h"
-#include "parsedata.h"
-
-
-/* Import scanner tokens. */
-#define IMP_Word 128
-#define IMP_Literal 129
-#define IMP_UInt 130
-#define IMP_Define 131
-
-/* This is used for tracking the include files/machine pairs. */
-struct IncludeHistoryItem
-{
- IncludeHistoryItem( const char *fileName, const char *sectionName )
- : fileName(fileName), sectionName(sectionName) {}
-
- const char *fileName;
- const char *sectionName;
-};
-
-typedef Vector<IncludeHistoryItem> IncludeHistory;
-
-struct Parser
-{
-%%{
- parser Parser;
-
- # General tokens.
- token TK_Word, TK_Literal, TK_Number, TK_EndSection, TK_UInt, TK_Hex,
- TK_Word, TK_Literal, TK_DotDot, TK_ColonGt, TK_ColonGtGt, TK_LtColon,
- TK_Arrow, TK_DoubleArrow, TK_StarStar, TK_ColonEquals, TK_NameSep,
- TK_BarStar, TK_DashDash;
-
- # Conditions.
- token TK_StartCond, TK_AllCond, TK_LeavingCond;
-
- # State embedding actions.
- token TK_Middle;
-
- # Global error actions.
- token TK_StartGblError, TK_AllGblError, TK_FinalGblError,
- TK_NotFinalGblError, TK_NotStartGblError, TK_MiddleGblError;
-
- # Local error actions.
- token TK_StartLocalError, TK_AllLocalError, TK_FinalLocalError,
- TK_NotFinalLocalError, TK_NotStartLocalError, TK_MiddleLocalError;
-
- # EOF Action embedding.
- token TK_StartEOF, TK_AllEOF, TK_FinalEOF, TK_NotFinalEOF, TK_NotStartEOF,
- TK_MiddleEOF;
-
- # To State Actions.
- token TK_StartToState, TK_AllToState, TK_FinalToState, TK_NotFinalToState,
- TK_NotStartToState, TK_MiddleToState;
-
- # In State Actions.
- token TK_StartFromState, TK_AllFromState, TK_FinalFromState,
- TK_NotFinalFromState, TK_NotStartFromState, TK_MiddleFromState;
-
- # Regular expression tokens. */
- token RE_Slash, RE_SqOpen, RE_SqOpenNeg, RE_SqClose, RE_Dot, RE_Star,
- RE_Dash, RE_Char;
-
- # Tokens specific to inline code.
- token IL_WhiteSpace, IL_Comment, IL_Literal, IL_Symbol;
-
- # Keywords.
- token KW_Machine, KW_Include, KW_Import, KW_Write, KW_Action, KW_AlphType,
- KW_Range, KW_GetKey, KW_Include, KW_Write, KW_Machine, KW_InWhen,
- KW_When, KW_OutWhen, KW_Eof, KW_Err, KW_Lerr, KW_To, KW_From,
- KW_Export, KW_PrePush, KW_PostPop, KW_Length;
-
- # Specials in code blocks.
- token KW_Break, KW_Exec, KW_Hold, KW_PChar, KW_Char, KW_Goto, KW_Call,
- KW_Ret, KW_CurState, KW_TargState, KW_Entry, KW_Next, KW_Exec,
- KW_Variable, KW_Access;
-}%%
-
- %% write instance_data;
-
- void init();
- int parseLangEl( int type, const Token *token );
-
- Parser( const char *fileName, char *sectionName, InputLoc &sectionLoc )
- : sectionName(sectionName)
- {
- pd = new ParseData( fileName, sectionName, sectionLoc );
- exportContext.append( false );
- includeHistory.append( IncludeHistoryItem(
- fileName, sectionName ) );
- }
-
- int token( InputLoc &loc, int tokId, char *tokstart, int toklen );
- void tryMachineDef( InputLoc &loc, char *name,
- MachineDef *machineDef, bool isInstance );
-
- /* Report an error encountered by the parser. */
- ostream &parse_error( int tokId, Token &token );
-
- ParseData *pd;
-
- /* The name of the root section, this does not change during an include. */
- char *sectionName;
-
- NameRef nameRef;
- NameRefList nameRefList;
-
- Vector<bool> exportContext;
- IncludeHistory includeHistory;
-
- Parser *prev, *next;
-};
-
-%% write token_defs;
-
-#endif
+ * Ragel is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Ragel is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Ragel; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _RLPARSE_H
+#define _RLPARSE_H
+
+#include <iostream>
+#include "avltree.h"
+#include "parsedata.h"
+
+
+/* Import scanner tokens. */
+#define IMP_Word 128
+#define IMP_Literal 129
+#define IMP_UInt 130
+#define IMP_Define 131
+
+/* This is used for tracking the include files/machine pairs. */
+struct IncludeHistoryItem
+{
+ IncludeHistoryItem( const char *fileName, const char *sectionName )
+ : fileName(fileName), sectionName(sectionName) {}
+
+ const char *fileName;
+ const char *sectionName;
+};
+
+typedef Vector<IncludeHistoryItem> IncludeHistory;
+
+struct Parser
+{
+%%{
+ parser Parser;
+
+ # General tokens.
+ token TK_Word, TK_Literal, TK_Number, TK_EndSection, TK_UInt, TK_Hex,
+ TK_Word, TK_Literal, TK_DotDot, TK_ColonGt, TK_ColonGtGt, TK_LtColon,
+ TK_Arrow, TK_DoubleArrow, TK_StarStar, TK_ColonEquals, TK_NameSep,
+ TK_BarStar, TK_DashDash;
+
+ # Conditions.
+ token TK_StartCond, TK_AllCond, TK_LeavingCond;
+
+ # State embedding actions.
+ token TK_Middle;
+
+ # Global error actions.
+ token TK_StartGblError, TK_AllGblError, TK_FinalGblError,
+ TK_NotFinalGblError, TK_NotStartGblError, TK_MiddleGblError;
+
+ # Local error actions.
+ token TK_StartLocalError, TK_AllLocalError, TK_FinalLocalError,
+ TK_NotFinalLocalError, TK_NotStartLocalError, TK_MiddleLocalError;
+
+ # EOF Action embedding.
+ token TK_StartEOF, TK_AllEOF, TK_FinalEOF, TK_NotFinalEOF, TK_NotStartEOF,
+ TK_MiddleEOF;
+
+ # To State Actions.
+ token TK_StartToState, TK_AllToState, TK_FinalToState, TK_NotFinalToState,
+ TK_NotStartToState, TK_MiddleToState;
+
+ # In State Actions.
+ token TK_StartFromState, TK_AllFromState, TK_FinalFromState,
+ TK_NotFinalFromState, TK_NotStartFromState, TK_MiddleFromState;
+
+ # Regular expression tokens. */
+ token RE_Slash, RE_SqOpen, RE_SqOpenNeg, RE_SqClose, RE_Dot, RE_Star,
+ RE_Dash, RE_Char;
+
+ # Tokens specific to inline code.
+ token IL_WhiteSpace, IL_Comment, IL_Literal, IL_Symbol;
+
+ # Keywords.
+ token KW_Machine, KW_Include, KW_Import, KW_Write, KW_Action, KW_AlphType,
+ KW_Range, KW_GetKey, KW_Include, KW_Write, KW_Machine, KW_InWhen,
+ KW_When, KW_OutWhen, KW_Eof, KW_Err, KW_Lerr, KW_To, KW_From,
+ KW_Export, KW_PrePush, KW_PostPop, KW_Length;
+
+ # Specials in code blocks.
+ token KW_Break, KW_Exec, KW_Hold, KW_PChar, KW_Char, KW_Goto, KW_Call,
+ KW_Ret, KW_CurState, KW_TargState, KW_Entry, KW_Next, KW_Exec,
+ KW_Variable, KW_Access;
+}%%
+
+ %% write instance_data;
+
+ void init();
+ int parseLangEl( int type, const Token *token );
+
+ Parser( const char *fileName, char *sectionName, InputLoc &sectionLoc )
+ : sectionName(sectionName)
+ {
+ pd = new ParseData( fileName, sectionName, sectionLoc );
+ exportContext.append( false );
+ includeHistory.append( IncludeHistoryItem(
+ fileName, sectionName ) );
+ }
+
+ int token( InputLoc &loc, int tokId, char *tokstart, int toklen );
+ void tryMachineDef( InputLoc &loc, char *name,
+ MachineDef *machineDef, bool isInstance );
+
+ /* Report an error encountered by the parser. */
+ ostream &parse_error( int tokId, Token &token );
+
+ ParseData *pd;
+
+ /* The name of the root section, this does not change during an include. */
+ char *sectionName;
+
+ NameRef nameRef;
+ NameRefList nameRefList;
+
+ Vector<bool> exportContext;
+ IncludeHistory includeHistory;
+
+ Parser *prev, *next;
+};
+
+%% write token_defs;
+
+#endif