SMTStabilizer API
Public API documentation for SMTStabilizer
Loading...
Searching...
No Matches
stabilizer::parser Namespace Reference

Classes

class  BitVectorUtils
 Bitvector conversion and arithmetic helpers on SMT bitstring forms. More...
 
class  ConversionUtils
 Conversion and escaping helpers for parser I/O and literals. More...
 
class  DAGNode
 
struct  ExprFrame
 
class  FloatingPointUtils
 Floating-point conversion helpers used by parser evaluation paths. More...
 
class  GlobalOptions
 
class  HighPrecisionInteger
 
class  HighPrecisionReal
 
class  Interval
 
struct  LetContext
 
class  MathUtils
 Numeric helper wrappers shared by parser-side evaluation and rewrite. More...
 
struct  NodeEqual
 
struct  NodeHash
 
class  NodeManager
 
class  Number
 
struct  PairNodePtrEqual
 
struct  PairNodePtrHash
 
class  Parser
 
class  Sort
 
class  SortManager
 
class  StringUtils
 String theory helper functions for SMT string operators. More...
 
class  TypeChecker
 Lexical classifiers for SMT-LIB literals and token shapes. More...
 
class  Value
 

Typedefs

typedef std::shared_ptr< DAGNodeNodePtr
 
typedef HighPrecisionInteger Integer
 
typedef HighPrecisionReal Real
 
typedef std::shared_ptr< ParserParserPtr
 
typedef std::shared_ptr< SortSortPtr
 
typedef std::shared_ptr< SortManagerSortManagerPtr
 

Enumerations

enum class  FrameState {
  Start , ReadingHead , ProcessingSpecial , ProcessingParams ,
  ProcessingBindings , ProcessingLetBody , ProcessingQuantVars , ProcessingQuantBody ,
  ProcessingParamFuncArgs , ProcessingParamFuncParams , Finish
}
 
enum class  SpecialType {
  None , Let , Exists , Forall ,
  ParamFunc , BV , Underscore
}
 
enum class  State { UNKNOWN = -1 , UNSAT , SAT }
 
enum class  NODE_KIND {
  NT_UNKNOWN = 0 , NT_ERROR , NT_NULL , NT_UF_NAME ,
  NT_PATTERN , NT_NO_PATTERN , NT_WEIGHT , NT_ATTRIBUTE ,
  NT_CONST , NT_VAR , NT_CONST_TRUE , NT_CONST_FALSE ,
  NT_TEMP_VAR , NT_CONST_ARRAY , NT_PLACEHOLDER_VAR , NT_AND ,
  NT_OR , NT_NOT , NT_IMPLIES , NT_XOR ,
  NT_EQ , NT_DISTINCT , NT_ITE , NT_ADD ,
  NT_NEG , NT_SUB , NT_MUL , NT_DT_FUN_APPLY ,
  NT_IAND , NT_POW2 , NT_POW , NT_DIV_INT ,
  NT_DIV_REAL , NT_MOD , NT_ABS , NT_SQRT ,
  NT_SAFESQRT , NT_CEIL , NT_FLOOR , NT_ROUND ,
  NT_EXP , NT_LN , NT_LG , NT_LB ,
  NT_LOG , NT_SIN , NT_COS , NT_TAN ,
  NT_COT , NT_SEC , NT_CSC , NT_ASIN ,
  NT_ACOS , NT_ATAN , NT_ACOT , NT_ASEC ,
  NT_ACSC , NT_SINH , NT_COSH , NT_TANH ,
  NT_ASECH , NT_ACSCH , NT_ACOTH , NT_ATAN2 ,
  NT_ASINH , NT_ACOSH , NT_ATANH , NT_SECH ,
  NT_CSCH , NT_COTH , NT_LE , NT_LT ,
  NT_GE , NT_GT , NT_TO_INT , NT_TO_REAL ,
  NT_IS_INT , NT_IS_DIVISIBLE , NT_IS_PRIME , NT_IS_EVEN ,
  NT_IS_ODD , NT_GCD , NT_LCM , NT_FACT ,
  NT_BV_NOT , NT_BV_NEG , NT_BV_AND , NT_BV_OR ,
  NT_BV_XOR , NT_BV_NAND , NT_BV_NOR , NT_BV_XNOR ,
  NT_BV_COMP , NT_BV_ADD , NT_BV_SUB , NT_BV_MUL ,
  NT_BV_UDIV , NT_BV_SDIV , NT_BV_UREM , NT_BV_SREM ,
  NT_BV_UMOD , NT_BV_SMOD , NT_BV_SHL , NT_BV_LSHR ,
  NT_BV_ASHR , NT_BV_ULT , NT_BV_ULE , NT_BV_UGT ,
  NT_BV_UGE , NT_BV_SLT , NT_BV_SLE , NT_BV_SGT ,
  NT_BV_SGE , NT_BV_CONCAT , NT_BV_TO_NAT , NT_NAT_TO_BV ,
  NT_BV_TO_INT , NT_INT_TO_BV , NT_UBV_TO_INT , NT_SBV_TO_INT ,
  NT_BV_EXTRACT , NT_BV_REPEAT , NT_BV_ZERO_EXT , NT_BV_SIGN_EXT ,
  NT_BV_ROTATE_LEFT , NT_BV_ROTATE_RIGHT , NT_FP_ADD , NT_FP_SUB ,
  NT_FP_MUL , NT_FP_DIV , NT_FP_ABS , NT_FP_NEG ,
  NT_FP_REM , NT_FP_FMA , NT_FP_SQRT , NT_FP_ROUND_TO_INTEGRAL ,
  NT_FP_MIN , NT_FP_MAX , NT_FP_LE , NT_FP_LT ,
  NT_FP_GE , NT_FP_GT , NT_FP_EQ , NT_FP_TO_UBV ,
  NT_FP_TO_SBV , NT_FP_TO_REAL , NT_FP_TO_FP , NT_FP_TO_FP_UNSIGNED ,
  NT_FP_IS_NORMAL , NT_FP_IS_SUBNORMAL , NT_FP_IS_ZERO , NT_FP_IS_INF ,
  NT_FP_IS_NAN , NT_FP_IS_NEG , NT_FP_IS_POS , NT_SELECT ,
  NT_STORE , NT_DT_TESTER , NT_DT_UPDATER , NT_TUPLE_CONSTRUCTOR ,
  NT_TUPLE_UNIT , NT_TUPLE_SELECT , NT_TUPLE_UPDATE , NT_TUPLE_PROJECT ,
  NT_STR_LEN , NT_STR_CONCAT , NT_STR_SUBSTR , NT_STR_INDEXOF ,
  NT_STR_CHARAT , NT_STR_UPDATE , NT_STR_REPLACE , NT_STR_REPLACE_ALL ,
  NT_STR_REPLACE_REG , NT_STR_REPLACE_REG_ALL , NT_STR_INDEXOF_REG , NT_STR_TO_LOWER ,
  NT_STR_TO_UPPER , NT_STR_REV , NT_STR_SPLIT , NT_STR_SPLIT_AT ,
  NT_STR_SPLIT_REST , NT_STR_NUM_SPLITS , NT_STR_SPLIT_AT_RE , NT_STR_SPLIT_REST_RE ,
  NT_STR_NUM_SPLITS_RE , NT_STR_LT , NT_STR_LE , NT_STR_GT ,
  NT_STR_GE , NT_STR_IN_REG , NT_STR_CONTAINS , NT_STR_IS_DIGIT ,
  NT_STR_PREFIXOF , NT_STR_SUFFIXOF , NT_STR_FROM_INT , NT_STR_TO_INT ,
  NT_STR_TO_REG , NT_STR_TO_CODE , NT_STR_FROM_CODE , NT_REG_CONCAT ,
  NT_REG_UNION , NT_REG_INTER , NT_REG_DIFF , NT_REG_STAR ,
  NT_REG_PLUS , NT_REG_OPT , NT_REG_RANGE , NT_REG_REPEAT ,
  NT_REG_COMPLEMENT , NT_REG_LOOP , NT_FUNC_APPLY , NT_FUNC_DEC ,
  NT_FUNC_DEF , NT_FUNC_REC , NT_FUNC_REC_APPLY , NT_BV_NEGO ,
  NT_BV_UADDO , NT_BV_SADDO , NT_BV_UMULO , NT_BV_SMULO ,
  NT_BV_UDIVO , NT_BV_SDIVO , NT_BV_UREMO , NT_BV_SREMO ,
  NT_BV_UMODO , NT_BV_SMODO , NT_EQ_BOOL , NT_EQ_OTHER ,
  NT_DISTINCT_BOOL , NT_DISTINCT_OTHER , NT_UF_APPLY , NT_CONST_PI ,
  NT_CONST_E , NT_INFINITY , NT_NAN , NT_EPSILON ,
  NT_POS_INFINITY , NT_NEG_INFINITY , NT_POS_EPSILON , NT_NEG_EPSILON ,
  NT_REG_NONE , NT_REG_ALL , NT_REG_ALLCHAR , NT_MAX ,
  NT_MIN , NT_LET , NT_LET_CHAIN , NT_LET_BIND_VAR ,
  NT_LET_BIND_VAR_LIST , NT_FORALL , NT_EXISTS , NT_QUANT_VAR ,
  NT_FUNC_PARAM , NT_ROOT_OBJ , NT_ROOT_OF_WITH_INTERVAL , NUM_KINDS
}
 
enum class  SCAN_MODE {
  SM_COMMON , SM_SYMBOL , SM_COMP_SYM , SM_COMMENT ,
  SM_STRING
}
 
enum class  LET_MODE { LM_NON_LET , LM_START_LET , LM_IN_LET }
 
enum class  KEYWORD {
  KW_ID , KW_WEIGHT , KW_COMP , KW_EPSILON ,
  KW_M , KW_OPT_KIND , KW_NAMED , KW_PATTERN ,
  KW_NO_PATTERN , KW_QID , KW_SKOLEMID , KW_LBLPOS ,
  KW_LBLNEG , KW_NULL
}
 
enum class  CMD_TYPE {
  CT_UNKNOWN , CT_EOF , CT_ASSERT , CT_CHECK_SAT ,
  CT_CHECK_SAT_ASSUMING , CT_DECLARE_CONST , CT_DECLARE_FUN , CT_DECLARE_SORT ,
  CT_DEFINE_FUN , CT_DEFINE_FUN_REC , CT_DEFINE_FUNS_REC , CT_DEFINE_SORT ,
  CT_ECHO , CT_EXIT , CT_GET_ASSERTIONS , CT_GET_ASSIGNMENT ,
  CT_GET_INFO , CT_GET_MODEL , CT_GET_OPTION , CT_GET_PROOF ,
  CT_GET_UNSAT_ASSUMPTIONS , CT_GET_UNSAT_CORE , CT_GET_VALUE , CT_POP ,
  CT_PUSH , CT_RESET , CT_RESET_ASSERTIONS , CT_SET_INFO ,
  CT_SET_LOGIC , CT_SET_OPTION , CT_EXISTS , CT_FORALL ,
  CT_GET_OBJECTIVES , CT_ASSERT_SOFT , CT_DEFINE_OBJ , CT_DEFINE_MIN_OBJ ,
  CT_DEFINE_MAX_OBJ , CT_MINIMIZE , CT_MAXIMIZE , CT_LEX_OPTIMIZE ,
  CT_PARETO_OPTIMIZE , CT_BOX_OPTIMIZE , CT_MINMAX , CT_MAXMIN ,
  CT_MAXSAT , CT_MINSAT , CT_OPTIMIZE
}
 
enum class  ERROR_TYPE {
  ERR_UNEXP_EOF , ERR_SYM_MIS , ERR_UNKWN_SYM , ERR_PARAM_MIS ,
  ERR_PARAM_NBOOL , ERR_PARAM_NNUM , ERR_PARAM_NSAME , ERR_LOGIC ,
  ERR_MUL_DECL , ERR_MUL_DEF , ERR_ZERO_DIVISOR , ERR_FUN_LOCAL_VAR ,
  ERR_ARI_MIS , ERR_TYPE_MIS , ERR_NEG_PARAM
}
 
enum class  RESULT_TYPE {
  RT_SAT , RT_UNSAT , RT_DELTA_SAT , RT_UNKNOWN ,
  RT_ERROR
}
 
enum class  SORT_KIND {
  SK_NULL = 0 , SK_UNKNOWN , SK_BOOL , SK_INT ,
  SK_REAL , SK_BV , SK_FP , SK_STR ,
  SK_ARRAY , SK_DATATYPE , SK_SET , SK_RELATION ,
  SK_BAG , SK_SEQ , SK_TUPLE , SK_UF ,
  SK_REG , SK_EXT , SK_RAT , SK_NAT ,
  SK_ALGEBRAIC , SK_TRANSCENDENTAL , SK_RAND , SK_INTOREAL ,
  SK_DEC , SK_DEF , SK_ROUNDING_MODE
}
 
enum  ValueType {
  UNKNOWN , STRING , NUMBER , INTERVAL ,
  BOOLEAN , BV , FP , ARRAY
}
 

Functions

char * safe_strdup (const std::string &str)
 
ParserPtr newParser ()
 
ParserPtr newParser (const std::string &filename)
 
std::string dumpConst (const std::string &name, const std::shared_ptr< Sort > &sort)
 
void dumpSMTLIB2_streaming (const std::shared_ptr< DAGNode > &root, std::ostream &out)
 
std::string dumpSMTLIB2 (const std::shared_ptr< DAGNode > &root)
 
std::string dumpFuncDef (const std::shared_ptr< DAGNode > &node)
 
std::string dumpFuncRec (const std::shared_ptr< DAGNode > &node)
 
std::string dumpFuncDec (const std::shared_ptr< DAGNode > &node)
 
std::string kindToString (const NODE_KIND &nk)
 
NODE_KIND getNegatedKind (const NODE_KIND &nk)
 
NODE_KIND getFlipKind (const NODE_KIND &nk)
 
NODE_KIND getOperKind (const std::string &s)
 
bool isIntParam (std::shared_ptr< DAGNode > param)
 
bool isRealParam (std::shared_ptr< DAGNode > param)
 
bool isBoolParam (std::shared_ptr< DAGNode > param)
 
bool isBvParam (std::shared_ptr< DAGNode > param)
 
bool isFpParam (std::shared_ptr< DAGNode > param)
 
bool isStrParam (std::shared_ptr< DAGNode > param)
 
bool isRegParam (std::shared_ptr< DAGNode > param)
 
bool isArrayParam (std::shared_ptr< DAGNode > param)
 
bool canExempt (std::shared_ptr< Sort > l, std::shared_ptr< Sort > r)
 
void echo_error (const std::string &msg)
 
std::string hexToBv (const std::string &hex)
 
std::string decToBv (const std::string &dec)
 
std::shared_ptr< ValuenewValue (const std::string &string_value)
 
std::shared_ptr< ValuenewValue (const Number &number_value)
 
std::shared_ptr< ValuenewValue (const Interval &interval_value)
 
std::shared_ptr< ValuenewValue (const bool &boolean_value)
 
std::shared_ptr< ValuenewValue (const ValueType &value_type)
 
std::shared_ptr< ValuenewValue (const int &integer_value)
 
std::shared_ptr< ValuenewValue (const double &double_value)
 
std::shared_ptr< ValuenewValue (const float &float_value)
 
std::shared_ptr< ValuenewValue (const long &long_value)
 
std::shared_ptr< ValuenewValue (const short &short_value)
 
std::shared_ptr< ValuenewValue (const char &char_value)
 

Variables

Interval EmptyInterval = Interval(1, -1, false, false)
 
Interval FullInterval
 
constexpr size_t NUM_KINDS = static_cast<size_t>(NODE_KIND::NUM_KINDS)
 
const std::unordered_set< NODE_KINDstatic_kinds
 
const std::string PRESERVING_LET_BIND_VAR_SUFFIX
 
const std::unordered_map< std::string, NODE_KINDkind_key_map
 
const std::unordered_map< std::string, NODE_KINDoper_key_map
 

Typedef Documentation

◆ Integer

Definition at line 136 of file number.h.

◆ NodePtr

typedef std::shared_ptr<DAGNode> stabilizer::parser::NodePtr

Definition at line 1195 of file dag.h.

◆ ParserPtr

typedef std::shared_ptr<Parser> stabilizer::parser::ParserPtr

Definition at line 3815 of file parser.h.

◆ Real

Definition at line 270 of file number.h.

◆ SortManagerPtr

Definition at line 429 of file sort.h.

◆ SortPtr

typedef std::shared_ptr<Sort> stabilizer::parser::SortPtr

Definition at line 428 of file sort.h.

Enumeration Type Documentation

◆ CMD_TYPE

enum class stabilizer::parser::CMD_TYPE
strong
Enumerator
CT_UNKNOWN 
CT_EOF 
CT_ASSERT 
CT_CHECK_SAT 
CT_CHECK_SAT_ASSUMING 
CT_DECLARE_CONST 
CT_DECLARE_FUN 
CT_DECLARE_SORT 
CT_DEFINE_FUN 
CT_DEFINE_FUN_REC 
CT_DEFINE_FUNS_REC 
CT_DEFINE_SORT 
CT_ECHO 
CT_EXIT 
CT_GET_ASSERTIONS 
CT_GET_ASSIGNMENT 
CT_GET_INFO 
CT_GET_MODEL 
CT_GET_OPTION 
CT_GET_PROOF 
CT_GET_UNSAT_ASSUMPTIONS 
CT_GET_UNSAT_CORE 
CT_GET_VALUE 
CT_POP 
CT_PUSH 
CT_RESET 
CT_RESET_ASSERTIONS 
CT_SET_INFO 
CT_SET_LOGIC 
CT_SET_OPTION 
CT_EXISTS 
CT_FORALL 
CT_GET_OBJECTIVES 
CT_ASSERT_SOFT 
CT_DEFINE_OBJ 
CT_DEFINE_MIN_OBJ 
CT_DEFINE_MAX_OBJ 
CT_MINIMIZE 
CT_MAXIMIZE 
CT_LEX_OPTIMIZE 
CT_PARETO_OPTIMIZE 
CT_BOX_OPTIMIZE 
CT_MINMAX 
CT_MAXMIN 
CT_MAXSAT 
CT_MINSAT 
CT_OPTIMIZE 

Definition at line 79 of file parser.h.

◆ ERROR_TYPE

enum class stabilizer::parser::ERROR_TYPE
strong
Enumerator
ERR_UNEXP_EOF 
ERR_SYM_MIS 
ERR_UNKWN_SYM 
ERR_PARAM_MIS 
ERR_PARAM_NBOOL 
ERR_PARAM_NNUM 
ERR_PARAM_NSAME 
ERR_LOGIC 
ERR_MUL_DECL 
ERR_MUL_DEF 
ERR_ZERO_DIVISOR 
ERR_FUN_LOCAL_VAR 
ERR_ARI_MIS 
ERR_TYPE_MIS 
ERR_NEG_PARAM 

Definition at line 134 of file parser.h.

◆ FrameState

enum class stabilizer::parser::FrameState
strong
Enumerator
Start 
ReadingHead 
ProcessingSpecial 
ProcessingParams 
ProcessingBindings 
ProcessingLetBody 
ProcessingQuantVars 
ProcessingQuantBody 
ProcessingParamFuncArgs 
ProcessingParamFuncParams 
Finish 

Definition at line 41 of file expr_parser.cpp.

◆ KEYWORD

enum class stabilizer::parser::KEYWORD
strong
Enumerator
KW_ID 
KW_WEIGHT 
KW_COMP 
KW_EPSILON 
KW_M 
KW_OPT_KIND 
KW_NAMED 
KW_PATTERN 
KW_NO_PATTERN 
KW_QID 
KW_SKOLEMID 
KW_LBLPOS 
KW_LBLNEG 
KW_NULL 

Definition at line 62 of file parser.h.

◆ LET_MODE

enum class stabilizer::parser::LET_MODE
strong
Enumerator
LM_NON_LET 
LM_START_LET 
LM_IN_LET 

Definition at line 56 of file parser.h.

◆ NODE_KIND

enum class stabilizer::parser::NODE_KIND
strong
Enumerator
NT_UNKNOWN 
NT_ERROR 
NT_NULL 
NT_UF_NAME 
NT_PATTERN 
NT_NO_PATTERN 
NT_WEIGHT 
NT_ATTRIBUTE 
NT_CONST 
NT_VAR 
NT_CONST_TRUE 
NT_CONST_FALSE 
NT_TEMP_VAR 
NT_CONST_ARRAY 
NT_PLACEHOLDER_VAR 
NT_AND 
NT_OR 
NT_NOT 
NT_IMPLIES 
NT_XOR 
NT_EQ 
NT_DISTINCT 
NT_ITE 
NT_ADD 
NT_NEG 
NT_SUB 
NT_MUL 
NT_DT_FUN_APPLY 
NT_IAND 
NT_POW2 
NT_POW 
NT_DIV_INT 
NT_DIV_REAL 
NT_MOD 
NT_ABS 
NT_SQRT 
NT_SAFESQRT 
NT_CEIL 
NT_FLOOR 
NT_ROUND 
NT_EXP 
NT_LN 
NT_LG 
NT_LB 
NT_LOG 
NT_SIN 
NT_COS 
NT_TAN 
NT_COT 
NT_SEC 
NT_CSC 
NT_ASIN 
NT_ACOS 
NT_ATAN 
NT_ACOT 
NT_ASEC 
NT_ACSC 
NT_SINH 
NT_COSH 
NT_TANH 
NT_ASECH 
NT_ACSCH 
NT_ACOTH 
NT_ATAN2 
NT_ASINH 
NT_ACOSH 
NT_ATANH 
NT_SECH 
NT_CSCH 
NT_COTH 
NT_LE 
NT_LT 
NT_GE 
NT_GT 
NT_TO_INT 
NT_TO_REAL 
NT_IS_INT 
NT_IS_DIVISIBLE 
NT_IS_PRIME 
NT_IS_EVEN 
NT_IS_ODD 
NT_GCD 
NT_LCM 
NT_FACT 
NT_BV_NOT 
NT_BV_NEG 
NT_BV_AND 
NT_BV_OR 
NT_BV_XOR 
NT_BV_NAND 
NT_BV_NOR 
NT_BV_XNOR 
NT_BV_COMP 
NT_BV_ADD 
NT_BV_SUB 
NT_BV_MUL 
NT_BV_UDIV 
NT_BV_SDIV 
NT_BV_UREM 
NT_BV_SREM 
NT_BV_UMOD 
NT_BV_SMOD 
NT_BV_SHL 
NT_BV_LSHR 
NT_BV_ASHR 
NT_BV_ULT 
NT_BV_ULE 
NT_BV_UGT 
NT_BV_UGE 
NT_BV_SLT 
NT_BV_SLE 
NT_BV_SGT 
NT_BV_SGE 
NT_BV_CONCAT 
NT_BV_TO_NAT 
NT_NAT_TO_BV 
NT_BV_TO_INT 
NT_INT_TO_BV 
NT_UBV_TO_INT 
NT_SBV_TO_INT 
NT_BV_EXTRACT 
NT_BV_REPEAT 
NT_BV_ZERO_EXT 
NT_BV_SIGN_EXT 
NT_BV_ROTATE_LEFT 
NT_BV_ROTATE_RIGHT 
NT_FP_ADD 
NT_FP_SUB 
NT_FP_MUL 
NT_FP_DIV 
NT_FP_ABS 
NT_FP_NEG 
NT_FP_REM 
NT_FP_FMA 
NT_FP_SQRT 
NT_FP_ROUND_TO_INTEGRAL 
NT_FP_MIN 
NT_FP_MAX 
NT_FP_LE 
NT_FP_LT 
NT_FP_GE 
NT_FP_GT 
NT_FP_EQ 
NT_FP_TO_UBV 
NT_FP_TO_SBV 
NT_FP_TO_REAL 
NT_FP_TO_FP 
NT_FP_TO_FP_UNSIGNED 
NT_FP_IS_NORMAL 
NT_FP_IS_SUBNORMAL 
NT_FP_IS_ZERO 
NT_FP_IS_INF 
NT_FP_IS_NAN 
NT_FP_IS_NEG 
NT_FP_IS_POS 
NT_SELECT 
NT_STORE 
NT_DT_TESTER 
NT_DT_UPDATER 
NT_TUPLE_CONSTRUCTOR 
NT_TUPLE_UNIT 
NT_TUPLE_SELECT 
NT_TUPLE_UPDATE 
NT_TUPLE_PROJECT 
NT_STR_LEN 
NT_STR_CONCAT 
NT_STR_SUBSTR 
NT_STR_INDEXOF 
NT_STR_CHARAT 
NT_STR_UPDATE 
NT_STR_REPLACE 
NT_STR_REPLACE_ALL 
NT_STR_REPLACE_REG 
NT_STR_REPLACE_REG_ALL 
NT_STR_INDEXOF_REG 
NT_STR_TO_LOWER 
NT_STR_TO_UPPER 
NT_STR_REV 
NT_STR_SPLIT 
NT_STR_SPLIT_AT 
NT_STR_SPLIT_REST 
NT_STR_NUM_SPLITS 
NT_STR_SPLIT_AT_RE 
NT_STR_SPLIT_REST_RE 
NT_STR_NUM_SPLITS_RE 
NT_STR_LT 
NT_STR_LE 
NT_STR_GT 
NT_STR_GE 
NT_STR_IN_REG 
NT_STR_CONTAINS 
NT_STR_IS_DIGIT 
NT_STR_PREFIXOF 
NT_STR_SUFFIXOF 
NT_STR_FROM_INT 
NT_STR_TO_INT 
NT_STR_TO_REG 
NT_STR_TO_CODE 
NT_STR_FROM_CODE 
NT_REG_CONCAT 
NT_REG_UNION 
NT_REG_INTER 
NT_REG_DIFF 
NT_REG_STAR 
NT_REG_PLUS 
NT_REG_OPT 
NT_REG_RANGE 
NT_REG_REPEAT 
NT_REG_COMPLEMENT 
NT_REG_LOOP 
NT_FUNC_APPLY 
NT_FUNC_DEC 
NT_FUNC_DEF 
NT_FUNC_REC 
NT_FUNC_REC_APPLY 
NT_BV_NEGO 
NT_BV_UADDO 
NT_BV_SADDO 
NT_BV_UMULO 
NT_BV_SMULO 
NT_BV_UDIVO 
NT_BV_SDIVO 
NT_BV_UREMO 
NT_BV_SREMO 
NT_BV_UMODO 
NT_BV_SMODO 
NT_EQ_BOOL 
NT_EQ_OTHER 
NT_DISTINCT_BOOL 
NT_DISTINCT_OTHER 
NT_UF_APPLY 
NT_CONST_PI 
NT_CONST_E 
NT_INFINITY 
NT_NAN 
NT_EPSILON 
NT_POS_INFINITY 
NT_NEG_INFINITY 
NT_POS_EPSILON 
NT_NEG_EPSILON 
NT_REG_NONE 
NT_REG_ALL 
NT_REG_ALLCHAR 
NT_MAX 
NT_MIN 
NT_LET 
NT_LET_CHAIN 
NT_LET_BIND_VAR 
NT_LET_BIND_VAR_LIST 
NT_FORALL 
NT_EXISTS 
NT_QUANT_VAR 
NT_FUNC_PARAM 
NT_ROOT_OBJ 
NT_ROOT_OF_WITH_INTERVAL 
NUM_KINDS 

Definition at line 42 of file kind.h.

◆ RESULT_TYPE

Enumerator
RT_SAT 
RT_UNSAT 
RT_DELTA_SAT 
RT_UNKNOWN 
RT_ERROR 

Definition at line 152 of file parser.h.

◆ SCAN_MODE

enum class stabilizer::parser::SCAN_MODE
strong
Enumerator
SM_COMMON 
SM_SYMBOL 
SM_COMP_SYM 
SM_COMMENT 
SM_STRING 

Definition at line 47 of file parser.h.

◆ SORT_KIND

enum class stabilizer::parser::SORT_KIND
strong
Enumerator
SK_NULL 
SK_UNKNOWN 
SK_BOOL 
SK_INT 
SK_REAL 
SK_BV 
SK_FP 
SK_STR 
SK_ARRAY 
SK_DATATYPE 
SK_SET 
SK_RELATION 
SK_BAG 
SK_SEQ 
SK_TUPLE 
SK_UF 
SK_REG 
SK_EXT 
SK_RAT 
SK_NAT 
SK_ALGEBRAIC 
SK_TRANSCENDENTAL 
SK_RAND 
SK_INTOREAL 
SK_DEC 
SK_DEF 
SK_ROUNDING_MODE 

Definition at line 44 of file sort.h.

◆ SpecialType

Enumerator
None 
Let 
Exists 
Forall 
ParamFunc 
BV 
Underscore 

Definition at line 56 of file expr_parser.cpp.

◆ State

enum class stabilizer::parser::State
strong
Enumerator
UNKNOWN 
UNSAT 
SAT 

Definition at line 38 of file kind.h.

◆ ValueType

Enumerator
UNKNOWN 
STRING 
NUMBER 
INTERVAL 
BOOLEAN 
BV 
FP 
ARRAY 

Definition at line 41 of file value.h.

Function Documentation

◆ canExempt()

◆ decToBv()

std::string stabilizer::parser::decToBv ( const std::string &  dec)

◆ dumpConst()

std::string stabilizer::parser::dumpConst ( const std::string &  name,
const std::shared_ptr< Sort > &  sort 
)

Definition at line 69 of file dag.cpp.

Referenced by dumpSMTLIB2_streaming().

◆ dumpFuncDec()

std::string stabilizer::parser::dumpFuncDec ( const std::shared_ptr< DAGNode > &  node)

Definition at line 1043 of file dag.cpp.

Referenced by stabilizer::parser::Parser::dumpSMT2().

◆ dumpFuncDef()

std::string stabilizer::parser::dumpFuncDef ( const std::shared_ptr< DAGNode > &  node)

Definition at line 1009 of file dag.cpp.

References dumpSMTLIB2().

◆ dumpFuncRec()

std::string stabilizer::parser::dumpFuncRec ( const std::shared_ptr< DAGNode > &  node)

Definition at line 1026 of file dag.cpp.

References dumpSMTLIB2().

Referenced by stabilizer::parser::Parser::dumpSMT2().

◆ dumpSMTLIB2()

std::string stabilizer::parser::dumpSMTLIB2 ( const std::shared_ptr< DAGNode > &  root)

◆ dumpSMTLIB2_streaming()

void stabilizer::parser::dumpSMTLIB2_streaming ( const std::shared_ptr< DAGNode > &  root,
std::ostream &  out 
)

Definition at line 111 of file dag.cpp.

References condAssert, dumpConst(), stabilizer::parser::DAGNode::getChild(), stabilizer::parser::DAGNode::getChildren(), stabilizer::parser::DAGNode::getChildrenSize(), stabilizer::parser::DAGNode::getKind(), stabilizer::parser::DAGNode::getName(), stabilizer::parser::DAGNode::getPureName(), stabilizer::parser::DAGNode::getSort(), kindToString(), NT_ADD, NT_AND, NT_ATTRIBUTE, NT_BV_EXTRACT, NT_BV_REPEAT, NT_BV_ROTATE_LEFT, NT_BV_ROTATE_RIGHT, NT_BV_SIGN_EXT, NT_BV_ZERO_EXT, NT_CONST, NT_CONST_ARRAY, NT_CONST_E, NT_CONST_FALSE, NT_CONST_PI, NT_CONST_TRUE, NT_DISTINCT, NT_DIV_REAL, NT_DT_FUN_APPLY, NT_DT_TESTER, NT_DT_UPDATER, NT_EPSILON, NT_EQ, NT_EXISTS, NT_FORALL, NT_FP_ABS, NT_FP_ADD, NT_FP_DIV, NT_FP_EQ, NT_FP_FMA, NT_FP_GE, NT_FP_GT, NT_FP_IS_INF, NT_FP_IS_NAN, NT_FP_IS_NEG, NT_FP_IS_NORMAL, NT_FP_IS_POS, NT_FP_IS_SUBNORMAL, NT_FP_IS_ZERO, NT_FP_LE, NT_FP_LT, NT_FP_MAX, NT_FP_MIN, NT_FP_MUL, NT_FP_NEG, NT_FP_REM, NT_FP_ROUND_TO_INTEGRAL, NT_FP_SQRT, NT_FP_SUB, NT_FP_TO_FP, NT_FP_TO_FP_UNSIGNED, NT_FP_TO_REAL, NT_FP_TO_SBV, NT_FP_TO_UBV, NT_FUNC_APPLY, NT_FUNC_DEC, NT_FUNC_DEF, NT_FUNC_PARAM, NT_FUNC_REC, NT_FUNC_REC_APPLY, NT_GE, NT_GT, NT_IMPLIES, NT_INFINITY, NT_INT_TO_BV, NT_ITE, NT_LE, NT_LET, NT_LET_BIND_VAR, NT_LET_BIND_VAR_LIST, NT_LET_CHAIN, NT_LT, NT_MUL, NT_NAN, NT_NEG, NT_NEG_EPSILON, NT_NEG_INFINITY, NT_NO_PATTERN, NT_NOT, NT_OR, NT_PATTERN, NT_PLACEHOLDER_VAR, NT_POS_EPSILON, NT_POS_INFINITY, NT_QUANT_VAR, NT_REG_ALL, NT_REG_ALLCHAR, NT_REG_LOOP, NT_REG_NONE, NT_ROOT_OBJ, NT_ROOT_OF_WITH_INTERVAL, NT_SUB, NT_TEMP_VAR, NT_TUPLE_CONSTRUCTOR, NT_TUPLE_PROJECT, NT_TUPLE_SELECT, NT_TUPLE_UNIT, NT_TUPLE_UPDATE, NT_UF_APPLY, NT_VAR, NT_WEIGHT, and NT_XOR.

Referenced by dumpSMTLIB2().

◆ echo_error()

void stabilizer::parser::echo_error ( const std::string &  msg)

◆ getFlipKind()

◆ getNegatedKind()

◆ getOperKind()

NODE_KIND stabilizer::parser::getOperKind ( const std::string &  s)

◆ hexToBv()

std::string stabilizer::parser::hexToBv ( const std::string &  hex)

Definition at line 744 of file util.cpp.

References condAssert.

Referenced by stabilizer::parser::BitVectorUtils::natToBv().

◆ isArrayParam()

bool stabilizer::parser::isArrayParam ( std::shared_ptr< DAGNode param)

Definition at line 72 of file op_parser.cpp.

Referenced by stabilizer::parser::Parser::mkSelect().

◆ isBoolParam()

bool stabilizer::parser::isBoolParam ( std::shared_ptr< DAGNode param)

◆ isBvParam()

bool stabilizer::parser::isBvParam ( std::shared_ptr< DAGNode param)

Definition at line 56 of file op_parser.cpp.

Referenced by stabilizer::parser::Parser::mkBvAdd(), stabilizer::parser::Parser::mkBvAnd(), stabilizer::parser::Parser::mkBvAshr(), stabilizer::parser::Parser::mkBvConcat(), stabilizer::parser::Parser::mkBvExtract(), stabilizer::parser::Parser::mkBvLshr(), stabilizer::parser::Parser::mkBvMul(), stabilizer::parser::Parser::mkBvNot(), stabilizer::parser::Parser::mkBvOr(), stabilizer::parser::Parser::mkBvRepeat(), stabilizer::parser::Parser::mkBvRotateLeft(), stabilizer::parser::Parser::mkBvRotateRight(), stabilizer::parser::Parser::mkBvSdiv(), stabilizer::parser::Parser::mkBvSge(), stabilizer::parser::Parser::mkBvSgt(), stabilizer::parser::Parser::mkBvShl(), stabilizer::parser::Parser::mkBvSignExt(), stabilizer::parser::Parser::mkBvSle(), stabilizer::parser::Parser::mkBvSlt(), stabilizer::parser::Parser::mkBvSmod(), stabilizer::parser::Parser::mkBvSrem(), stabilizer::parser::Parser::mkBvToInt(), stabilizer::parser::Parser::mkBvToNat(), stabilizer::parser::Parser::mkBvUdiv(), stabilizer::parser::Parser::mkBvUge(), stabilizer::parser::Parser::mkBvUgt(), stabilizer::parser::Parser::mkBvUle(), stabilizer::parser::Parser::mkBvUlt(), stabilizer::parser::Parser::mkBvUmod(), stabilizer::parser::Parser::mkBvUrem(), stabilizer::parser::Parser::mkBvXor(), stabilizer::parser::Parser::mkBvZeroExt(), stabilizer::parser::Parser::mkFpConst(), stabilizer::parser::Parser::mkSbvToInt(), stabilizer::parser::Parser::mkToFp(), stabilizer::parser::Parser::mkToFp(), stabilizer::parser::Parser::mkToFpUnsigned(), and stabilizer::parser::Parser::mkUbvToInt().

◆ isFpParam()

◆ isIntParam()

bool stabilizer::parser::isIntParam ( std::shared_ptr< DAGNode param)

Definition at line 44 of file op_parser.cpp.

Referenced by stabilizer::parser::Parser::mkAbs(), stabilizer::parser::Parser::mkBvExtract(), stabilizer::parser::Parser::mkBvRepeat(), stabilizer::parser::Parser::mkBvRotateLeft(), stabilizer::parser::Parser::mkBvRotateRight(), stabilizer::parser::Parser::mkBvSignExt(), stabilizer::parser::Parser::mkBvZeroExt(), stabilizer::parser::Parser::mkCeil(), stabilizer::parser::Parser::mkFact(), stabilizer::parser::Parser::mkFpToSbv(), stabilizer::parser::Parser::mkFpToUbv(), stabilizer::parser::Parser::mkGcd(), stabilizer::parser::Parser::mkIntToBv(), stabilizer::parser::Parser::mkIsDivisible(), stabilizer::parser::Parser::mkIsEven(), stabilizer::parser::Parser::mkIsOdd(), stabilizer::parser::Parser::mkIsPrime(), stabilizer::parser::Parser::mkLcm(), stabilizer::parser::Parser::mkMod(), stabilizer::parser::Parser::mkNatToBv(), stabilizer::parser::Parser::mkRegLoop(), stabilizer::parser::Parser::mkRegRepeat(), stabilizer::parser::Parser::mkSafeSqrt(), stabilizer::parser::Parser::mkSqrt(), stabilizer::parser::Parser::mkStrCharat(), stabilizer::parser::Parser::mkStrFromCode(), stabilizer::parser::Parser::mkStrFromInt(), stabilizer::parser::Parser::mkStrIndexof(), stabilizer::parser::Parser::mkStrSplitAt(), stabilizer::parser::Parser::mkStrSplitAtRe(), stabilizer::parser::Parser::mkStrSplitRest(), stabilizer::parser::Parser::mkStrSplitRestRe(), stabilizer::parser::Parser::mkStrSubstr(), stabilizer::parser::Parser::mkStrUpdate(), and stabilizer::parser::Parser::mkToReal().

◆ isRealParam()

◆ isRegParam()

◆ isStrParam()

bool stabilizer::parser::isStrParam ( std::shared_ptr< DAGNode param)

Definition at line 64 of file op_parser.cpp.

Referenced by stabilizer::parser::Parser::mkIndexofReg(), stabilizer::parser::Parser::mkRegRange(), stabilizer::parser::Parser::mkReplaceReg(), stabilizer::parser::Parser::mkReplaceRegAll(), stabilizer::parser::Parser::mkStrCharat(), stabilizer::parser::Parser::mkStrConcat(), stabilizer::parser::Parser::mkStrContains(), stabilizer::parser::Parser::mkStrIndexof(), stabilizer::parser::Parser::mkStrIndexofReg(), stabilizer::parser::Parser::mkStrInReg(), stabilizer::parser::Parser::mkStrIsDigit(), stabilizer::parser::Parser::mkStrLen(), stabilizer::parser::Parser::mkStrNumSplits(), stabilizer::parser::Parser::mkStrNumSplitsRe(), stabilizer::parser::Parser::mkStrPrefixof(), stabilizer::parser::Parser::mkStrReplace(), stabilizer::parser::Parser::mkStrReplaceAll(), stabilizer::parser::Parser::mkStrReplaceReg(), stabilizer::parser::Parser::mkStrReplaceRegAll(), stabilizer::parser::Parser::mkStrRev(), stabilizer::parser::Parser::mkStrSplit(), stabilizer::parser::Parser::mkStrSplitAt(), stabilizer::parser::Parser::mkStrSplitAtRe(), stabilizer::parser::Parser::mkStrSplitRest(), stabilizer::parser::Parser::mkStrSplitRestRe(), stabilizer::parser::Parser::mkStrSubstr(), stabilizer::parser::Parser::mkStrSuffixof(), stabilizer::parser::Parser::mkStrToCode(), stabilizer::parser::Parser::mkStrToInt(), stabilizer::parser::Parser::mkStrToLower(), stabilizer::parser::Parser::mkStrToReg(), stabilizer::parser::Parser::mkStrToUpper(), and stabilizer::parser::Parser::mkStrUpdate().

◆ kindToString()

std::string stabilizer::parser::kindToString ( const NODE_KIND nk)

Definition at line 35 of file kind.cpp.

References NT_ABS, NT_ACOS, NT_ACOSH, NT_ACOT, NT_ACOTH, NT_ACSC, NT_ACSCH, NT_ADD, NT_AND, NT_ASEC, NT_ASECH, NT_ASIN, NT_ASINH, NT_ATAN, NT_ATAN2, NT_ATANH, NT_BV_ADD, NT_BV_AND, NT_BV_ASHR, NT_BV_COMP, NT_BV_CONCAT, NT_BV_EXTRACT, NT_BV_LSHR, NT_BV_MUL, NT_BV_NAND, NT_BV_NEG, NT_BV_NEGO, NT_BV_NOR, NT_BV_NOT, NT_BV_OR, NT_BV_REPEAT, NT_BV_ROTATE_LEFT, NT_BV_ROTATE_RIGHT, NT_BV_SADDO, NT_BV_SDIV, NT_BV_SDIVO, NT_BV_SGE, NT_BV_SGT, NT_BV_SHL, NT_BV_SIGN_EXT, NT_BV_SLE, NT_BV_SLT, NT_BV_SMOD, NT_BV_SMODO, NT_BV_SMULO, NT_BV_SREM, NT_BV_SREMO, NT_BV_SUB, NT_BV_TO_INT, NT_BV_TO_NAT, NT_BV_UADDO, NT_BV_UDIV, NT_BV_UDIVO, NT_BV_UGE, NT_BV_UGT, NT_BV_ULE, NT_BV_ULT, NT_BV_UMOD, NT_BV_UMODO, NT_BV_UMULO, NT_BV_UREM, NT_BV_UREMO, NT_BV_XNOR, NT_BV_XOR, NT_BV_ZERO_EXT, NT_CEIL, NT_CONST, NT_CONST_ARRAY, NT_CONST_E, NT_CONST_FALSE, NT_CONST_PI, NT_CONST_TRUE, NT_COS, NT_COSH, NT_COT, NT_COTH, NT_CSC, NT_CSCH, NT_DISTINCT, NT_DISTINCT_BOOL, NT_DISTINCT_OTHER, NT_DIV_INT, NT_DIV_REAL, NT_DT_FUN_APPLY, NT_DT_TESTER, NT_DT_UPDATER, NT_EPSILON, NT_EQ, NT_EQ_BOOL, NT_EQ_OTHER, NT_ERROR, NT_EXISTS, NT_EXP, NT_FACT, NT_FLOOR, NT_FORALL, NT_FP_ABS, NT_FP_ADD, NT_FP_DIV, NT_FP_EQ, NT_FP_FMA, NT_FP_GE, NT_FP_GT, NT_FP_IS_INF, NT_FP_IS_NAN, NT_FP_IS_NEG, NT_FP_IS_NORMAL, NT_FP_IS_POS, NT_FP_IS_SUBNORMAL, NT_FP_IS_ZERO, NT_FP_LE, NT_FP_LT, NT_FP_MAX, NT_FP_MIN, NT_FP_MUL, NT_FP_NEG, NT_FP_REM, NT_FP_ROUND_TO_INTEGRAL, NT_FP_SQRT, NT_FP_SUB, NT_FP_TO_FP, NT_FP_TO_FP_UNSIGNED, NT_FP_TO_REAL, NT_FP_TO_SBV, NT_FP_TO_UBV, NT_FUNC_APPLY, NT_FUNC_DEC, NT_FUNC_DEF, NT_FUNC_PARAM, NT_FUNC_REC, NT_FUNC_REC_APPLY, NT_GCD, NT_GE, NT_GT, NT_IAND, NT_IMPLIES, NT_INFINITY, NT_INT_TO_BV, NT_IS_DIVISIBLE, NT_IS_EVEN, NT_IS_INT, NT_IS_ODD, NT_IS_PRIME, NT_ITE, NT_LB, NT_LCM, NT_LE, NT_LET, NT_LET_BIND_VAR, NT_LET_BIND_VAR_LIST, NT_LET_CHAIN, NT_LG, NT_LN, NT_LOG, NT_LT, NT_MAX, NT_MIN, NT_MOD, NT_MUL, NT_NAN, NT_NAT_TO_BV, NT_NEG, NT_NEG_EPSILON, NT_NEG_INFINITY, NT_NOT, NT_NULL, NT_OR, NT_PLACEHOLDER_VAR, NT_POS_EPSILON, NT_POS_INFINITY, NT_POW, NT_POW2, NT_QUANT_VAR, NT_REG_ALL, NT_REG_ALLCHAR, NT_REG_COMPLEMENT, NT_REG_CONCAT, NT_REG_DIFF, NT_REG_INTER, NT_REG_LOOP, NT_REG_NONE, NT_REG_OPT, NT_REG_PLUS, NT_REG_RANGE, NT_REG_REPEAT, NT_REG_STAR, NT_REG_UNION, NT_ROUND, NT_SAFESQRT, NT_SBV_TO_INT, NT_SEC, NT_SECH, NT_SELECT, NT_SIN, NT_SINH, NT_SQRT, NT_STORE, NT_STR_CHARAT, NT_STR_CONCAT, NT_STR_CONTAINS, NT_STR_FROM_CODE, NT_STR_FROM_INT, NT_STR_GE, NT_STR_GT, NT_STR_IN_REG, NT_STR_INDEXOF, NT_STR_INDEXOF_REG, NT_STR_IS_DIGIT, NT_STR_LE, NT_STR_LEN, NT_STR_LT, NT_STR_NUM_SPLITS, NT_STR_NUM_SPLITS_RE, NT_STR_PREFIXOF, NT_STR_REPLACE, NT_STR_REPLACE_ALL, NT_STR_REPLACE_REG, NT_STR_REPLACE_REG_ALL, NT_STR_REV, NT_STR_SPLIT, NT_STR_SPLIT_AT, NT_STR_SPLIT_AT_RE, NT_STR_SPLIT_REST, NT_STR_SPLIT_REST_RE, NT_STR_SUBSTR, NT_STR_SUFFIXOF, NT_STR_TO_CODE, NT_STR_TO_INT, NT_STR_TO_LOWER, NT_STR_TO_REG, NT_STR_TO_UPPER, NT_STR_UPDATE, NT_SUB, NT_TAN, NT_TANH, NT_TEMP_VAR, NT_TO_INT, NT_TO_REAL, NT_TUPLE_CONSTRUCTOR, NT_TUPLE_PROJECT, NT_TUPLE_SELECT, NT_TUPLE_UNIT, NT_TUPLE_UPDATE, NT_UBV_TO_INT, NT_UF_APPLY, NT_UNKNOWN, NT_VAR, and NT_XOR.

Referenced by dumpSMTLIB2_streaming(), stabilizer::parser::Parser::mkInternalOper(), stabilizer::parser::Parser::rewrite(), and stabilizer::parser::Parser::toString().

◆ newParser() [1/2]

ParserPtr stabilizer::parser::newParser ( )

Definition at line 3020 of file base_parser.cpp.

◆ newParser() [2/2]

ParserPtr stabilizer::parser::newParser ( const std::string &  filename)

Definition at line 3022 of file base_parser.cpp.

◆ newValue() [1/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const bool &  boolean_value)

Definition at line 180 of file value.cpp.

◆ newValue() [2/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const char &  char_value)

Definition at line 208 of file value.cpp.

◆ newValue() [3/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const double &  double_value)

Definition at line 192 of file value.cpp.

◆ newValue() [4/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const float &  float_value)

Definition at line 196 of file value.cpp.

◆ newValue() [5/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const int &  integer_value)

Definition at line 188 of file value.cpp.

◆ newValue() [6/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const Interval interval_value)

Definition at line 176 of file value.cpp.

◆ newValue() [7/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const long &  long_value)

Definition at line 200 of file value.cpp.

◆ newValue() [8/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const Number number_value)

Definition at line 172 of file value.cpp.

◆ newValue() [9/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const short &  short_value)

Definition at line 204 of file value.cpp.

◆ newValue() [10/11]

◆ newValue() [11/11]

std::shared_ptr< Value > stabilizer::parser::newValue ( const ValueType value_type)

Definition at line 184 of file value.cpp.

◆ safe_strdup()

char * stabilizer::parser::safe_strdup ( const std::string &  str)

Variable Documentation

◆ EmptyInterval

Interval stabilizer::parser::EmptyInterval = Interval(1, -1, false, false)
inline

Definition at line 185 of file interval.h.

Referenced by stabilizer::parser::Interval::abs(), stabilizer::parser::Interval::acos(), stabilizer::parser::Interval::acosh(), stabilizer::parser::Interval::acot(), stabilizer::parser::Interval::acoth(), stabilizer::parser::Interval::acsc(), stabilizer::parser::Interval::acsch(), stabilizer::parser::Interval::asec(), stabilizer::parser::Interval::asech(), stabilizer::parser::Interval::asin(), stabilizer::parser::Interval::asinh(), stabilizer::parser::Interval::atan(), stabilizer::parser::Interval::atan2(), stabilizer::parser::Interval::atan2(), stabilizer::parser::Interval::atanh(), stabilizer::parser::Interval::cos(), stabilizer::parser::Interval::cosh(), stabilizer::parser::Interval::cot(), stabilizer::parser::Interval::coth(), stabilizer::parser::Interval::csc(), stabilizer::parser::Interval::csch(), stabilizer::parser::Interval::divInt(), stabilizer::parser::Interval::divInt(), stabilizer::parser::Interval::divReal(), stabilizer::parser::Interval::divReal(), stabilizer::parser::Interval::exp(), stabilizer::parser::Interval::intersection(), stabilizer::parser::Interval::lb(), stabilizer::parser::Interval::lg(), stabilizer::parser::Interval::ln(), stabilizer::parser::Interval::mod(), stabilizer::parser::Interval::mod(), stabilizer::parser::Interval::negate(), stabilizer::parser::Interval::operate(), stabilizer::parser::Interval::operate(), stabilizer::parser::Interval::operator!(), stabilizer::parser::Interval::operator*(), stabilizer::parser::Interval::operator*(), stabilizer::parser::Interval::operator+(), stabilizer::parser::Interval::operator+(), stabilizer::parser::Interval::operator++(), stabilizer::parser::Interval::operator++(), stabilizer::parser::Interval::operator-(), stabilizer::parser::Interval::operator-(), stabilizer::parser::Interval::operator--(), stabilizer::parser::Interval::operator--(), stabilizer::parser::Interval::operator/(), stabilizer::parser::Interval::operator~(), stabilizer::parser::Interval::pow(), stabilizer::parser::Interval::pow(), stabilizer::parser::Interval::pow2(), stabilizer::parser::Interval::safeSqrt(), stabilizer::parser::Interval::sec(), stabilizer::parser::Interval::sech(), stabilizer::parser::Interval::sin(), stabilizer::parser::Interval::sinh(), stabilizer::parser::Interval::sqrt(), stabilizer::parser::Interval::tan(), stabilizer::parser::Interval::tanh(), and stabilizer::parser::Interval::unionWith().

◆ FullInterval

Interval stabilizer::parser::FullInterval
inline
Initial value:
= Interval(
Number::negativeInfinity(), Number::positiveInfinity(), false, false)

Definition at line 186 of file interval.h.

Referenced by stabilizer::parser::Interval::divInt(), stabilizer::parser::Interval::divReal(), stabilizer::parser::Interval::pow(), and stabilizer::parser::Interval::tan().

◆ kind_key_map

const std::unordered_map<std::string, NODE_KIND> stabilizer::parser::kind_key_map
Initial value:
= {
{"true", NODE_KIND::NT_CONST_TRUE},
{"false", NODE_KIND::NT_CONST_FALSE},
{"pi", NODE_KIND::NT_CONST_PI},
{"e", NODE_KIND::NT_CONST_E},
{"nan", NODE_KIND::NT_NAN},
{"epsilon", NODE_KIND::NT_EPSILON},
{"+epsilon", NODE_KIND::NT_POS_EPSILON},
{"-epsilon", NODE_KIND::NT_NEG_EPSILON},
{"+oo", NODE_KIND::NT_POS_INFINITY},
{"-oo", NODE_KIND::NT_NEG_INFINITY},
{"inf", NODE_KIND::NT_INFINITY},
}

Definition at line 372 of file kind.h.

◆ NUM_KINDS

constexpr size_t stabilizer::parser::NUM_KINDS = static_cast<size_t>(NODE_KIND::NUM_KINDS)
constexpr

Definition at line 366 of file kind.h.

Referenced by stabilizer::parser::NodeManager::NodeManager().

◆ oper_key_map

const std::unordered_map<std::string, NODE_KIND> stabilizer::parser::oper_key_map

Definition at line 385 of file kind.h.

Referenced by getOperKind().

◆ PRESERVING_LET_BIND_VAR_SUFFIX

const std::string stabilizer::parser::PRESERVING_LET_BIND_VAR_SUFFIX
Initial value:
=
"_stabilizer::parser_Preserving_Let_Bind_Var_Suffix_"

Definition at line 370 of file kind.h.

Referenced by stabilizer::parser::DAGNode::getPureName(), stabilizer::parser::Parser::parseConstFunc(), and stabilizer::parser::Parser::parsePreservingLet().

◆ static_kinds

const std::unordered_set<NODE_KIND> stabilizer::parser::static_kinds
Initial value:
= {
NODE_KIND::NT_NULL, NODE_KIND::NT_UNKNOWN, NODE_KIND::NT_ERROR, NODE_KIND::NT_CONST_TRUE, NODE_KIND::NT_CONST_FALSE, NODE_KIND::NT_CONST_E, NODE_KIND::NT_CONST_PI, NODE_KIND::NT_NAN, NODE_KIND::NT_EPSILON, NODE_KIND::NT_POS_EPSILON, NODE_KIND::NT_NEG_EPSILON, NODE_KIND::NT_INFINITY, NODE_KIND::NT_POS_INFINITY, NODE_KIND::NT_NEG_INFINITY}

Definition at line 367 of file kind.h.

Referenced by stabilizer::parser::NodeManager::NodeManager().