|
| ExprBinaryOpNode (const Expression *expr, ExprNode *a, ExprNode *b, char op) |
|
| ExprBinaryOpNode (const ExprBinaryOpNode &)=default |
|
ExprBinaryOpNode & | operator= (const ExprBinaryOpNode &)=default |
|
| ExprBinaryOpNode (ExprBinaryOpNode &&)=default |
|
ExprBinaryOpNode & | operator= (ExprBinaryOpNode &&)=default |
|
| ~ExprBinaryOpNode () override |
|
ExprType | prep (bool wantScalar, ExprVarEnvBuilder &envBuilder) override |
|
int | buildInterpreter (Interpreter *interpreter) const override |
| builds an interpreter. Returns the location index for the evaluated data
|
|
LLVM_VALUE | codegen (LLVM_BUILDER) LLVM_BODY |
|
| ExprNode (const Expression *expr) |
|
| ExprNode (const Expression *expr, const ExprType &type) |
|
virtual | ~ExprNode () |
|
bool | isVec () const |
| True if node has a vector result.
|
|
const Expression * | expr () const |
| Access expression.
|
|
std::string | toString () const |
| Access to original string representation of current expression.
|
|
const ExprType & | type () const |
| The type of the node.
|
|
void | addError (const ErrorCode error, const std::vector< std::string > &ids={}) const |
| Register error. This will allow users and sophisticated editors to highlight where in code problem was.
|
|
| ExprNode (const Expression *expr, ExprNode *a) |
|
| ExprNode (const Expression *expr, ExprNode *a, const ExprType &type) |
|
| ExprNode (const Expression *expr, ExprNode *a, ExprNode *b) |
|
| ExprNode (const Expression *expr, ExprNode *a, ExprNode *b, const ExprType &type) |
|
| ExprNode (const Expression *expr, ExprNode *a, ExprNode *b, ExprNode *c) |
|
| ExprNode (const Expression *expr, ExprNode *a, ExprNode *b, ExprNode *c, const ExprType &type) |
|
const ExprNode * | parent () const |
| Access parent node - root node has no parent.
|
|
int | numChildren () const |
| Number of children.
|
|
const ExprNode * | child (size_t i) const |
| Get 0 indexed child.
|
|
ExprNode * | child (size_t i) |
| Get 0 indexed child.
|
|
void | swapChildren (size_t i, size_t j) |
| Swap children, do not use unless you know what you are doing.
|
|
void | removeLastChild () |
| Remove last child and delete the entry.
|
|
void | addChild (ExprNode *child) |
| Add a child to the child list (for parser use only)
|
|
void | addChildren (ExprNode *surrogate) |
| Transfer children from surrogate parent (for parser use only)
|
|
void | setPosition (const short int startPos, const short int endPos) |
| Remember the line and column position in the input string.
|
|
unsigned short int | startPos () const |
| Access start position in input string.
|
|
unsigned short int | endPos () const |
| Access end position in input string.
|
|
unsigned short int | length () const |
| Access length of input string.
|
|
bool | checkCondition (bool check, const ErrorCode message, const std::vector< std::string > &ids, bool &error) const |
| Checks the boolean value and records an error string with node if it is false.
|
|
bool | checkIsValue (const ExprType &type, bool &error) const |
| Checks if the type is a value (i.e. string or float[d])
|
|
bool | checkIsFP (const ExprType &type, bool &error) const |
| Checks if the type is a float[d] for any d.
|
|
bool | checkIsFP (int d, const ExprType &type, bool &error) const |
| Checks if the type is a float[d] for a specific d.
|
|
bool | checkTypesCompatible (const ExprType &first, const ExprType &second, bool &error) const |
| types match (true if they do)
|
|
Node that implements an binary operator.
Definition at line 545 of file ExprNode.h.