Pratt.cpp
Go to the documentation of this file.
78 void Pratt::def_unary( int name, int precedence, const char * op_left, bool child_mandatory, const char * op_right, bool phantom )
96 this->cm.warning( SRC_INFO, "Can not define unary operation. An operation with the same prefix operand '", def->op_left, "' already exists." );
107 this->cm.warning( SRC_INFO, "Can not define unary operation. An operation with the same non-prefix operand '", def->op_right, "' already exists." );
116 this->cm.warning( SRC_INFO, "Can not define unary operation. An operation with the same prefix operand '", def->op_right, "' already exists. Consider making child expression mandatory for this operation (it will not colide with prefix operations)." );
128 this->cm.warning( SRC_INFO, "Can not define unary operation. Neither prefix nor postfix operator is specified." );
139 void Pratt::def_binary( int name, int precedence, const char * op_left, bool left_child_mandatory, const char * op_middle, bool right_child_mandatory, const char * op_right )
154 this->cm.warning( SRC_INFO, "Can not define binary operation. Infix operator is not specified." );
163 this->cm.warning( SRC_INFO, "Can not define binary operation. An operation with the same prefix operand '", def->op_left, "' already exists." );
174 this->cm.warning( SRC_INFO, "Can not define binary operation. An operation with the same non-prefix operand '", def->op_middle, "' already exists." );
183 this->cm.warning( SRC_INFO, "Can not define binary operation. An operation with the same prefix operand '", def->op_middle, "' already exists. Consider making left child expression mandatory for this operation (it will not colide with prefix operations)." );
232 this->lex->LogicFail( SS()<<"Pratt error: Unary operator '"<<next<<"' is missing an operand."<<SS::c_str() );
257 this->lex->LogicFail( SS()<<"Pratt error: Code error: Unary operator '"<<next<<"' is in defs_prefix but it has empty op_left and mandatory child."<<SS::c_str() );
285 this->lex->LogicFail( SS()<<"Pratt error: Binary operator '"<<next<<"' is missing left operand."<<SS::c_str() );
301 this->lex->LogicFail( SS()<<"Pratt error: Binary operator '"<<next<<"' is missing right operand."<<SS::c_str() );
322 this->lex->LogicFail( SS()<<"Pratt error: Code error: Binary operator '"<<next<<"' is in defs_prefix but it has empty op_left and mandatory child."<<SS::c_str() );
335 this->lex->LogicFail( SS()<<"Pratt error: Binary operator '"<<next<<"' is missing right operand."<<SS::c_str() );
424 this->lex->LogicFail( SS()<<"Pratt error: Binary operator '"<<next<<"' is missing right operand."<<SS::c_str() );