diff options
author | Adrian Thurston <thurston@complang.org> | 2014-07-06 10:46:07 -0400 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2014-07-06 10:46:07 -0400 |
commit | d977f91ff7f0bb1ead98f4aae2992bdf80e3e1af (patch) | |
tree | e85bcb9c4c2dc98f2d4a0d01a7906a16f8bacfdd /src/loadcolm.cc | |
parent | 007ebcd57612fe48a82a38c0cf0ff5e0a8c19666 (diff) | |
download | colm-d977f91ff7f0bb1ead98f4aae2992bdf80e3e1af.tar.gz |
added parse_tree for sending constructed trees (orig parse behaviour)
Diffstat (limited to 'src/loadcolm.cc')
-rw-r--r-- | src/loadcolm.cc | 16 |
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; } |