/*****************************************************************************/ /*! * \file lang.h * \brief Definition of input and output languages to CVC3 * * Author: Mehul Trivedi * * Created: Thu Jul 29 11:56:34 2004 * *
* * License to use, copy, modify, sell and/or distribute this software * and its documentation for any purpose is hereby granted without * royalty, subject to the terms and conditions defined in the \ref * LICENSE file provided with this distribution. * *
* */ /*****************************************************************************/ #ifndef _cvc3__lang_h_ #define _cvc3__lang_h_ #include "debug.h" namespace CVC3 { //! Different input languages typedef enum { //! Nice SAL-like language for manually written specs PRESENTATION_LANG, //! SMT-LIB format SMTLIB_LANG, //! Lisp-like format for automatically generated specs LISP_LANG, AST_LANG, /* @brief AST is only for printing the Expr abstract syntax tree in lisp format; there is no such input language per se */ SIMPLIFY_LANG, //! for output into Simplify format TPTP_LANG //! for output in TPTP format } InputLanguage; inline InputLanguage getLanguage(const std::string& lang) { if (lang.size() > 0) { if(lang[0] == 'p') return PRESENTATION_LANG; if(lang[0] == 'l') return LISP_LANG; if(lang[0] == 'a') return AST_LANG; if(lang[0] == 't') return TPTP_LANG; if(lang[0] == 's') { if (lang.size() > 1 && lang[1] == 'i') return SIMPLIFY_LANG; else return SMTLIB_LANG; } } throw Exception("Bad input language specified"); return AST_LANG; } } // end of namespace CVC3 #endif