_t = __t178;
_t = __t205;
	public final Expression  numericExpr(AST _t,		PathExpr path	) throws RecognitionException, PermissionDeniedException,EXistException,XPathException {		Expression step;				AST numericExpr_AST_in = (AST)_t;					step= null;			PathExpr left= new PathExpr();			PathExpr right= new PathExpr();						if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case PLUS:		{			AST __t178 = _t;			AST tmp33_AST_in = (AST)_t;			match(_t,PLUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t178;			_t = _t.getNextSibling();								OpNumeric op= new OpNumeric(left, right, Constants.PLUS);					path.addPath(op);					step= op;							break;		}		case MINUS:		{			AST __t179 = _t;			AST tmp34_AST_in = (AST)_t;			match(_t,MINUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t179;			_t = _t.getNextSibling();								OpNumeric op= new OpNumeric(left, right, Constants.MINUS);					path.addPath(op);					step= op;							break;		}		case UNARY_MINUS:		{			AST __t180 = _t;			AST tmp35_AST_in = (AST)_t;			match(_t,UNARY_MINUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			_t = __t180;			_t = _t.getNextSibling();								UnaryExpr unary= new UnaryExpr(Constants.MINUS);					unary.add(left);					path.addPath(unary);					step= unary;							break;		}		case UNARY_PLUS:		{			AST __t181 = _t;			AST tmp36_AST_in = (AST)_t;			match(_t,UNARY_PLUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			_t = __t181;			_t = _t.getNextSibling();								UnaryExpr unary= new UnaryExpr(Constants.PLUS);					unary.add(left);					path.addPath(unary);					step= unary;							break;		}		case LITERAL_div:		{			AST __t182 = _t;			AST tmp37_AST_in = (AST)_t;			match(_t,LITERAL_div);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t182;			_t = _t.getNextSibling();								OpNumeric op= new OpNumeric(left, right, Constants.DIV);					path.addPath(op);					step= op;							break;		}		case LITERAL_mod:		{			AST __t183 = _t;			AST tmp38_AST_in = (AST)_t;			match(_t,LITERAL_mod);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t183;			_t = _t.getNextSibling();								OpNumeric op= new OpNumeric(left, right, Constants.MOD);					path.addPath(op);					step= op;							break;		}		case STAR:		{			AST __t184 = _t;			AST tmp39_AST_in = (AST)_t;			match(_t,STAR);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t184;			_t = _t.getNextSibling();								OpNumeric op= new OpNumeric(left, right, Constants.MULT);					path.addPath(op);					step= op;							break;		}		default:		{			throw new NoViableAltException(_t);		}		}		_retTree = _t;		return step;	}