merge from CC work: pieces of the parser need to be declared to throw AssertionExcept...
authorMorgan Deters <mdeters@gmail.com>
Tue, 6 Jul 2010 15:52:10 +0000 (15:52 +0000)
committerMorgan Deters <mdeters@gmail.com>
Tue, 6 Jul 2010 15:52:10 +0000 (15:52 +0000)
src/parser/antlr_input.cpp
src/parser/antlr_input.h
src/parser/cvc/cvc_input.cpp
src/parser/cvc/cvc_input.h
src/parser/input.cpp
src/parser/input.h
src/parser/parser_options.h
src/parser/smt/smt_input.cpp
src/parser/smt/smt_input.h
src/parser/smt2/smt2_input.cpp
src/parser/smt2/smt2_input.h

index 740d7fae592d8fe3a3e027d3265bfb41bf8745a6..b919c3bd53c10d4ce8e2de08b01ff7cd47a64fa7 100644 (file)
@@ -63,7 +63,7 @@ pANTLR3_INPUT_STREAM AntlrInputStream::getAntlr3InputStream() const {
 AntlrInputStream* 
 AntlrInputStream::newFileInputStream(const std::string& name, 
                                      bool useMmap)
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
   pANTLR3_INPUT_STREAM input = NULL;
   if( useMmap ) {
     input = MemoryMappedInputBufferNew(name);
@@ -79,7 +79,7 @@ AntlrInputStream::newFileInputStream(const std::string& name,
 AntlrInputStream* 
 AntlrInputStream::newStreamInputStream(std::istream& input, 
                                        const std::string& name)
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
 
   // Since these are all NULL on entry, realloc will be called
   char *basep = NULL, *boundp = NULL, *cp = NULL;
@@ -126,7 +126,7 @@ AntlrInputStream::newStreamInputStream(std::istream& input,
 AntlrInputStream* 
 AntlrInputStream::newStringInputStream(const std::string& input, 
                                        const std::string& name)
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
   char* inputStr = strdup(input.c_str());
   char* nameStr = strdup(name.c_str());
   AlwaysAssert( inputStr!=NULL && nameStr!=NULL );
@@ -159,6 +159,7 @@ AntlrInput* AntlrInput::newInput(InputLanguage lang, AntlrInputStream& inputStre
   default:
     Unhandled(lang);
   }
+
   return input;
 }
 
@@ -225,7 +226,7 @@ void AntlrInput::lexerError(pANTLR3_BASE_RECOGNIZER recognizer) {
 }
 
 void AntlrInput::parseError(const std::string& message)
-    throw (ParserException) {
+  throw (ParserException, AssertionException) {
   Debug("parser") << "Throwing exception: "
       << getInputStream()->getName() << ":"
       << d_lexer->getLine(d_lexer) << "."
index 0d5fda89ac4f99836a3db3d5afb599c137d06561..940835a7efb884743cdfa8296281de87f52eb1de 100644 (file)
@@ -74,12 +74,12 @@ public:
    */
   static AntlrInputStream* newFileInputStream(const std::string& name, 
                                               bool useMmap = false)
-    throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 
   /** Create an input from an istream. */
   static AntlrInputStream* newStreamInputStream(std::istream& input, 
                                                 const std::string& name)
-    throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 
   /** Create a string input.
    *
@@ -88,7 +88,7 @@ public:
    */
   static AntlrInputStream* newStringInputStream(const std::string& input, 
                                                 const std::string& name)
-    throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 };
 
 class Parser;
@@ -192,7 +192,8 @@ protected:
   /**
    * Throws a <code>ParserException</code> with the given message.
    */
-  void parseError(const std::string& msg) throw (ParserException);
+  void parseError(const std::string& msg)
+    throw (ParserException, AssertionException);
 
   /** Set the ANTLR3 lexer for this input. */
   void setAntlr3Lexer(pANTLR3_LEXER pLexer);
index 2b99f9a87560480f55cf9fabafe8710864926f3c..6b38abaab9381cb0db28ce82616f47c9d2f9cb9e 100644 (file)
@@ -58,11 +58,13 @@ CvcInput::~CvcInput() {
   d_pCvcParser->free(d_pCvcParser);
 }
 
-Command* CvcInput::parseCommand() throw (ParserException) {
+Command* CvcInput::parseCommand()
+  throw (ParserException, AssertionException) {
   return d_pCvcParser->parseCommand(d_pCvcParser);
 }
 
-Expr CvcInput::parseExpr() throw (ParserException) {
+Expr CvcInput::parseExpr()
+  throw (ParserException, AssertionException) {
   return d_pCvcParser->parseExpr(d_pCvcParser);
 }
 
index 64c6beea7c4a31cab93797bda5573d07f1786dfe..6a37680e8b7d627a728949a8d0a259175f490193 100644 (file)
@@ -71,14 +71,14 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Command* parseCommand() throw(ParserException);
+  Command* parseCommand() throw(ParserException, AssertionException);
 
   /** Parse an expression from the input. Returns a null <code>Expr</code>
    * if there is no expression there to parse.
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Expr parseExpr() throw(ParserException);
+  Expr parseExpr() throw(ParserException, AssertionException);
 
 private:
 
index 2c4671b93d2091ff27aa5ffc54f294bc42eee48e..36e96516f124fc234bf33fe98cccd551d2ce609b 100644 (file)
@@ -57,7 +57,7 @@ InputStream *Input::getInputStream() {
 Input* Input::newFileInput(InputLanguage lang,
                            const std::string& filename,
                            bool useMmap)
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
   AntlrInputStream *inputStream = 
     AntlrInputStream::newFileInputStream(filename,useMmap);
   return AntlrInput::newInput(lang,*inputStream);
@@ -66,7 +66,7 @@ Input* Input::newFileInput(InputLanguage lang,
 Input* Input::newStreamInput(InputLanguage lang, 
                              std::istream& input, 
                              const std::string& name) 
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
   AntlrInputStream *inputStream = 
     AntlrInputStream::newStreamInputStream(input,name);
   return AntlrInput::newInput(lang,*inputStream);
@@ -75,7 +75,7 @@ Input* Input::newStreamInput(InputLanguage lang,
 Input* Input::newStringInput(InputLanguage lang,
                              const std::string& str,
                              const std::string& name)
-  throw (InputStreamException) {
+  throw (InputStreamException, AssertionException) {
   AntlrInputStream *inputStream = AntlrInputStream::newStringInputStream(str,name);
   return AntlrInput::newInput(lang,*inputStream);
 }
index ceec1c8bd949768f940eb53cee243b34f83eb96c..62015ba51a478b4e6134abd6d7275d3a00593466 100644 (file)
@@ -108,7 +108,7 @@ class CVC4_PUBLIC Input {
   static Input* newFileInput(InputLanguage lang, 
                              const std::string& filename, 
                              bool useMmap=false)
-      throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 
   /** Create an input for the given stream.
    *
@@ -119,7 +119,7 @@ class CVC4_PUBLIC Input {
   static Input* newStreamInput(InputLanguage lang, 
                                std::istream& input, 
                                const std::string& name) 
-    throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 
   /** Create an input for the given string
    *
@@ -130,7 +130,7 @@ class CVC4_PUBLIC Input {
   static Input* newStringInput(InputLanguage lang, 
                                const std::string& input, 
                                const std::string& name)
-    throw (InputStreamException);
+    throw (InputStreamException, AssertionException);
 
 public:
 
@@ -154,12 +154,14 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  virtual Command* parseCommand() throw(ParserException) = 0;
+  virtual Command* parseCommand()
+    throw (ParserException, AssertionException) = 0;
 
   /**
    * Throws a <code>ParserException</code> with the given message.
    */
-  virtual void parseError(const std::string& msg) throw (ParserException) = 0;
+  virtual void parseError(const std::string& msg)
+    throw (ParserException, AssertionException) = 0;
 
   /** Parse an
    * expression from the input by invoking the implementation-specific
@@ -168,7 +170,8 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  virtual Expr parseExpr() throw(ParserException) = 0;
+  virtual Expr parseExpr()
+    throw (ParserException, AssertionException) = 0;
 
   /** Set the Parser object for this input. */
   virtual void setParser(Parser& parser) = 0;
index 85994c52cb15d0c9883bb9fa68ade7c67c7455c1..b3fd203e25d9ee74caedb99441b767dfad8a4276 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef __CVC4__PARSER__PARSER_OPTIONS_H
 #define __CVC4__PARSER__PARSER_OPTIONS_H
 
+#include <iostream>
+
 namespace CVC4 {
 namespace parser {
 
@@ -36,6 +38,27 @@ enum InputLanguage {
   LANG_AUTO
 };/* enum InputLanguage */
 
+inline std::ostream& operator<<(std::ostream& out, InputLanguage lang) {
+  switch(lang) {
+  case LANG_SMTLIB:
+    out << "LANG_SMTLIB";
+    break;
+  case LANG_SMTLIB_V2:
+    out << "LANG_SMTLIB_V2";
+    break;
+  case LANG_CVC4:
+    out << "LANG_CVC4";
+    break;
+  case LANG_AUTO:
+    out << "LANG_AUTO";
+    break;
+  default:
+    out << "undefined_language";
+  }
+
+  return out;
+}
+
 }/* CVC4::parser namespace */
 }/* CVC4 namespace */
 
index c19eca0801514b7dace944a8841d19cd6478fb5e..42843bac2b55109f225561327b3fb2ab87dd4b36 100644 (file)
@@ -59,11 +59,13 @@ SmtInput::~SmtInput() {
   d_pSmtParser->free(d_pSmtParser);
 }
 
-Command* SmtInput::parseCommand() throw (ParserException) {
+Command* SmtInput::parseCommand()
+  throw (ParserException, AssertionException) {
   return d_pSmtParser->parseCommand(d_pSmtParser);
 }
 
-Expr SmtInput::parseExpr() throw (ParserException) {
+Expr SmtInput::parseExpr()
+  throw (ParserException, AssertionException) {
   return d_pSmtParser->parseExpr(d_pSmtParser);
 }
 
index 42581ec1caa619b7fbcf8eb7899f1777acef7cf0..f3f4619152a35037ca13daff05ee6029060e4692 100644 (file)
@@ -72,7 +72,7 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Command* parseCommand() throw(ParserException);
+  Command* parseCommand() throw(ParserException, AssertionException);
 
   /**
    * Parse an expression from the input. Returns a null
@@ -80,7 +80,7 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Expr parseExpr() throw(ParserException);
+  Expr parseExpr() throw(ParserException, AssertionException);
 
 private:
 
index 5156ea2e53aeaf9e4f612b5a65ed3f96d6925fea..e0bcadd618f754249ab4cc6af13008208116da18 100644 (file)
@@ -60,11 +60,13 @@ Smt2Input::~Smt2Input() {
   d_pSmt2Parser->free(d_pSmt2Parser);
 }
 
-Command* Smt2Input::parseCommand() throw (ParserException) {
+Command* Smt2Input::parseCommand()
+  throw (ParserException, AssertionException) {
   return d_pSmt2Parser->parseCommand(d_pSmt2Parser);
 }
 
-Expr Smt2Input::parseExpr() throw (ParserException) {
+Expr Smt2Input::parseExpr()
+  throw (ParserException, AssertionException) {
   return d_pSmt2Parser->parseExpr(d_pSmt2Parser);
 }
 
index c9d0d5ec573789fed47ebbdcc7af761546b67b76..45986948a918797ef341250c0b7a21a5154cbdaf 100644 (file)
@@ -81,7 +81,7 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Command* parseCommand() throw(ParserException);
+  Command* parseCommand() throw(ParserException, AssertionException);
 
   /**
    * Parse an expression from the input. Returns a null
@@ -89,7 +89,7 @@ protected:
    *
    * @throws ParserException if an error is encountered during parsing.
    */
-  Expr parseExpr() throw(ParserException);
+  Expr parseExpr() throw(ParserException, AssertionException);
 
 };/* class Smt2Input */