diff options
author | Adrian Thurston <thurston@complang.org> | 2014-01-04 10:59:18 -0500 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2014-01-04 10:59:18 -0500 |
commit | 89f6232528cbf6101250b7a9ba6aaa199c0f5b44 (patch) | |
tree | 0fe0e8676e295699b31b9017d83de7b67bbd57e5 | |
parent | 8385b445cebfad5c958681e61ca5fa2fcdac8a16 (diff) | |
download | colm-89f6232528cbf6101250b7a9ba6aaa199c0f5b44.tar.gz |
moved setPrecedence to resolve pass
-rw-r--r-- | src/compiler.cc | 1 | ||||
-rw-r--r-- | src/declare.cc | 16 | ||||
-rw-r--r-- | src/parsedata.h | 2 | ||||
-rw-r--r-- | src/resolve.cc | 13 |
4 files changed, 16 insertions, 16 deletions
diff --git a/src/compiler.cc b/src/compiler.cc index 7494c91c..64cf704d 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -1121,6 +1121,7 @@ void Compiler::compile() declarePass(); + resolvePass(); makeTerminalWrappers(); diff --git a/src/declare.cc b/src/declare.cc index eee9c2ab..7253d781 100644 --- a/src/declare.cc +++ b/src/declare.cc @@ -445,17 +445,6 @@ void Namespace::declare( Compiler *pd ) (*c)->declare( pd ); } -void Compiler::setPrecedence() -{ - for ( PredDeclList::Iter predDecl = predDeclList; predDecl != 0; predDecl++ ) { - predDecl->typeRef->lookupType( this ); - - LangEl *langEl = predDecl->typeRef->uniqueType->langEl; - langEl->predType = predDecl->predType; - langEl->predValue = predDecl->predValue; - } -} - void Compiler::makeIgnoreCollectors() { for ( RegionSetList::Iter regionSet = regionSetList; regionSet.lte(); regionSet++ ) { @@ -747,9 +736,6 @@ void Compiler::declarePass() /* Fill any empty scanners with a default token. */ initEmptyScanners(); - /* Create the default scanner which will return single characters for us - * when we have no other scanner */ - setPrecedence(); - declareByteCode(); + } diff --git a/src/parsedata.h b/src/parsedata.h index fd997657..c71c0f94 100644 --- a/src/parsedata.h +++ b/src/parsedata.h @@ -649,7 +649,7 @@ struct Compiler void makeTerminalWrappers(); void makeEofElements(); void makeIgnoreCollectors(); - void setPrecedence(); + void resolvePrecedence(); void declarePass(); void resolvePass(); diff --git a/src/resolve.cc b/src/resolve.cc index 0b1110ba..9372a96c 100644 --- a/src/resolve.cc +++ b/src/resolve.cc @@ -765,12 +765,25 @@ void Compiler::makeEofElements() } } +void Compiler::resolvePrecedence() +{ + for ( PredDeclList::Iter predDecl = predDeclList; predDecl != 0; predDecl++ ) { + predDecl->typeRef->lookupType( this ); + + LangEl *langEl = predDecl->typeRef->uniqueType->langEl; + langEl->predType = predDecl->predType; + langEl->predValue = predDecl->predValue; + } +} + void Compiler::resolvePass() { /* * Type Resolving. */ + resolvePrecedence(); + resolveParseTree(); resolveGenericTypes(); |