Skip to content

Commit

Permalink
Support for multiple PROPVALUE while parsing elements.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpc-lip6 committed Nov 20, 2024
1 parent 46e39e6 commit ff9d736
Showing 1 changed file with 43 additions and 2 deletions.
45 changes: 43 additions & 2 deletions crlcore/src/ccore/gds/GdsParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1317,6 +1317,17 @@ namespace {
return _validSyntax;
}

while (_record.getType() == GdsRecord::PROPATTR) {
_stream >> _record;
if (_record.isPROPVALUE()) { _stream >> _record; }
else {
cdebug_log(101,1) << "Missing PROPVALUE" << endl;
_validSyntax = false;
cdebug_tabw(101,-1);
return _validSyntax;
}
}

if (not masterName.empty()) {
Transformation::Orientation orient = Transformation::Orientation::ID;
if (_angle == 90.0) orient = Transformation::Orientation::R1;
Expand Down Expand Up @@ -1616,6 +1627,16 @@ namespace {
}

_stream >> _record;
while ( _record.getType() == GdsRecord::PROPATTR) {
_stream >> _record;
if (_record.isPROPVALUE()) { _stream >> _record; }
else {
cdebug_log(101,1) << "Missing PROPVALUE" << endl;
_validSyntax = false;
cdebug_tabw(101,-1);
return;
}
}

if ( (_record.getType() == GdsRecord::ENDEL)
or (_record.getType() == GdsRecord::STRING)) {
Expand Down Expand Up @@ -1689,6 +1710,16 @@ namespace {
}

_stream >> _record;
while ( _record.getType() == GdsRecord::PROPATTR) {
_stream >> _record;
if (_record.isPROPVALUE()) { _stream >> _record; }
else {
cdebug_log(101,1) << "Missing PROPVALUE" << endl;
_validSyntax = false;
cdebug_tabw(101,-1);
return;
}
}

if ( (_record.getType() == GdsRecord::ENDEL)
or (_record.getType() == GdsRecord::STRING)) {
Expand Down Expand Up @@ -1782,6 +1813,16 @@ namespace {
points.push_back( Point( coordinates[i ]*_scale
, coordinates[i+1]*_scale ) );
_stream >> _record;
while ( _record.getType() == GdsRecord::PROPATTR) {
_stream >> _record;
if (_record.isPROPVALUE()) { _stream >> _record; }
else {
cdebug_log(101,1) << "Missing PROPVALUE" << endl;
_validSyntax = false;
cdebug_tabw(101,-1);
return;
}
}
if (_record.getType() != GdsRecord::ENDEL) {
_validSyntax = false;
return;
Expand Down Expand Up @@ -2067,7 +2108,7 @@ namespace CRL {

bool Gds::load ( Library* library, string gdsPath, uint32_t flags )
{
// if (library->getName() == "GDSBond")
// if (library->getName() == "working")
// DebugSession::open( 101, 110 );
UpdateSession::open();
Contact::disableCheckMinSize();
Expand All @@ -2083,7 +2124,7 @@ namespace CRL {
Contact::enableCheckMinSize();
UpdateSession::close();
Gds::setTopCellName( "" );
// if (library->getName() == "GDSBond")
// if (library->getName() == "working")
// DebugSession::close();

return true;
Expand Down

0 comments on commit ff9d736

Please sign in to comment.