aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/SMT
diff options
context:
space:
mode:
authorCristian Cadar <cristic@cs.stanford.edu>2009-06-09 07:57:12 +0000
committerCristian Cadar <cristic@cs.stanford.edu>2009-06-09 07:57:12 +0000
commit53c6df7941e83e7e4993eba8ee39bbc81cdd3fe3 (patch)
treeb3f544871b831669fbf9f6ae4399cee2bee4c896 /lib/SMT
parent7ef508afbc4651362f05e0989f7a1700f50a5f22 (diff)
downloadklee-53c6df7941e83e7e4993eba8ee39bbc81cdd3fe3.tar.gz
Made expression nodes int the SMT parser be pointers to ExprHandle.
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@73131 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/SMT')
-rw-r--r--lib/SMT/parser.cpp3
-rw-r--r--lib/SMT/parser.h4
-rw-r--r--lib/SMT/parser_temp.h5
-rw-r--r--lib/SMT/smtlib.y2
-rw-r--r--lib/SMT/smtlib_lexer.cpp30
-rw-r--r--lib/SMT/smtlib_parser.cpp2
-rw-r--r--lib/SMT/smtlib_parser.h2
7 files changed, 15 insertions, 33 deletions
diff --git a/lib/SMT/parser.cpp b/lib/SMT/parser.cpp
index b8191b50..9284d7d0 100644
--- a/lib/SMT/parser.cpp
+++ b/lib/SMT/parser.cpp
@@ -30,7 +30,6 @@ using namespace std;
// The communication entry points of the actual parsers
-
// for smtlib language (smtlib.y and smtlib.lex)
extern int smtlibparse();
extern void *smtlib_createBuffer(int);
@@ -121,7 +120,7 @@ namespace CVC3 {
}
- Expr Parser::next() {
+ klee::expr::ExprHandle* Parser::next() {
// If no more commands are available, return a Null Expr
if(d_data->temp.done) return NULL;//Expr();
// Set the global var so the parser uses the right stream and EM
diff --git a/lib/SMT/parser.h b/lib/SMT/parser.h
index c55d7eda..c061841f 100644
--- a/lib/SMT/parser.h
+++ b/lib/SMT/parser.h
@@ -29,8 +29,6 @@
#define _cvc3__parser_h_
namespace CVC3 {
-
- //class Expr;
// Internal parser state and other data
class ParserData;
@@ -50,7 +48,7 @@ namespace CVC3 {
// Destructor
~Parser();
// Read the next command.
- Expr next();
+ klee::expr::ExprHandle* next();
// Check if we are done (end of input has been reached)
bool done() const;
// The same check can be done by using the class Parser's value as
diff --git a/lib/SMT/parser_temp.h b/lib/SMT/parser_temp.h
index d6ad91a2..afd8af21 100644
--- a/lib/SMT/parser_temp.h
+++ b/lib/SMT/parser_temp.h
@@ -23,8 +23,7 @@
#ifndef _cvc3__parser_temp_h_
#define _cvc3__parser_temp_h_
-//#include "expr.h"
-#define Expr void*
+#include "expr/Parser.h"
#include <sstream>
#include <vector>
@@ -48,7 +47,7 @@ namespace CVC3 {
// File name
std::string fileName;
// The last parsed Expr
- Expr expr;
+ klee::expr::ExprHandle* expr;
// Whether we are done or not
bool done;
// Whether we are running interactive
diff --git a/lib/SMT/smtlib.y b/lib/SMT/smtlib.y
index 10ed3c89..be1c5143 100644
--- a/lib/SMT/smtlib.y
+++ b/lib/SMT/smtlib.y
@@ -76,7 +76,7 @@ int smtliberror(const char *s)
%union {
std::string *str;
std::vector<std::string> *strvec;
- Expr node;
+ klee::expr::ExprHandle* node;
std::vector<void*> *vec;
};
diff --git a/lib/SMT/smtlib_lexer.cpp b/lib/SMT/smtlib_lexer.cpp
index c25e7f9a..f8a2b329 100644
--- a/lib/SMT/smtlib_lexer.cpp
+++ b/lib/SMT/smtlib_lexer.cpp
@@ -73,6 +73,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -103,8 +104,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -161,15 +160,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -757,7 +748,7 @@ static std::string _string_lit;
-#line 761 "smtlib_lexer.cpp"
+#line 752 "smtlib_lexer.cpp"
#define INITIAL 0
#define COMMENT 1
@@ -840,12 +831,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -853,7 +839,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( smtlibtext, smtlibleng, 1, smtlibout )) {} } while (0)
+#define ECHO fwrite( smtlibtext, smtlibleng, 1, smtlibout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -864,7 +850,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ unsigned n; \
for ( n = 0; n < max_size && \
(c = getc( smtlibin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -949,7 +935,7 @@ YY_DECL
#line 126 "smtlib.lex"
-#line 953 "smtlib_lexer.cpp"
+#line 939 "smtlib_lexer.cpp"
if ( !(yy_init) )
{
@@ -1404,7 +1390,7 @@ YY_RULE_SETUP
#line 221 "smtlib.lex"
ECHO;
YY_BREAK
-#line 1408 "smtlib_lexer.cpp"
+#line 1394 "smtlib_lexer.cpp"
case YY_END_OF_BUFFER:
{
@@ -2128,8 +2114,8 @@ YY_BUFFER_STATE smtlib_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to smtliblex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
diff --git a/lib/SMT/smtlib_parser.cpp b/lib/SMT/smtlib_parser.cpp
index e7d0e1d6..c97a95ff 100644
--- a/lib/SMT/smtlib_parser.cpp
+++ b/lib/SMT/smtlib_parser.cpp
@@ -275,7 +275,7 @@ typedef union YYSTYPE
{
std::string *str;
std::vector<std::string> *strvec;
- Expr node;
+ klee::expr::ExprHandle* node;
std::vector<void*> *vec;
}
/* Line 187 of yacc.c. */
diff --git a/lib/SMT/smtlib_parser.h b/lib/SMT/smtlib_parser.h
index c587a126..1544c35e 100644
--- a/lib/SMT/smtlib_parser.h
+++ b/lib/SMT/smtlib_parser.h
@@ -156,7 +156,7 @@ typedef union YYSTYPE
{
std::string *str;
std::vector<std::string> *strvec;
- Expr node;
+ klee::expr::ExprHandle* node;
std::vector<void*> *vec;
}
/* Line 1489 of yacc.c. */