58 class BadHex :
public std::exception {};
63 : type(type), refcount(0) {}
110 for(
const auto& ch: this->val) {
111 if(!(
'0' <= ch && ch <=
'9')
112 && !(
'a' <= ch && ch <=
'f')
113 && !(
'A' <= ch && ch <=
'F'))
150 right->deleteSelf();;
Definition: gateExpression.h:139
Definition: gateExpression.h:163
virtual ~ExpressionUnOp()
Definition: gateExpression.h:169
Binary operator (+, AND, ...)
Definition: gateExpression.h:17
Bitwise and.
Definition: gateExpression.h:31
Logical shift left of fixed shift.
Definition: gateExpression.h:52
unsigned end
Last index (exclusive) of the subword.
Definition: gateExpression.h:218
ExpressionBinOp(ExpressionBase *left, ExpressionBase *right, expr::ExpressionBinOperator op)
Definition: gateExpression.h:140
Logical shift right of fixed shift.
Definition: gateExpression.h:51
Modulus.
Definition: gateExpression.h:38
Definition: gateExpression.h:227
ExpressionBase(const expr::ExpressionType &type)
Definition: gateExpression.h:62
Logical shift right.
Definition: gateExpression.h:39
ExpressionBase * expr
Definition: gateExpression.h:216
ExpressionUnOperatorCst
Definition: gateExpression.h:50
ExpressionConst(unsigned val)
Definition: gateExpression.h:94
ExpressionBinOperator
Definition: gateExpression.h:30
Arithmetic shift right of fixed shift.
Definition: gateExpression.h:53
Division.
Definition: gateExpression.h:37
virtual ~ExpressionBase()
Definition: gateExpression.h:64
ExpressionType
Definition: gateExpression.h:13
unsigned val
Numeric value.
Definition: gateExpression.h:97
ExpressionBase * right
Definition: gateExpression.h:153
Arithmetic shift right.
Definition: gateExpression.h:41
Definition: gateExpression.h:106
void addRef()
The object is referenced somewhere.
Definition: gateExpression.h:74
End variable.
Definition: gateExpression.h:14
expr::ExpressionType type
Type of the expression (used for casts)
Definition: gateExpression.h:65
Definition: gateExpression.h:93
expr::ExpressionBinOperator op
Operator.
Definition: gateExpression.h:154
Subtraction.
Definition: gateExpression.h:35
ExpressionBase * expr
Sub-expression.
Definition: gateExpression.h:173
virtual ~ExpressionBinOp()
Definition: gateExpression.h:148
ExpressionVar(int id)
Definition: gateExpression.h:128
expr::ExpressionUnOperatorCst op
Operator.
Definition: gateExpression.h:197
unsigned beg
First index (inclusive) of the subword.
Definition: gateExpression.h:217
int refcount
Definition: gateExpression.h:89
ExpressionLongConst(const std::string &val)
Definition: gateExpression.h:107
Definition: gateExpression.h:183
Addition.
Definition: gateExpression.h:34
void deleteSelf()
Call this instead of delete
Definition: gateExpression.h:79
ExpressionBase * right
Definition: gateExpression.h:237
virtual ~ExpressionMerge()
Definition: gateExpression.h:234
Logical shift left.
Definition: gateExpression.h:40
ExpressionUnOp(ExpressionBase *expr, expr::ExpressionUnOperator op)
Definition: gateExpression.h:164
ExpressionMerge(ExpressionBase *left, ExpressionBase *right)
Definition: gateExpression.h:228
Definition: gateExpression.h:10
Unary operator (NOT, ...)
Definition: gateExpression.h:18
Definition: gateExpression.h:61
Unary operator with constant (CstLSL, ...)
Definition: gateExpression.h:19
Definition: gateExpression.h:127
int val
Constant associated.
Definition: gateExpression.h:196
Concatenate two words into a longer one.
Definition: gateExpression.h:21
Bitwise or.
Definition: gateExpression.h:32
std::string val
Numeric value.
Definition: gateExpression.h:118
int id
Id of the input pin referred.
Definition: gateExpression.h:130
sign_t sign(circuit_handle circuit)
Definition: isomatch.cpp:516
Integer constant.
Definition: gateExpression.h:15
ExpressionUnOperator
Definition: gateExpression.h:45
ExpressionBase * expr
Definition: gateExpression.h:195
virtual ~ExpressionUnOpCst()
Definition: gateExpression.h:191
Definition: gateExpression.h:58
expr::ExpressionUnOperator op
Operator.
Definition: gateExpression.h:174
Bitwise exclusive or.
Definition: gateExpression.h:33
Unary bitwise not.
Definition: gateExpression.h:46
Long integer constant.
Definition: gateExpression.h:16
Multiplication.
Definition: gateExpression.h:36
Definition: gateExpression.h:206
Take a subword out of a word.
Definition: gateExpression.h:20
ExpressionUnOpCst(ExpressionBase *expr, int val, expr::ExpressionUnOperatorCst op)
Definition: gateExpression.h:184
uint64_t sign_t
Type of a circuit signature.
Definition: isomatch.h:26
ExpressionSlice(ExpressionBase *expr, unsigned beg, unsigned end)
Definition: gateExpression.h:207
virtual ~ExpressionSlice()
Definition: gateExpression.h:212