diff --git a/src/odb/src/lefin/ArraySpacingParser.cpp b/src/odb/src/lefin/ArraySpacingParser.cpp index c567b939974..5e2bc626170 100644 --- a/src/odb/src/lefin/ArraySpacingParser.cpp +++ b/src/odb/src/lefin/ArraySpacingParser.cpp @@ -60,31 +60,31 @@ bool ArraySpacingParser::parse(const std::string& s) { rule_ = dbTechLayerArraySpacingRule::create(layer_); - qi::rule CUTCLASS + qi::rule cut_class_rule = (lit("CUTCLASS") >> _string[boost::bind(&ArraySpacingParser::setCutClass, this, _1)]); - qi::rule VIA_WIDTH + qi::rule via_width_rule = (lit("WIDTH") >> double_[boost::bind(&ArraySpacingParser::setViaWidth, this, _1)]); - qi::rule ARRAYCUTS + qi::rule array_cuts_rule = (lit("ARRAYCUTS") >> int_ >> lit("SPACING") >> double_)[boost::bind( &ArraySpacingParser::setArraySpacing, this, _1)]; - qi::rule WITHIN + qi::rule within_rule = (lit("WITHIN") >> double_ >> lit("ARRAYWIDTH") >> double_)[boost::bind(&ArraySpacingParser::setWithin, this, _1)]; - qi::rule LEF58_ARRAYSPACING - = (lit("ARRAYSPACING") >> -(CUTCLASS) + qi::rule lef58_array_spacing_rule + = (lit("ARRAYSPACING") >> -(cut_class_rule) >> -lit("PARALLELOVERLAP")[boost::bind( &dbTechLayerArraySpacingRule::setParallelOverlap, rule_, true)] >> -lit("LONGARRAY")[boost::bind( &dbTechLayerArraySpacingRule::setLongArray, rule_, true)] - >> -VIA_WIDTH >> -WITHIN >> lit("CUTSPACING") + >> -via_width_rule >> -within_rule >> lit("CUTSPACING") >> double_[boost::bind(&ArraySpacingParser::setCutSpacing, this, _1)] - >> +ARRAYCUTS >> lit(";")); + >> +array_cuts_rule >> lit(";")); auto first = s.begin(); auto last = s.end(); - bool valid = qi::phrase_parse(first, last, LEF58_ARRAYSPACING, space) + bool valid = qi::phrase_parse(first, last, lef58_array_spacing_rule, space) && first == last; if (!valid && rule_ != nullptr) { // fail if we did not get a full match @@ -93,4 +93,4 @@ bool ArraySpacingParser::parse(const std::string& s) return valid; } -} // namespace odb +} // namespace odb \ No newline at end of file diff --git a/src/odb/src/lefin/KeepOutZoneParser.cpp b/src/odb/src/lefin/KeepOutZoneParser.cpp index 9d131c8adb3..76afeea618c 100644 --- a/src/odb/src/lefin/KeepOutZoneParser.cpp +++ b/src/odb/src/lefin/KeepOutZoneParser.cpp @@ -38,12 +38,12 @@ void KeepOutZoneParser::parse(const std::string& s) // Parse a single keep-out zone rule // Format: KEEPOUTZONE CUTCLASS name [TO name] [EXCEPTEXACTALIGNED [SIDE|END] // spacing] -// EXTENSION side forward [ENDEXTENSION endside endforward SIDEEXTENSION -// sideside sideforward] SPIRALEXTENSION spacing ; +// EXTENSION side forward [ENDEXTENSION endside endforward +// SIDEEXTENSION sideside sideforward] SPIRALEXTENSION spacing ; bool KeepOutZoneParser::parseSubRule(const std::string& s) { rule_ = dbTechLayerKeepOutZoneRule::create(layer_); - qi::rule EXCEPTEXACTALIGNED + qi::rule except_exact_aligned_rule = (lit("EXCEPTEXACTALIGNED") >> -(lit("SIDE")[boost::bind( &dbTechLayerKeepOutZoneRule::setExceptAlignedSide, @@ -58,7 +58,7 @@ bool KeepOutZoneParser::parseSubRule(const std::string& s) this, _1, &odb::dbTechLayerKeepOutZoneRule::setAlignedSpacing)]); - qi::rule EXTENSION + qi::rule extension_rule = ((lit("EXTENSION") >> double_[boost::bind( &KeepOutZoneParser::setInt, this, @@ -89,22 +89,23 @@ bool KeepOutZoneParser::parseSubRule(const std::string& s) this, _1, &odb::dbTechLayerKeepOutZoneRule::setSideForwardExtension)])); - qi::rule SPIRALEXTENSION + qi::rule spiral_extension_rule = ((lit("SPIRALEXTENSION") >> double_[boost::bind( &KeepOutZoneParser::setInt, this, _1, &odb::dbTechLayerKeepOutZoneRule::setSpiralExtension)])); - qi::rule LEF58_KEEPOUTZONE + qi::rule lef58_keepout_zone_rule = (lit("KEEPOUTZONE") >> lit("CUTCLASS") >> _string[boost::bind( &dbTechLayerKeepOutZoneRule::setFirstCutClass, rule_, _1)] >> -(lit("TO") >> _string[boost::bind( &dbTechLayerKeepOutZoneRule::setSecondCutClass, rule_, _1)]) - >> -EXCEPTEXACTALIGNED >> EXTENSION >> SPIRALEXTENSION >> lit(";")); + >> -except_exact_aligned_rule >> extension_rule + >> spiral_extension_rule >> lit(";")); auto first = s.begin(); auto last = s.end(); - bool valid = qi::phrase_parse(first, last, LEF58_KEEPOUTZONE, space) + bool valid = qi::phrase_parse(first, last, lef58_keepout_zone_rule, space) && first == last; if (!valid && rule_ != nullptr) { // fail if we did not get a full match @@ -113,4 +114,4 @@ bool KeepOutZoneParser::parseSubRule(const std::string& s) return valid; } -} // namespace odb +} // namespace odb \ No newline at end of file