summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2014-01-04 10:59:18 -0500
committerAdrian Thurston <thurston@complang.org>2014-01-04 10:59:18 -0500
commit89f6232528cbf6101250b7a9ba6aaa199c0f5b44 (patch)
tree0fe0e8676e295699b31b9017d83de7b67bbd57e5
parent8385b445cebfad5c958681e61ca5fa2fcdac8a16 (diff)
downloadcolm-89f6232528cbf6101250b7a9ba6aaa199c0f5b44.tar.gz
moved setPrecedence to resolve pass
-rw-r--r--src/compiler.cc1
-rw-r--r--src/declare.cc16
-rw-r--r--src/parsedata.h2
-rw-r--r--src/resolve.cc13
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();