diff options
author | Adrian Thurston <thurston@complang.org> | 2013-02-24 15:53:02 -0500 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2013-02-24 15:53:02 -0500 |
commit | f996b3232a49b5d8c8f883f8135ed3f08caccebf (patch) | |
tree | 1239f3e389c80ef613885f7f79765b23791ef517 /colm | |
parent | e03dc8195edc4a6eee99c3841321c0e2d6aeca99 (diff) | |
download | colm-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.cc | 8 | ||||
-rw-r--r-- | colm/lmparse.kl | 15 | ||||
-rw-r--r-- | colm/parsetree.h | 9 |
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; }; |