Fixed parsing or liberty file statements such as 'clocked_on : "(!CLK)";'

Patch by Tim Edwards
This commit is contained in:
Clifford Wolf 2013-10-16 06:32:35 +02:00
parent a12d39bc86
commit 845590aa8e
1 changed files with 4 additions and 1 deletions

View File

@ -69,12 +69,15 @@ static bool parse_pin(LibertyAst *cell, LibertyAst *attr, std::string &pin_name,
std::string value = attr->value;
for (size_t pos = value.find_first_of("\" \t"); pos != std::string::npos; pos = value.find_first_of("\" \t"))
for (size_t pos = value.find_first_of("\" \t()"); pos != std::string::npos; pos = value.find_first_of("\" \t()"))
value.erase(pos, 1);
if (value[value.size()-1] == '\'') {
pin_name = value.substr(0, value.size()-1);
pin_pol = false;
} else if (value[0] == '!') {
pin_name = value.substr(1, value.size()-1);
pin_pol = false;
} else {
pin_name = value;
pin_pol = true;