summaryrefslogtreecommitdiff
path: root/colm
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2013-02-24 15:53:02 -0500
committerAdrian Thurston <thurston@complang.org>2013-02-24 15:53:02 -0500
commitf996b3232a49b5d8c8f883f8135ed3f08caccebf (patch)
tree1239f3e389c80ef613885f7f79765b23791ef517 /colm
parente03dc8195edc4a6eee99c3841321c0e2d6aeca99 (diff)
downloadcolm-f996b3232a49b5d8c8f883f8135ed3f08caccebf.tar.gz
removed the noPreIgnore and noPostIgnore vars from instance
Using the vars from TokenDef.
Diffstat (limited to 'colm')
-rw-r--r--colm/declare.cc8
-rw-r--r--colm/lmparse.kl15
-rw-r--r--colm/parsetree.h9
3 files changed, 16 insertions, 16 deletions
diff --git a/colm/declare.cc b/colm/declare.cc
index f8cc042b..84df6d91 100644
--- a/colm/declare.cc
+++ b/colm/declare.cc
@@ -304,9 +304,9 @@ void Namespace::declare( Compiler *pd )
l->tdLangEl = newLangEl;
- if ( l->noPreIgnore )
+ if ( l->tokenDef->noPreIgnore )
newLangEl->noPreIgnore = true;
- if ( l->noPostIgnore )
+ if ( l->tokenDef->noPostIgnore )
newLangEl->noPostIgnore = true;
}
}
@@ -362,9 +362,9 @@ void Namespace::declare( Compiler *pd )
tokEl->contextIn = t->contextIn;
tokEl->tokenInstance = t;
- if ( t->noPreIgnore )
+ if ( t->tokenDef->noPreIgnore )
tokEl->noPreIgnore = true;
- if ( t->noPostIgnore )
+ if ( t->tokenDef->noPostIgnore )
tokEl->noPostIgnore = true;
t->tdLangEl = tokEl;
diff --git a/colm/lmparse.kl b/colm/lmparse.kl
index 97d22ba5..3bb6100c 100644
--- a/colm/lmparse.kl
+++ b/colm/lmparse.kl
@@ -214,11 +214,11 @@ void ColmParser::tokenInstance( const InputLoc &loc, String name, LexJoin *join,
regionSet->tokenIgnore->tokenInstanceList.append( tokenInstance );
nspace->tokenInstanceList.append( tokenInstance );
- tokenInstance->noPreIgnore = noPreIgnore;
- tokenInstance->noPostIgnore = noPostIgnore;
+ tokenDef->noPreIgnore = noPreIgnore;
+ tokenDef->noPostIgnore = noPostIgnore;
- /* All again for the ignore. */
if ( ignore ) {
+ /* The instance for the ignore-only. */
TokenInstance *tokenInstanceIgn = TokenInstance::cons( tokenDef, name + "_ign",
String(), false, ignore, join,
0, loc, pd->nextTokenId++, nspace, regionSet->ignoreOnly,
@@ -231,6 +231,7 @@ void ColmParser::tokenInstance( const InputLoc &loc, String name, LexJoin *join,
nspace->tokenInstanceList.append( tokenInstanceIgn );
}
else {
+ /* The instance for the token-only. */
TokenInstance *tokenInstanceTok = TokenInstance::cons( tokenDef, name + "_tok",
String(), false, ignore, join,
0, loc, pd->nextTokenId++, nspace, regionSet->tokenOnly,
@@ -319,12 +320,14 @@ void ColmParser::literalDef( const InputLoc &loc, const String &data,
LexJoin *join = literalJoin( loc, data );
+ /* The token definition. */
TokenDef *tokenDef = TokenDef::cons( name, data, true, false, join,
0, loc, 0, nspace, regionSet->tokenIgnore, 0, 0, 0 );
regionSet->tokenDefList.append( tokenDef );
nspace->tokenDefList.append( tokenDef );
+ /* The instance for the token/ignore region. */
TokenInstance *tokenInstance = TokenInstance::cons( tokenDef, name, data, true, false, join,
0, loc, pd->nextTokenId++, nspace, regionSet->tokenIgnore, 0, 0, 0 );
@@ -334,9 +337,10 @@ void ColmParser::literalDef( const InputLoc &loc, const String &data,
nspace->tokenInstanceList.append( tokenInstance );
/* Make the duplicate for the token-only region. */
- tokenInstance->noPreIgnore = noPreIgnore;
- tokenInstance->noPostIgnore = noPostIgnore;
+ tokenDef->noPreIgnore = noPreIgnore;
+ tokenDef->noPostIgnore = noPostIgnore;
+ /* The instance for the token-only region. */
TokenInstance *tokenInstanceTok = TokenInstance::cons( tokenDef, name + "_tok",
data, true, false, join, 0, loc, pd->nextTokenId++, nspace,
regionSet->tokenOnly, 0, 0, 0 );
@@ -344,7 +348,6 @@ void ColmParser::literalDef( const InputLoc &loc, const String &data,
tokenInstanceTok->dupOf = tokenInstance;
regionSet->tokenOnly->tokenInstanceList.append( tokenInstanceTok );
-
nspace->tokenInstanceList.append( tokenInstanceTok );
if ( !insideRegion )
diff --git a/colm/parsetree.h b/colm/parsetree.h
index 91d25300..be99529c 100644
--- a/colm/parsetree.h
+++ b/colm/parsetree.h
@@ -454,8 +454,9 @@ struct TokenInstance
{
TokenInstance()
:
- action(0), tdLangEl(0), inLmSelect(false), dupOf(0),
- noPostIgnore(false), noPreIgnore(false), isZero(false)
+ action(0), tdLangEl(0), inLmSelect(false),
+ dupOf(0),
+ isZero(false)
{}
static TokenInstance *cons( TokenDef *tokenDef, const String &name,
@@ -483,8 +484,6 @@ struct TokenInstance
t->objectDef = objectDef;
t->contextIn = contextIn;
t->dupOf = 0;
- t->noPostIgnore = false;
- t->noPreIgnore = false;
t->isZero = false;
if ( pReCaptureVect != 0 )
@@ -519,8 +518,6 @@ struct TokenInstance
Context *contextIn;
TokenInstance *dupOf;
- bool noPostIgnore;
- bool noPreIgnore;
bool isZero;
};