5 #include <carl-common/util/mpl_utils.h>
7 #include <boost/mpl/vector.hpp>
8 #include <boost/spirit/include/support_unused.hpp>
10 #define PARSER_ENABLE_ARITHMETIC
11 #define PARSER_ENABLE_BITVECTOR
12 #define PARSER_ENABLE_UNINTERPRETED
16 namespace mpl = boost::mpl;
18 #ifdef PARSER_ENABLE_ARITHMETIC
19 #define ARITHMETIC(...) __VA_ARGS__
21 #define ARITHMETIC(...)
23 #ifdef PARSER_ENABLE_BITVECTOR
24 #define BITVECTOR(...) __VA_ARGS__
26 #define BITVECTOR(...)
28 #ifdef PARSER_ENABLE_UNINTERPRETED
29 #define UNINTERPRETED(...) __VA_ARGS__
31 #define UNINTERPRETED(...)
60 typedef mpl::vector<FormulaT, std::string>
TermTypes;
63 #ifdef PARSER_ENABLE_ARITHMETIC
68 typedef mpl::vector<Rational, FixedWidthConstant<Integer>>
ConstTypes;
70 typedef mpl::vector<carl::Variable, Rational, FixedWidthConstant<Integer>,
Poly, carl::MultivariateRoot<Poly>>
ExpressionTypes;
71 typedef mpl::vector<carl::Variable, Rational, FixedWidthConstant<Integer>,
Poly, carl::MultivariateRoot<Poly>>
TermTypes;
75 #ifdef PARSER_ENABLE_BITVECTOR
92 #ifdef PARSER_ENABLE_UNINTERPRETED
101 typedef mpl::vector<carl::UTerm, carl::UVariable>
TermTypes;
109 typedef carl::mpl_concatenate<
123 typedef
carl::mpl_concatenate<
137 typedef
carl::mpl_concatenate<
151 typedef
carl::mpl_concatenate<
165 typedef
carl::mpl_concatenate<
171 boost::spirit::unused_type
#define UNINTERPRETED(...)
carl::mpl_concatenate< CoreTheory::ConstTypes, >::type ConstTypes
List of all types of constants.
carl::BVVariable BVVariable
carl::mpl_variant_of< AttributeTypes >::type AttributeValue
Variant type for all attributes.
carl::mpl_variant_of< TermTypes >::type TermType
Variant type for all terms.
carl::mpl_concatenate< CoreTheory::VariableTypes, >::type VariableTypes
List of all types of variables.
carl::mpl_variant_of< ConstTypes >::type ConstType
Variant type for all constants.
carl::mpl_concatenate< TermTypes, boost::mpl::vector< SExpressionSequence< types::ConstType >, std::string, bool, boost::spirit::unused_type > >::type AttributeTypes
List of all types of attributes.
carl::BVConstraint BVConstraint
Typedef for bitvector constraint.
carl::mpl_concatenate< CoreTheory::ExpressionTypes, >::type ExpressionTypes
List of all types of expressions.
carl::BVTerm BVTerm
Typedef for bitvector term.
carl::mpl_variant_of< VariableTypes >::type VariableType
Variant type for all variables.
carl::mpl_concatenate< CoreTheory::TermTypes, >::type TermTypes
List of all types of terms.
carl::mpl_variant_of< ExpressionTypes >::type ExpressionType
Variant type for all expressions.
std::ostream & operator<<(std::ostream &os, OptimizationType ot)
QuantifierType type(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
Class to create the formulas for axioms.
carl::MultivariatePolynomial< Rational > Poly
Represents a constant of a fixed width.
bool operator<(const FixedWidthConstant &fwc) const
FixedWidthConstant(const T &value, std::size_t width)
Types of the arithmetic theory.
mpl::vector< carl::Variable > VariableTypes
mpl::vector< Rational, FixedWidthConstant< Integer > > ConstTypes
carl::mpl_variant_of< TermTypes >::type TermType
mpl::vector< carl::Variable, Rational, FixedWidthConstant< Integer >, Poly, carl::MultivariateRoot< Poly > > TermTypes
mpl::vector< carl::Variable, Rational, FixedWidthConstant< Integer >, Poly, carl::MultivariateRoot< Poly > > ExpressionTypes
Types of the theory of bitvectors.
mpl::vector< BVVariable > VariableTypes
mpl::vector< BVVariable, FixedWidthConstant< Integer >, BVTerm, BVConstraint > ExpressionTypes
carl::mpl_variant_of< TermTypes >::type TermType
mpl::vector< BVVariable, FixedWidthConstant< Integer >, BVTerm > ConstTypes
mpl::vector< BVVariable, FixedWidthConstant< Integer >, BVTerm, BVConstraint > TermTypes
Types of the core theory.
carl::mpl_variant_of< TermTypes >::type TermType
mpl::vector< FormulaT, std::string > ConstTypes
mpl::vector< FormulaT, std::string > TermTypes
mpl::vector< FormulaT, std::string > ExpressionTypes
mpl::vector< carl::Variable > VariableTypes
Types of the theory of equalities and uninterpreted functions.
mpl::vector< carl::UVariable > VariableTypes
mpl::vector< carl::UTerm > ConstTypes
carl::mpl_variant_of< TermTypes >::type TermType
mpl::vector< carl::UTerm, carl::UVariable > TermTypes
mpl::vector< carl::UTerm > ExpressionTypes