summaryrefslogtreecommitdiff
path: root/colm/synthesis.cc
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@colm.net>2019-12-30 14:31:22 +0200
committerAdrian Thurston <thurston@colm.net>2019-12-30 14:31:22 +0200
commit06fbe467c0b900ce20705ad3b4eb8e8454b4a56e (patch)
tree4fbd70496081758802910bc8d4fb68cc336cb9ea /colm/synthesis.cc
parentd01f82860b3d7d4234726cd3e7d8c379e7a5633c (diff)
downloadcolm-06fbe467c0b900ce20705ad3b4eb8e8454b4a56e.tar.gz
colm: implemented IN_SET_RHS_VAL_WC and stubbed related
Was not possible to set a named RHS element in a tree. Added the _WC version and stubbed the others.
Diffstat (limited to 'colm/synthesis.cc')
-rw-r--r--colm/synthesis.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/colm/synthesis.cc b/colm/synthesis.cc
index e1d192b6..17c2440a 100644
--- a/colm/synthesis.cc
+++ b/colm/synthesis.cc
@@ -760,6 +760,14 @@ void LangVarRef::setField( Compiler *pd, CodeVect &code,
/* Maybe write out an offset. */
if ( el->useOffset() )
code.appendHalf( el->offset );
+ else if ( el->isRhsGet() ) {
+ /* Need to place the array computing the val. */
+ code.append( el->rhsVal.length() );
+ for ( Vector<RhsVal>::Iter rg = el->rhsVal; rg.lte(); rg++ ) {
+ code.append( rg->prodEl->production->prodNum );
+ code.append( rg->prodEl->pos );
+ }
+ }
}