diff options
author | Adrian Thurston <thurston@complang.org> | 2014-12-14 12:11:30 -0500 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2014-12-14 12:11:30 -0500 |
commit | 004cbe9e9c92932e62076f22a42f75e5332864af (patch) | |
tree | 70cb184435fa9dd2f544435106b71a9211baa871 /src/exports.cc | |
parent | 1ff234ec13503e4577a0ec8dce9727b2112bfc44 (diff) | |
download | colm-004cbe9e9c92932e62076f22a42f75e5332864af.tar.gz |
eliminated more of the bools from ObjectField
Diffstat (limited to 'src/exports.cc')
-rw-r--r-- | src/exports.cc | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/exports.cc b/src/exports.cc index 34c95f73..a50746d9 100644 --- a/src/exports.cc +++ b/src/exports.cc @@ -105,20 +105,11 @@ void Compiler::generateExports() ObjFieldList *objFieldList = lel->objectDef->objFieldList; for ( ObjFieldList::Iter ofi = *objFieldList; ofi.lte(); ofi++ ) { ObjectField *field = ofi->value; - if ( field->useOffset && field->typeRef != 0 ) { + if ( ( field->useOffset && field->typeRef != 0 ) || field->isRhsGet() ) { UniqueType *ut = field->typeRef->resolveType( this ); - if ( ut != 0 && ut->typeId == TYPE_TREE ) { + if ( ut != 0 && ut->typeId == TYPE_TREE ) out << " " << ut->langEl->refName << " " << field->name << "();\n"; - } - } - - if ( field->isRhsGet ) { - UniqueType *ut = field->typeRef->resolveType( this ); - - if ( ut != 0 && ut->typeId == TYPE_TREE ) { - out << " " << ut->langEl->refName << " " << field->name << "();\n"; - } } } } @@ -206,18 +197,19 @@ void Compiler::generateExportsImpl() UniqueType *ut = field->typeRef->resolveType( this ); if ( ut != 0 && ut->typeId == TYPE_TREE ) { - out << ut->langEl->refName << " " << lel->declName << "::" << field->name << - "() { return " << ut->langEl->refName << - "( __prg, colm_get_attr( __tree, " << field->offset << ") ); }\n"; + out << ut->langEl->refName << " " << lel->declName << + "::" << field->name << "() { return " << + ut->langEl->refName << "( __prg, colm_get_attr( __tree, " << + field->offset << ") ); }\n"; } } - if ( field->isRhsGet ) { + if ( field->isRhsGet() ) { UniqueType *ut = field->typeRef->resolveType( this ); if ( ut != 0 && ut->typeId == TYPE_TREE ) { - out << ut->langEl->refName << " " << lel->declName << "::" << field->name << - "() { static int a[] = {"; + out << ut->langEl->refName << " " << lel->declName << + "::" << field->name << "() { static int a[] = {"; /* Need to place the array computing the val. */ out << field->rhsVal.length(); @@ -241,7 +233,6 @@ void Compiler::generateExportsImpl() out << lel->repeatOf->refName << " " << lel->declName << "::" << " value" "() { return " << lel->repeatOf->refName << "( __prg, colm_get_repeat_val( __tree ) ); }\n"; - } if ( lel->isList ) { |