declareRangeVariable(v); declareRangeVariable(bindings[z]); declareRangeVariable(bindings[z]);
declareRangeVariable(v); declareRangeVariable(bindings[z]); declareRangeVariable(bindings[z]);
private Expression parseTypeswitchReturnClause(StructuredQName varQName, LetExpression outerLet) throws XPathException { Expression action; // t.treatCurrentAsOperator(); // expect(Token.RETURN); // nextToken(); LetExpression innerLet = makeLetExpression(); innerLet.setRequiredType(SequenceType.ANY_SEQUENCE); innerLet.setVariableQName(varQName); innerLet.setSequence(new LocalVariableReference(outerLet)); declareRangeVariable(innerLet); action = parseExprSingle(); undeclareRangeVariable(); innerLet.setAction(action); return innerLet; // if (Literal.isEmptySequence(action)) { // // The purpose of simplifying this now is that () is allowed in a branch even in XQuery Update when // // other branches of the typeswitch are updating. // return action; // } else { // return innerLet; // } }
private Expression parseTypeswitchReturnClause(StructuredQName varQName, LetExpression outerLet) throws XPathException { Expression action; // t.treatCurrentAsOperator(); // expect(Token.RETURN); // nextToken(); LetExpression innerLet = makeLetExpression(); innerLet.setRequiredType(SequenceType.ANY_SEQUENCE); innerLet.setVariableQName(varQName); innerLet.setSequence(new LocalVariableReference(outerLet)); declareRangeVariable(innerLet); action = parseExprSingle(); undeclareRangeVariable(); innerLet.setAction(action); return innerLet; // if (Literal.isEmptySequence(action)) { // // The purpose of simplifying this now is that () is allowed in a branch even in XQuery Update when // // other branches of the typeswitch are updating. // return action; // } else { // return innerLet; // } }
/** * Parse a CountClause. * <p> * [44] CountClause ::= <"count" "$"> VarName * </p> * * @param clauseList - the components of the parsed CountClause are appended to the * supplied list * @throws XPathException in the event of a syntax error */ private void parseCountClause(List<Clause> clauseList) throws XPathException { do { CountClause clause = new CountClause(); setLocation(clause, t.currentTokenStartOffset); clause.setRepeated(containsLoopingClause(clauseList)); clauseList.add(clause); nextToken(); expect(Token.DOLLAR); nextToken(); expect(Token.NAME); String var = t.currentTokenValue; StructuredQName varQName = makeStructuredQName(var, ""); SequenceType type = SequenceType.ANY_SEQUENCE; nextToken(); LocalVariableBinding v = new LocalVariableBinding(varQName, type); clause.setRangeVariable(v); declareRangeVariable(v); } while (t.currentToken == Token.COMMA); }
/** * Parse a CountClause. * <p> * [44] CountClause ::= <"count" "$"> VarName * </p> * * @param clauseList - the components of the parsed CountClause are appended to the * supplied list * @throws XPathException in the event of a syntax error */ private void parseCountClause(List<Clause> clauseList) throws XPathException { do { CountClause clause = new CountClause(); setLocation(clause, t.currentTokenStartOffset); clause.setRepeated(containsLoopingClause(clauseList)); clauseList.add(clause); nextToken(); expect(Token.DOLLAR); nextToken(); expect(Token.NAME); String var = t.currentTokenValue; StructuredQName varQName = makeStructuredQName(var, ""); SequenceType type = SequenceType.ANY_SEQUENCE; nextToken(); LocalVariableBinding v = new LocalVariableBinding(varQName, type); clause.setRangeVariable(v); declareRangeVariable(v); } while (t.currentToken == Token.COMMA); }
LocalVariableBinding startItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeMandatory); clause.setVariableBinding(WindowClause.START_ITEM, startItemVar); declareRangeVariable(startItemVar); LocalVariableBinding startPositionVar = new LocalVariableBinding(readVariableName(), SequenceType.SINGLE_INTEGER); clause.setVariableBinding(WindowClause.START_ITEM_POSITION, startPositionVar); declareRangeVariable(startPositionVar); LocalVariableBinding startPreviousItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.START_PREVIOUS_ITEM, startPreviousItemVar); declareRangeVariable(startPreviousItemVar); LocalVariableBinding startNextItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.START_NEXT_ITEM, startNextItemVar); declareRangeVariable(startNextItemVar); LocalVariableBinding endItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeMandatory); clause.setVariableBinding(WindowClause.END_ITEM, endItemVar); declareRangeVariable(endItemVar); LocalVariableBinding endPositionVar = new LocalVariableBinding(readVariableName(), SequenceType.SINGLE_INTEGER); clause.setVariableBinding(WindowClause.END_ITEM_POSITION, endPositionVar); declareRangeVariable(endPositionVar); LocalVariableBinding endPreviousItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.END_PREVIOUS_ITEM, endPreviousItemVar); declareRangeVariable(endPreviousItemVar); LocalVariableBinding endNextItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional);
LocalVariableBinding startItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeMandatory); clause.setVariableBinding(WindowClause.START_ITEM, startItemVar); declareRangeVariable(startItemVar); LocalVariableBinding startPositionVar = new LocalVariableBinding(readVariableName(), SequenceType.SINGLE_INTEGER); clause.setVariableBinding(WindowClause.START_ITEM_POSITION, startPositionVar); declareRangeVariable(startPositionVar); LocalVariableBinding startPreviousItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.START_PREVIOUS_ITEM, startPreviousItemVar); declareRangeVariable(startPreviousItemVar); LocalVariableBinding startNextItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.START_NEXT_ITEM, startNextItemVar); declareRangeVariable(startNextItemVar); LocalVariableBinding endItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeMandatory); clause.setVariableBinding(WindowClause.END_ITEM, endItemVar); declareRangeVariable(endItemVar); LocalVariableBinding endPositionVar = new LocalVariableBinding(readVariableName(), SequenceType.SINGLE_INTEGER); clause.setVariableBinding(WindowClause.END_ITEM_POSITION, endPositionVar); declareRangeVariable(endPositionVar); LocalVariableBinding endPreviousItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional); clause.setVariableBinding(WindowClause.END_PREVIOUS_ITEM, endPreviousItemVar); declareRangeVariable(endPreviousItemVar); LocalVariableBinding endNextItemVar = new LocalVariableBinding(readVariableName(), windowItemTypeOptional);
clause.initSequence(flwor, parseExprSingle()); clause.setRangeVariable(v); declareRangeVariable(v); } while (t.currentToken == Token.COMMA);
clause.initSequence(flwor, parseExprSingle()); clause.setRangeVariable(v); declareRangeVariable(v); } while (t.currentToken == Token.COMMA);
nextToken(); clause.initSequence(flwor, parseExprSingle()); declareRangeVariable(clause.getRangeVariable()); if (clause.getPositionVariable() != null) { declareRangeVariable(clause.getPositionVariable());
nextToken(); clause.initSequence(flwor, parseExprSingle()); declareRangeVariable(clause.getRangeVariable()); if (clause.getPositionVariable() != null) { declareRangeVariable(clause.getPositionVariable());
arg.setVariableQName(argQName); func.addArgument(arg); declareRangeVariable(arg); if (t.currentToken == Token.RPAR) { break;
arg.setVariableQName(argQName); func.addArgument(arg); declareRangeVariable(arg); if (t.currentToken == Token.RPAR) { break;