_t = __t351;
_t = __t127;
	public final Expression  numericExpr(AST _t,		PathExpr path	) throws RecognitionException, PermissionDeniedException,EXistException {		Expression step;				AST numericExpr_AST_in = (AST)_t;					step = null;			PathExpr left = new PathExpr(pool);			PathExpr right = new PathExpr(pool);						if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case PLUS:		{			AST __t348 = _t;			AST tmp29_AST_in = (AST)_t;			match(_t,PLUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t348;			_t = _t.getNextSibling();									OpNumeric op = new OpNumeric(pool, left, right, Constants.PLUS);						path.addPath(op);						step = op;								break;		}		case MINUS:		{			AST __t349 = _t;			AST tmp30_AST_in = (AST)_t;			match(_t,MINUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t349;			_t = _t.getNextSibling();									OpNumeric op = new OpNumeric(pool, left, right, Constants.MINUS);						path.addPath(op);						step = op;								break;		}		case UNARY_MINUS:		{			AST __t350 = _t;			AST tmp31_AST_in = (AST)_t;			match(_t,UNARY_MINUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			_t = __t350;			_t = _t.getNextSibling();									UnaryExpr unary = new UnaryExpr(pool, Constants.MINUS);						unary.add(left);						path.addPath(unary);						step = unary;								break;		}		case UNARY_PLUS:		{			AST __t351 = _t;			AST tmp32_AST_in = (AST)_t;			match(_t,UNARY_PLUS);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			_t = __t351;			_t = _t.getNextSibling();									UnaryExpr unary = new UnaryExpr(pool, Constants.PLUS);						unary.add(left);						path.addPath(unary);						step = unary;								break;		}		case LITERAL_div:		{			AST __t352 = _t;			AST tmp33_AST_in = (AST)_t;			match(_t,LITERAL_div);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t352;			_t = _t.getNextSibling();									OpNumeric op = new OpNumeric(pool, left, right, Constants.DIV);						path.addPath(op);						step = op;								break;		}		case LITERAL_mod:		{			AST __t353 = _t;			AST tmp34_AST_in = (AST)_t;			match(_t,LITERAL_mod);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t353;			_t = _t.getNextSibling();									OpNumeric op = new OpNumeric(pool, left, right, Constants.MOD);						path.addPath(op);						step = op;								break;		}		case STAR:		{			AST __t354 = _t;			AST tmp35_AST_in = (AST)_t;			match(_t,STAR);			_t = _t.getFirstChild();			expr(_t,left);			_t = _retTree;			expr(_t,right);			_t = _retTree;			_t = __t354;			_t = _t.getNextSibling();									OpNumeric op = new OpNumeric(pool, left, right, Constants.MULT);						path.addPath(op);						step = op;								break;		}		default:		{			throw new NoViableAltException(_t);		}		}		_retTree = _t;		return step;	}