ExpParserRegistrar andRegistrar("and", logicopParser<AndExpression>);
ExpParserRegistrar orRegistrar("or", logicopParser<OrExpression>);
-Expression* notLogicopParser(const SGPropertyNode* exp, Parser* parser)
-{
- using namespace boost;
- vector<Expression*> children;
- parser->readChildren(exp, children);
- vector<Expression*>::iterator notBool =
- find_if(children.begin(), children.end(),
- boost::bind(&Expression::getType, _1) != BOOL);
- if (notBool != children.end() || children.size() != 1)
- throw("non boolean operand to not expression");
- NotExpression *expr = new NotExpression;
- expr->setOperand(static_cast< ::SGExpression<bool>*>(children[0]));
- return expr;
-}
-
-ExpParserRegistrar notRegistrar("not", notLogicopParser);
-
int BindingLayout::addBinding(const string& name, Type type)
{
//XXX error checkint