summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2012-07-15 21:46:24 -0400
committerAdrian Thurston <thurston@complang.org>2012-07-15 21:46:24 -0400
commit516b11d71d8bc5e8d05379d2e98a18e3a23d6461 (patch)
treeb6618667ae254aa87a11d354da6e42f9ae07f5a4
parentdb03a8019692eac96f33890e5a7a775606f16263 (diff)
downloadcolm-516b11d71d8bc5e8d05379d2e98a18e3a23d6461.tar.gz
some cleanup of parse tree type names
-rw-r--r--src/lmparse.kl10
-rw-r--r--src/parsetree.h12
-rw-r--r--src/resolve.cc9
-rw-r--r--src/synthesis.cc12
4 files changed, 22 insertions, 21 deletions
diff --git a/src/lmparse.kl b/src/lmparse.kl
index 9f46de95..07988dd7 100644
--- a/src/lmparse.kl
+++ b/src/lmparse.kl
@@ -1448,7 +1448,7 @@ statement: var_ref TK_LtLt accumulate
ParserText *parserText = ParserText::cons( $2->loc, nspace, region, replItemList );
pd->parserTextList.append( parserText );
- $$->stmt = LangStmt::cons( LangStmt::ParserType, $1->varRef, parserText );
+ $$->stmt = LangStmt::cons( LangStmt::SendType, $1->varRef, parserText );
};
statement: KW_Send var_ref accumulate
final {
@@ -1457,7 +1457,7 @@ statement: KW_Send var_ref accumulate
ParserText *parserText = ParserText::cons( $1->loc, nspace, region, replItemList );
pd->parserTextList.append( parserText );
- $$->stmt = LangStmt::cons( LangStmt::ParserType, $2->varRef, parserText );
+ $$->stmt = LangStmt::cons( LangStmt::SendType, $2->varRef, parserText );
};
nonterm opt_require_stmt uses statement;
@@ -1881,7 +1881,7 @@ code_factor:
ParserText *parserText = ParserText::cons( $2->loc, nspace, region, replItemList );
pd->parserTextList.append( parserText );
- $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::Parser2Type,
+ $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::Parse2Type,
varRef, $2->objField, parserTypeRef, $4->fieldInitVect, replacement, parserText ) );
/* Check for redeclaration. */
@@ -1918,7 +1918,7 @@ code_factor: KW_Parse opt_capture type_ref '(' opt_code_expr_list ')'
if ( $2->objField != 0 )
varRef = new LangVarRef( $2->objField->loc, new QualItemVect, $2->objField->name );
- $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::ParseType,
+ $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::OrigParseType,
varRef, $2->objField, $3->typeRef, generic, parserTypeRef, replacement ) );
$$->expr->term->args = $5->exprVect;
@@ -1957,7 +1957,7 @@ code_factor: KW_ParseStop opt_capture type_ref '(' opt_code_expr_list ')'
if ( $2->objField != 0 )
varRef = new LangVarRef( $2->objField->loc, new QualItemVect, $2->objField->name );
- $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::ParseStopType,
+ $$->expr = LangExpr::cons( LangTerm::cons( $1->loc, LangTerm::OrigParseStopType,
varRef, $2->objField, $3->typeRef, generic, parserTypeRef, replacement ) );
$$->expr->term->args = $5->exprVect;
diff --git a/src/parsetree.h b/src/parsetree.h
index d813a3ee..60028476 100644
--- a/src/parsetree.h
+++ b/src/parsetree.h
@@ -2337,12 +2337,14 @@ struct LangTerm
NilType,
TrueType,
FalseType,
- ParseType,
- ParseStopType,
+ /* Parser that returns the tree, not the parser class. Can't get any
+ * parse error if present. */
+ OrigParseType,
+ OrigParseStopType,
+ Parse2Type,
MakeTreeType,
MakeTokenType,
EmbedStringType,
- Parser2Type,
};
LangTerm()
@@ -2618,7 +2620,7 @@ struct LangStmt
YieldType,
ForIterType,
BreakType,
- ParserType
+ SendType
};
LangStmt()
@@ -2773,7 +2775,7 @@ struct LangStmt
void resolve( Compiler *pd ) const;
void resolveParserItems( Compiler *pd ) const;
- void evaluateParserItems( Compiler *pd, CodeVect &code ) const;
+ void evaluateSend( Compiler *pd, CodeVect &code ) const;
LangTerm *chooseDefaultIter( Compiler *pd, LangTerm *fromVarRef ) const;
void compileWhile( Compiler *pd, CodeVect &code ) const;
void compileForIterBody( Compiler *pd, CodeVect &code, UniqueType *iterUT ) const;
diff --git a/src/resolve.cc b/src/resolve.cc
index e3e29950..bfb5b9d9 100644
--- a/src/resolve.cc
+++ b/src/resolve.cc
@@ -333,7 +333,7 @@ void LangTerm::resolve( Compiler *pd )
(*pi)->expr->resolve( pd );
}
break;
- case Parser2Type:
+ case Parse2Type:
typeRef->lookupType( pd );
/* Evaluate the initialization expressions. */
if ( fieldInitArgs != 0 ) {
@@ -371,8 +371,8 @@ void LangTerm::resolve( Compiler *pd )
case FalseType:
break;
- case ParseType:
- case ParseStopType:
+ case OrigParseType:
+ case OrigParseStopType:
typeRef->lookupType( pd );
parserTypeRef->lookupType( pd );
generic = parserTypeRef->generic;
@@ -500,8 +500,7 @@ void LangStmt::resolve( Compiler *pd ) const
varRef->resolve( pd );
break;
}
- case ParserType: {
- //for ( )
+ case SendType: {
break;
}
}
diff --git a/src/synthesis.cc b/src/synthesis.cc
index 90766227..8b014ffc 100644
--- a/src/synthesis.cc
+++ b/src/synthesis.cc
@@ -1650,13 +1650,13 @@ UniqueType *LangTerm::evaluate( Compiler *pd, CodeVect &code ) const
}
case MatchType:
return evaluateMatch( pd, code );
- case ParseType:
+ case OrigParseType:
return evaluateParse( pd, code, false );
- case ParseStopType:
+ case OrigParseStopType:
return evaluateParse( pd, code, true );
case ConstructType:
return evaluateConstruct( pd, code );
- case Parser2Type:
+ case Parse2Type:
return evaluateParse2( pd, code );
case NewType:
return evaluateNew( pd, code );
@@ -2181,7 +2181,7 @@ void LangStmt::compileWhile( Compiler *pd, CodeVect &code ) const
pd->curLocalFrame->iterPopScope();
}
-void LangStmt::evaluateParserItems( Compiler *pd, CodeVect &code ) const
+void LangStmt::evaluateSend( Compiler *pd, CodeVect &code ) const
{
varRef->evaluate( pd, code );
@@ -2415,8 +2415,8 @@ void LangStmt::compile( Compiler *pd, CodeVect &code ) const
objField->refActive = false;
break;
}
- case ParserType: {
- evaluateParserItems( pd, code );
+ case SendType: {
+ evaluateSend( pd, code );
break;
}
}