if ( _cnt36>=1 ) { break _loop36; } else {throw new NoViableAltException(LT(1), getFilename());}
if ( _cnt38>=1 ) { break _loop38; } else {throw new NoViableAltException(LT(1), getFilename());}
	public final void pathexpr(		PathExpr expr	) throws RecognitionException, TokenStreamException, PermissionDeniedException,EXistException {							Expression result = null;			PathExpr path = null;						switch ( LA(1)) {		case NCNAME:		case CONST:		case STAR:		case INT:		case LITERAL_text:		case 29:		case 30:		case LITERAL_contains:		case LITERAL_match:		case LITERAL_near:		case SLASH:		case DSLASH:		case AT:		case ATTRIB_STAR:		case LITERAL_node:		case PARENT:		case SELF:		case LITERAL_descendant:		case 43:		case LITERAL_child:		case LITERAL_parent:		case LITERAL_self:		case LITERAL_attribute:		case LITERAL_ancestor:		case 49:		case 50:		case 51:		{			{			int _cnt36=0;			_loop36:			do {				if ((_tokenSet_0.member(LA(1)))) {					result=regularexpr(expr);					if ( inputState.guessing==0 ) {														if(result instanceof Step && ((Step)result).getAxis() == -1)									((Step)result).setAxis(Constants.CHILD_AXIS);												}				}				else {					if ( _cnt36>=1 ) { break _loop36; } else {throw new NoViableAltException(LT(1), getFilename());}				}								_cnt36++;			} while (true);			}			break;		}		case LPAREN:		{			match(LPAREN);			if ( inputState.guessing==0 ) {				path = new PathExpr(pool);			}			or_expr(path);			match(RPAREN);			if ( inputState.guessing==0 ) {										expr.addPath(path);								}			break;		}		default:		{			throw new NoViableAltException(LT(1), getFilename());		}		}	}