summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKshitij Bansal <kshitij@cs.nyu.edu>2014-07-10 13:11:36 -0400
committerKshitij Bansal <kshitij@cs.nyu.edu>2014-07-10 19:30:43 -0400
commitfb51c4e5494ad1dd71d6b343e20df3a5806ffc01 (patch)
treecd52c105ed0729eceeec9bcab344b90c6c83c3e4 /src
parent5ddaecbf5288bc7ecb551627ab11083264a63b31 (diff)
membership cvc token changed to `IS_IN' to avoid conflict with IN used for let
Diffstat (limited to 'src')
-rw-r--r--src/parser/antlr_input_imports.cpp3
-rw-r--r--src/parser/cvc/Cvc.g8
-rw-r--r--src/printer/cvc/cvc_printer.cpp2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/parser/antlr_input_imports.cpp b/src/parser/antlr_input_imports.cpp
index 07283f1af..f50dd5879 100644
--- a/src/parser/antlr_input_imports.cpp
+++ b/src/parser/antlr_input_imports.cpp
@@ -143,6 +143,9 @@ void AntlrInput::reportError(pANTLR3_BASE_RECOGNIZER recognizer) {
ss << "Missing end of file marker.";
} else if( ex->expecting == 0 ) {
ss << "Unexpected token: '" << tokenText((pANTLR3_COMMON_TOKEN)ex->token) << "'.";
+ if( std::string(tokenText((pANTLR3_COMMON_TOKEN)ex->token)) == std::string("IN") ) {
+ ss << " Did you mean: `IS_IN'?";
+ }
} else {
ss << "Missing " << tokenNames[ex->expecting] << ".";
}
diff --git a/src/parser/cvc/Cvc.g b/src/parser/cvc/Cvc.g
index 12a3fa6f2..0a440f299 100644
--- a/src/parser/cvc/Cvc.g
+++ b/src/parser/cvc/Cvc.g
@@ -91,6 +91,7 @@ tokens {
IN_TOK = 'IN';
INT_TOK = 'INT';
LET_TOK = 'LET';
+ MEMBER_TOK = 'IS_IN';
NOT_TOK = 'NOT';
OR_TOK = 'OR';
REAL_TOK = 'REAL';
@@ -288,7 +289,8 @@ int getOperatorPrecedence(int type) {
case LEQ_TOK:
case LT_TOK:
case GEQ_TOK:
- case GT_TOK: return 25;
+ case GT_TOK:
+ case MEMBER_TOK: return 25;
case EQUAL_TOK:
case DISEQUAL_TOK: return 26;
case NOT_TOK: return 27;
@@ -327,7 +329,7 @@ Kind getOperatorKind(int type, bool& negate) {
case GEQ_TOK: return kind::GEQ;
case LT_TOK: return kind::LT;
case LEQ_TOK: return kind::LEQ;
- case IN_TOK: return kind::MEMBER;
+ case MEMBER_TOK: return kind::MEMBER;
// arithmeticBinop
case PLUS_TOK: return kind::PLUS;
@@ -1442,7 +1444,7 @@ comparisonBinop[unsigned& op]
| GEQ_TOK
| LT_TOK
| LEQ_TOK
- | IN_TOK
+ | MEMBER_TOK
;
term[CVC4::Expr& f]
diff --git a/src/printer/cvc/cvc_printer.cpp b/src/printer/cvc/cvc_printer.cpp
index 41e87b809..9b3e83578 100644
--- a/src/printer/cvc/cvc_printer.cpp
+++ b/src/printer/cvc/cvc_printer.cpp
@@ -725,7 +725,7 @@ void CvcPrinter::toStream(std::ostream& out, TNode n, int depth, bool types, boo
opType = INFIX;
break;
case kind::MEMBER:
- op << "IN";
+ op << "IS_IN";
opType = INFIX;
break;
case kind::SINGLETON:
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback