summaryrefslogtreecommitdiff
path: root/src/loadcolm.cc
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2014-07-06 10:46:07 -0400
committerAdrian Thurston <thurston@complang.org>2014-07-06 10:46:07 -0400
commitd977f91ff7f0bb1ead98f4aae2992bdf80e3e1af (patch)
treee85bcb9c4c2dc98f2d4a0d01a7906a16f8bacfdd /src/loadcolm.cc
parent007ebcd57612fe48a82a38c0cf0ff5e0a8c19666 (diff)
downloadcolm-d977f91ff7f0bb1ead98f4aae2992bdf80e3e1af.tar.gz
added parse_tree for sending constructed trees (orig parse behaviour)
Diffstat (limited to 'src/loadcolm.cc')
-rw-r--r--src/loadcolm.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/loadcolm.cc b/src/loadcolm.cc
index e6dc60aa..36bc5557 100644
--- a/src/loadcolm.cc
+++ b/src/loadcolm.cc
@@ -1705,7 +1705,19 @@ struct LoadColm
FieldInitVect *init = walkOptFieldInit( codeFactor.opt_field_init() );
ConsItemList *list = walkAccumulate( codeFactor.accumulate() );
- expr = parseCmd( codeFactor.PARSE().loc(), false, objField,
+ expr = parseCmd( codeFactor.PARSE().loc(), false, false, objField,
+ typeRef, init, list );
+ break;
+ }
+ case code_factor::_ParseTree: {
+ /* The type we are parsing. */
+ type_ref typeRefTree = codeFactor.type_ref();
+ TypeRef *typeRef = walkTypeRef( typeRefTree );
+ ObjectField *objField = walkOptCapture( codeFactor.opt_capture() );
+ FieldInitVect *init = walkOptFieldInit( codeFactor.opt_field_init() );
+ ConsItemList *list = walkAccumulate( codeFactor.accumulate() );
+
+ expr = parseCmd( codeFactor.PARSE_TREE().loc(), true, false, objField,
typeRef, init, list );
break;
}
@@ -1717,7 +1729,7 @@ struct LoadColm
FieldInitVect *init = walkOptFieldInit( codeFactor.opt_field_init() );
ConsItemList *list = walkAccumulate( codeFactor.accumulate() );
- expr = parseCmd( codeFactor.PARSE_STOP().loc(), true, objField,
+ expr = parseCmd( codeFactor.PARSE_STOP().loc(), false, true, objField,
typeRef, init, list );
break;
}