diff options
author | Adrian Thurston <thurston@complang.org> | 2014-01-05 17:02:20 -0500 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2014-01-05 17:02:20 -0500 |
commit | 02f9b941571b375e8cfef1d481d02562e4fbe090 (patch) | |
tree | 93761c79bec5ae8ca759fdc9ebc9fd7064c4dca2 | |
parent | 3ce51258d0c0e56f6ed0569ff74730af9d33ddcf (diff) | |
download | colm-02f9b941571b375e8cfef1d481d02562e4fbe090.tar.gz |
moved curLocalFrame into the parser class
-rw-r--r-- | src/consinit.cc | 6 | ||||
-rw-r--r-- | src/loadcolm.cc | 8 | ||||
-rw-r--r-- | src/loadinit.cc | 8 | ||||
-rw-r--r-- | src/parsedata.h | 1 | ||||
-rw-r--r-- | src/parser.cc | 40 | ||||
-rw-r--r-- | src/parser.h | 1 |
6 files changed, 32 insertions, 32 deletions
diff --git a/src/consinit.cc b/src/consinit.cc index 394b51f5..f447a372 100644 --- a/src/consinit.cc +++ b/src/consinit.cc @@ -746,7 +746,7 @@ void ConsInit::parseInput( StmtList *stmtList ) popQual->append( QualItem( QualItem::Dot, internal, String( "argv" ) ) ); LangVarRef *popRef = LangVarRef::cons( internal, - 0, pd->curLocalFrame->rootScope, popQual, String("pop") ); + 0, curLocalFrame->rootScope, popQual, String("pop") ); LangExpr *pop = LangExpr::cons( LangTerm::cons( InputLoc(), popRef, popArgs ) ); /* Construct a literal string 'r', for second arg to open. */ @@ -758,7 +758,7 @@ void ConsInit::parseInput( StmtList *stmtList ) /* Call open. */ QualItemVect *openQual = new QualItemVect; LangVarRef *openRef = LangVarRef::cons( internal, - 0, pd->curLocalFrame->rootScope, openQual, String("open") ); + 0, curLocalFrame->rootScope, openQual, String("open") ); CallArgVect *openArgs = new CallArgVect; openArgs->append( new CallArg(pop) ); openArgs->append( new CallArg(modeExpr) ); @@ -780,7 +780,7 @@ void ConsInit::parseInput( StmtList *stmtList ) void ConsInit::exportTree( StmtList *stmtList ) { QualItemVect *qual = new QualItemVect; - LangVarRef *varRef = LangVarRef::cons( internal, 0, pd->curLocalFrame->rootScope, qual, String("P") ); + LangVarRef *varRef = LangVarRef::cons( internal, 0, curLocalFrame->rootScope, qual, String("P") ); LangExpr *expr = LangExpr::cons( LangTerm::cons( internal, LangTerm::VarRefType, varRef ) ); NamespaceQual *nspaceQual = NamespaceQual::cons( namespaceStack.top() ); diff --git a/src/loadcolm.cc b/src/loadcolm.cc index 06e94300..f06b2597 100644 --- a/src/loadcolm.cc +++ b/src/loadcolm.cc @@ -228,7 +228,7 @@ struct LoadColm IterCall *iterCall = walkIterCall( Statement.iter_call() ); stmt = forScope( Statement.id().loc(), forDecl, - pd->curLocalFrame->curScope, typeRef, iterCall, stmtList ); + curLocalFrame->curScope, typeRef, iterCall, stmtList ); popScope(); break; @@ -429,7 +429,7 @@ struct LoadColm if ( optLabel.prodName() == opt_label::_Id ) { String id = optLabel.id().data(); varRef = LangVarRef::cons( optLabel.id().loc(), - context, pd->curLocalFrame->curScope, id ); + context, curLocalFrame->curScope, id ); } return varRef; } @@ -1157,7 +1157,7 @@ struct LoadColm QualItemVect *qualItemVect = walkQual( Qual ); String id = varRef.id().data(); LangVarRef *langVarRef = LangVarRef::cons( varRef.id().loc(), - context, pd->curLocalFrame->curScope, qualItemVect, id ); + context, curLocalFrame->curScope, qualItemVect, id ); return langVarRef; } @@ -1814,7 +1814,7 @@ struct LoadColm case iter_call::_Id: { String tree = Tree.id().data(); LangVarRef *varRef = LangVarRef::cons( Tree.id().loc(), - context, pd->curLocalFrame->curScope, tree ); + context, curLocalFrame->curScope, tree ); LangTerm *langTerm = LangTerm::cons( Tree.id().loc(), LangTerm::VarRefType, varRef ); LangExpr *langExpr = LangExpr::cons( langTerm ); diff --git a/src/loadinit.cc b/src/loadinit.cc index aed5072d..e26f731d 100644 --- a/src/loadinit.cc +++ b/src/loadinit.cc @@ -285,7 +285,7 @@ void LoadInit::consParseStmt( StmtList *stmtList ) QualItemVect *popQual = new QualItemVect; popQual->append( QualItem( QualItem::Dot, internal, String( "argv" ) ) ); - LangVarRef *popRef = LangVarRef::cons( internal, 0, pd->curLocalFrame->rootScope, popQual, String("pop") ); + LangVarRef *popRef = LangVarRef::cons( internal, 0, curLocalFrame->rootScope, popQual, String("pop") ); LangExpr *pop = LangExpr::cons( LangTerm::cons( InputLoc(), popRef, popArgs ) ); /* Construct a literal string 'r', for second arg to open. */ @@ -297,7 +297,7 @@ void LoadInit::consParseStmt( StmtList *stmtList ) /* Call open. */ QualItemVect *openQual = new QualItemVect; LangVarRef *openRef = LangVarRef::cons( internal, - 0, pd->curLocalFrame->rootScope, openQual, String("open") ); + 0, curLocalFrame->rootScope, openQual, String("open") ); CallArgVect *openArgs = new CallArgVect; openArgs->append( new CallArg(pop) ); openArgs->append( new CallArg(modeExpr) ); @@ -319,7 +319,7 @@ void LoadInit::consParseStmt( StmtList *stmtList ) void LoadInit::consExportTree( StmtList *stmtList ) { QualItemVect *qual = new QualItemVect; - LangVarRef *varRef = LangVarRef::cons( internal, 0, pd->curLocalFrame->rootScope, qual, String("P") ); + LangVarRef *varRef = LangVarRef::cons( internal, 0, curLocalFrame->rootScope, qual, String("P") ); LangExpr *expr = LangExpr::cons( LangTerm::cons( internal, LangTerm::VarRefType, varRef ) ); NamespaceQual *nspaceQual = NamespaceQual::cons( namespaceStack.top() ); @@ -332,7 +332,7 @@ void LoadInit::consExportTree( StmtList *stmtList ) void LoadInit::consExportError( StmtList *stmtList ) { QualItemVect *qual = new QualItemVect; - LangVarRef *varRef = LangVarRef::cons( internal, 0, pd->curLocalFrame->rootScope, qual, String("error") ); + LangVarRef *varRef = LangVarRef::cons( internal, 0, curLocalFrame->rootScope, qual, String("error") ); LangExpr *expr = LangExpr::cons( LangTerm::cons( internal, LangTerm::VarRefType, varRef ) ); NamespaceQual *nspaceQual = NamespaceQual::cons( namespaceStack.top() ); diff --git a/src/parsedata.h b/src/parsedata.h index 657dff69..ca416ceb 100644 --- a/src/parsedata.h +++ b/src/parsedata.h @@ -886,7 +886,6 @@ struct Compiler ObjectDef *globalObjectDef; VectorTypeIdMap vectorTypeIdMap; - ObjectDef *curLocalFrame; UniqueType *findUniqueType( int typeId ); UniqueType *findUniqueType( int typeId, LangEl *langEl ); diff --git a/src/parser.cc b/src/parser.cc index e0f81ebc..3a1964d8 100644 --- a/src/parser.cc +++ b/src/parser.cc @@ -51,7 +51,7 @@ void BaseParser::init() pd->rootLocalFrame = ObjectDef::cons( ObjectDef::FrameType, "local", pd->nextObjectId++ ); - pd->curLocalFrame = pd->rootLocalFrame; + curLocalFrame = pd->rootLocalFrame; /* Declarations of internal types. They must be declared now because we use * them directly, rather than via type lookup. */ @@ -344,13 +344,13 @@ ObjectDef *BaseParser::blockOpen() ObjectDef *frame = ObjectDef::cons( ObjectDef::FrameType, "local", pd->nextObjectId++ ); - pd->curLocalFrame = frame; + curLocalFrame = frame; return frame; } void BaseParser::blockClose() { - pd->curLocalFrame = pd->rootLocalFrame; + curLocalFrame = pd->rootLocalFrame; } void BaseParser::functionDef( StmtList *stmtList, ObjectDef *localFrame, @@ -394,7 +394,7 @@ LangStmt *BaseParser::globalDef( ObjectField *objField, LangExpr *expr, if ( expr != 0 ) { LangVarRef *varRef = LangVarRef::cons( objField->loc, - context, pd->curLocalFrame->curScope, objField->name ); + context, curLocalFrame->curScope, objField->name ); stmt = LangStmt::cons( objField->loc, assignType, varRef, expr ); @@ -572,7 +572,7 @@ LangExpr *BaseParser::parseCmd( const InputLoc &loc, bool stop, ObjectField *obj LangVarRef *varRef = 0; if ( objField != 0 ) { varRef = LangVarRef::cons( objField->loc, - context, pd->curLocalFrame->curScope, objField->name ); + context, curLocalFrame->curScope, objField->name ); } /* The typeref for the parser. */ @@ -588,14 +588,14 @@ LangExpr *BaseParser::parseCmd( const InputLoc &loc, bool stop, ObjectField *obj /* Check for redeclaration. */ if ( objField != 0 ) { - if ( pd->curLocalFrame->checkRedecl( objField->name ) != 0 ) { + if ( curLocalFrame->checkRedecl( objField->name ) != 0 ) { error( objField->loc ) << "variable " << objField->name << " redeclared" << endp; } /* Insert it into the field map. */ objField->typeRef = typeRef; - pd->curLocalFrame->insertField( objField->name, objField ); + curLocalFrame->insertField( objField->name, objField ); } return expr; @@ -607,7 +607,7 @@ PatternItemList *BaseParser::consPatternEl( LangVarRef *varRef, PatternItemList list->head->varRef = varRef; if ( varRef != 0 ) { - if ( pd->curLocalFrame->checkRedecl( varRef->name ) != 0 ) { + if ( curLocalFrame->checkRedecl( varRef->name ) != 0 ) { error( varRef->loc ) << "variable " << varRef->name << " redeclared" << endp; } @@ -616,7 +616,7 @@ PatternItemList *BaseParser::consPatternEl( LangVarRef *varRef, PatternItemList ObjectField *objField = ObjectField::cons( InputLoc(), typeRef, varRef->name ); /* Insert it into the field map. */ - pd->curLocalFrame->insertField( varRef->name, objField ); + curLocalFrame->insertField( varRef->name, objField ); } return list; @@ -673,14 +673,14 @@ LangStmt *BaseParser::forScope( const InputLoc &loc, const String &data, Context *context = contextStack.length() == 0 ? 0 : contextStack.top(); /* Check for redeclaration. */ - if ( pd->curLocalFrame->checkRedecl( data ) != 0 ) + if ( curLocalFrame->checkRedecl( data ) != 0 ) error( loc ) << "variable " << data << " redeclared" << endp; /* Note that we pass in a null type reference. This type is dependent on * the result of the iter_call lookup since it must contain a reference to * the iterator that is called. This lookup is done at compile time. */ ObjectField *iterField = ObjectField::cons( loc, (TypeRef*)0, data ); - pd->curLocalFrame->insertField( data, iterField ); + curLocalFrame->insertField( data, iterField ); LangStmt *stmt = LangStmt::cons( loc, LangStmt::ForIterType, iterField, typeRef, iterCall, stmtList, context, scope ); @@ -775,7 +775,7 @@ LangExpr *BaseParser::construct( const InputLoc &loc, ObjectField *objField, LangVarRef *varRef = 0; if ( objField != 0 ) { varRef = LangVarRef::cons( objField->loc, - context, pd->curLocalFrame->curScope, objField->name ); + context, curLocalFrame->curScope, objField->name ); } LangExpr *expr = LangExpr::cons( LangTerm::cons( loc, LangTerm::ConstructType, @@ -783,14 +783,14 @@ LangExpr *BaseParser::construct( const InputLoc &loc, ObjectField *objField, /* Check for redeclaration. */ if ( objField != 0 ) { - if ( pd->curLocalFrame->checkRedecl( objField->name ) != 0 ) { + if ( curLocalFrame->checkRedecl( objField->name ) != 0 ) { error( objField->loc ) << "variable " << objField->name << " redeclared" << endp; } /* Insert it into the field map. */ objField->typeRef = typeRef; - pd->curLocalFrame->insertField( objField->name, objField ); + curLocalFrame->insertField( objField->name, objField ); } return expr; @@ -818,19 +818,19 @@ LangStmt *BaseParser::varDef( ObjectField *objField, Context *context = contextStack.length() == 0 ? 0 : contextStack.top(); /* Check for redeclaration. */ - if ( pd->curLocalFrame->checkRedecl( objField->name ) != 0 ) { + if ( curLocalFrame->checkRedecl( objField->name ) != 0 ) { error( objField->loc ) << "variable " << objField->name << " redeclared" << endp; } /* Insert it into the field map. */ - pd->curLocalFrame->insertField( objField->name, objField ); + curLocalFrame->insertField( objField->name, objField ); //cout << "var def " << $1->objField->name << endl; if ( expr != 0 ) { LangVarRef *varRef = LangVarRef::cons( objField->loc, - context, pd->curLocalFrame->curScope, objField->name ); + context, curLocalFrame->curScope, objField->name ); stmt = LangStmt::cons( objField->loc, assignType, varRef, expr ); } @@ -855,7 +855,7 @@ LangStmt *BaseParser::exportStmt( ObjectField *objField, LangStmt::Type assignTy if ( expr != 0 ) { LangVarRef *varRef = LangVarRef::cons( objField->loc, - 0, pd->curLocalFrame->curScope, objField->name ); + 0, curLocalFrame->curScope, objField->name ); stmt = LangStmt::cons( objField->loc, assignType, varRef, expr ); } @@ -965,10 +965,10 @@ void BaseParser::precedenceStmt( PredType predType, PredDeclList *predDeclList ) void BaseParser::pushScope() { - pd->curLocalFrame->pushScope(); + curLocalFrame->pushScope(); } void BaseParser::popScope() { - pd->curLocalFrame->popScope(); + curLocalFrame->popScope(); } diff --git a/src/parser.h b/src/parser.h index dbe4bbc9..156a0791 100644 --- a/src/parser.h +++ b/src/parser.h @@ -42,6 +42,7 @@ struct BaseParser RegionSetVect regionStack; NamespaceVect namespaceStack; ContextStack contextStack; + ObjectDef *curLocalFrame; bool enterRl; |