summaryrefslogtreecommitdiff
path: root/src/lmparse.kh
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2012-08-01 13:18:02 +0000
committerAdrian Thurston <thurston@complang.org>2012-08-01 13:18:02 +0000
commit6bc9727d3ac615090bf5086cae43d225d3fb552f (patch)
tree695c7894d54b8b9de40e4cf347063e99238b7b0a /src/lmparse.kh
parent39c9b4a6f1014cb30ee535d4f534d0dcc4fe5905 (diff)
downloadcolm-6bc9727d3ac615090bf5086cae43d225d3fb552f.tar.gz
revert "moved 'colm' dir to 'src'"
Colm includes a library component with headers installed to a private dir inside include: $prefix/include/colm. We need our headers to reference each other using this colm prefix. This needs to be true for compiling our source and also for compiling external programs. It is conventient to have all the source in a directory called colm and then to use -I <source-root> when building colm. We use $prefix/include when building external programs. This reverts commit 247904a84430b8c9151fa6afb68f01b60afb92c9.
Diffstat (limited to 'src/lmparse.kh')
-rw-r--r--src/lmparse.kh120
1 files changed, 0 insertions, 120 deletions
diff --git a/src/lmparse.kh b/src/lmparse.kh
deleted file mode 100644
index e55f3c25..00000000
--- a/src/lmparse.kh
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
- */
-
-/* This file is part of Colm.
- *
- * Colm 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.
- *
- * Colm 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 Colm; 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"
-
-#define PROPERTY_REDUCE_FIRST 0x1
-
-struct ColmParser
-{
- ColmParser( Compiler *pd, const char *fileName, const char *sectionName, const InputLoc &sectionLoc )
- : pd(pd), sectionName(sectionName), enterRl(false)
- {}
-
- %%{
- parser ColmParser;
-
- # Use a class for tokens.
- token uses class Token;
-
- # Atoms.
- token TK_Word, TK_Literal, TK_SingleLit, TK_DoubleLit, TK_Number, TK_UInt,
- TK_Hex, KW_Nil, KW_True, KW_False;
-
- # General tokens.
- token TK_DotDot, TK_ColonGt, TK_ColonGtGt, TK_LtColon,
- TK_DoubleArrow, TK_StarStar, TK_NameSep, TK_DashDash, TK_DoubleEql,
- TK_NotEql, TK_DoubleColon, TK_LessEql, TK_GrtrEql, TK_RightArrow,
- TK_LitPat, TK_AmpAmp, TK_BarBar, TK_SqOpen, TK_SqOpenNeg, TK_SqClose,
- TK_Dash, TK_ReChar, TK_LtLt;
-
- # Defining things.
- token KW_Rl, KW_Def, KW_Lex, KW_Context, KW_Ignore, KW_Token, KW_Commit, KW_Namespace,
- KW_Literal, KW_ReduceFirst, KW_Map, KW_List, KW_Vector, KW_Parser, KW_Global, KW_Export,
- KW_Iter, KW_Reject, KW_Ptr, KW_Ref, KW_Deref;
-
- # Language.
- token KW_If, KW_While, KW_Else, KW_Elsif, KW_For, KW_Return, KW_Yield, KW_In,
- KW_Break, KW_PrintXMLAC, KW_PrintXML, KW_Print, KW_PrintStream, KW_Require;
-
- # Patterns.
- token KW_Match, KW_Construct, KW_Parse, KW_ParseStop, KW_New, KW_MakeToken,
- KW_MakeTree, KW_TypeId, KW_Alias, KW_Send, KW_Ni, KW_Ci;
-
- token KW_Include, KW_Preeof;
-
- token KW_Left, KW_Right, KW_Nonassoc, KW_Prec;
-
- }%%
-
- %% write instance_data;
-
-
- void init();
- int parseLangEl( int type, const Token *token );
-
- int token( InputLoc &loc, int tokId, char *tokstart, int toklen );
- void addRegularDef( const InputLoc &loc, Namespace *nspace,
- const String &name, Join *join );
- TokenRegion *createRegion( String &name );
- void addRegionDef( const InputLoc &loc, Namespace *nspace,
- const String &name, TokenRegion *join );
- void addProduction( const InputLoc &loc, const String &name,
- ProdElList *prodElList, bool commit, CodeBlock *redBlock, LangEl *predOf );
- void addArgvList();
-
- /* Report an error encountered by the parser. */
- ostream &parse_error( int tokId, Token &token );
-
- Compiler *pd;
-
- /* The name of the root section, this does not change during an include. */
- const char *sectionName;
-
- NameRef nameRef;
- NameRefList nameRefList;
-
- LangElVect langElVect;
-
- PatternItemList *patternItemList;
- ReplItemList *replItemList;
- RegionVect regionStack;
- NamespaceVect namespaceStack;
- ContextVect contextStack;
-
- String curDefineId;
- LelDefList *curDefList;
- ProdElList *curProdElList;
-
- PredType predType;
- ReCaptureVect reCaptureVect;
-
- bool enterRl;
-};
-
-%% write token_defs;
-
-#endif