From 752dda42527913ecca1add007978e65dcd2c4256 Mon Sep 17 00:00:00 2001 From: gereon Date: Tue, 12 Mar 2013 12:54:51 +0100 Subject: [PATCH] fixing error with difference operator in freeIdentifier --- src/parser/PrismParser.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/parser/PrismParser.cpp b/src/parser/PrismParser.cpp index 7b17e5588..e9bd368eb 100644 --- a/src/parser/PrismParser.cpp +++ b/src/parser/PrismParser.cpp @@ -56,9 +56,9 @@ struct PrismParser::PrismGrammar : qi::grammar> *(qi::alnum | qi::char_('_'))) - allConstantNames_ - keywords_]]; + identifierName %= qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]][ qi::_pass = phoenix::bind(&PrismGrammar::isIdentifier, this, qi::_1) ]; identifierName.name("identifier"); - freeIdentifierName %= qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_'))) - booleanVariableNames_ - integerVariableNames_ - allConstantNames_ - labelNames_ - moduleNames_ - keywords_]]; + freeIdentifierName %= qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]][ qi::_pass = phoenix::bind(&PrismGrammar::isFreeIdentifier, this, qi::_1) ]; freeIdentifierName.name("unused identifier"); // This block defines all literal expressions. @@ -254,14 +254,32 @@ struct PrismParser::PrismGrammar : qi::grammar identifierName > *(variableDefinition(qi::_a, qi::_b, qi::_c, qi::_d)) > +commandDefinition > qi::lit("endmodule"))[phoenix::bind(moduleNames_.add, qi::_1, qi::_1), qi::_val = phoenix::construct(qi::_1, qi::_a, qi::_b, qi::_c, qi::_d, qi::_2)]; - moduleDefinition.name("module"); } // The starting point of the grammar.