if ( synPredMatched280 ) {
if ( synPredMatched281 ) {
	public final void compAttrConstructor() throws RecognitionException, TokenStreamException, XPathException {				returnAST = null;		ASTPair currentAST = new ASTPair();		org.exist.xquery.parser.XQueryAST compAttrConstructor_AST = null;		org.exist.xquery.parser.XQueryAST e1_AST = null;		org.exist.xquery.parser.XQueryAST e2_AST = null;		org.exist.xquery.parser.XQueryAST e3_AST = null;					String qn;						boolean synPredMatched280 = false;		if (((LA(1)==LITERAL_attribute))) {			int _m280 = mark();			synPredMatched280 = true;			inputState.guessing++;			try {				{				match(LITERAL_attribute);				match(LCURLY);				}			}			catch (RecognitionException pe) {				synPredMatched280 = false;			}			rewind(_m280);			inputState.guessing--;		}		if ( synPredMatched280 ) {			match(LITERAL_attribute);			match(LCURLY);			expr();			e1_AST = (org.exist.xquery.parser.XQueryAST)returnAST;			astFactory.addASTChild(currentAST, returnAST);			match(RCURLY);			match(LCURLY);			expr();			e2_AST = (org.exist.xquery.parser.XQueryAST)returnAST;			astFactory.addASTChild(currentAST, returnAST);			match(RCURLY);			if ( inputState.guessing==0 ) {				compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;				compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)astFactory.make( (new ASTArray(2)).add((org.exist.xquery.parser.XQueryAST)astFactory.create(COMP_ATTR_CONSTRUCTOR)).add(compAttrConstructor_AST));				currentAST.root = compAttrConstructor_AST;				currentAST.child = compAttrConstructor_AST!=null &&compAttrConstructor_AST.getFirstChild()!=null ?					compAttrConstructor_AST.getFirstChild() : compAttrConstructor_AST;				currentAST.advanceChildToEnd();			}			compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;		}		else if ((LA(1)==LITERAL_attribute)) {			match(LITERAL_attribute);			qn=qName();			astFactory.addASTChild(currentAST, returnAST);			match(LCURLY);			expr();			e3_AST = (org.exist.xquery.parser.XQueryAST)returnAST;			astFactory.addASTChild(currentAST, returnAST);			match(RCURLY);			if ( inputState.guessing==0 ) {				compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;				compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)astFactory.make( (new ASTArray(3)).add((org.exist.xquery.parser.XQueryAST)astFactory.create(COMP_ATTR_CONSTRUCTOR,qn)).add((org.exist.xquery.parser.XQueryAST)astFactory.create(STRING_LITERAL,qn)).add(e3_AST));				currentAST.root = compAttrConstructor_AST;				currentAST.child = compAttrConstructor_AST!=null &&compAttrConstructor_AST.getFirstChild()!=null ?					compAttrConstructor_AST.getFirstChild() : compAttrConstructor_AST;				currentAST.advanceChildToEnd();			}			compAttrConstructor_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;		}		else {			throw new NoViableAltException(LT(1), getFilename());		}				returnAST = compAttrConstructor_AST;	}