Source:
protected Decl declSpecifierSequence_initDeclarator(final DeclarationOptions option, boolean acceptCompoundWithoutDtor, ITemplateIdStrategy strat) throws EndOfFileException, FoundAggregateInitializer, BacktrackException { Decl result = declSpecifierSeq(option, strat); final int lt1 = LTcatchEOF(1); if (lt1 == IToken.tEOC) return result; if (isAutoType(result.fDeclSpec1) && isAtStartOfStructuredBinding()) { return result; } final boolean acceptEmpty = acceptCompoundWithoutDtor && isLegalWithoutDtor(result.fDeclSpec1); if (acceptEmpty) { switch (lt1) { case 0: case IToken.tEOC: case IToken.tSEMI: return result; } } final IToken dtorMark1 = mark(); final IToken dtorMark2 = result.fDtorToken1; final IASTDeclSpecifier declspec1 = result.fDeclSpec1; final IASTDeclSpecifier declspec2 = result.fDeclSpec2; IASTDeclarator dtor1, dtor2; try { dtor1 = initDeclarator(declspec1, option); } catch (BacktrackException e) { if (acceptEmpty) { backup(dtorMark1); dtor1 = null; } else { if (dtorMark2 == null) throw e; backup(dtorMark2); dtor2 = initDeclarator(declspec2, option); return result.set(declspec2, dtor2, dtorMark2); } } if (dtorMark2 == null) { return result.set(declspec1, dtor1, dtorMark1); } final IToken end1 = mark(); backup(dtorMark2); try { dtor2 = initDeclarator(declspec2, option); } catch (BacktrackException e) { backup(end1); return result.set(declspec1, dtor1, dtorMark1); } final IToken end2 = mark(); if (end1 == end2) { return result.set(declspec1, dtor1, declspec2, dtor2); } if (end1.getEndOffset() > end2.getEndOffset()) { backup(end1); return result.set(declspec1, dtor1, dtorMark1); } return result.set(declspec2, dtor2, dtorMark2); }

Target:
protected Decl declSpecifierSequence_initDeclarator(final DeclarationOptions option, boolean acceptCompoundWithoutDtor, ITemplateIdStrategy strat) throws EndOfFileException, FoundAggregateInitializer, BacktrackException { Decl result = declSpecifierSeq(option, strat); final int lt1 = LTcatchEOF(1); if (lt1 == IToken.tEOC) return result; if (isAtStartOfStructuredBinding(result.fDeclSpec1)) { result.isAtStartOfStructuredBinding = true; return result; } final boolean acceptEmpty = acceptCompoundWithoutDtor && isLegalWithoutDtor(result.fDeclSpec1); if (acceptEmpty) { switch (lt1) { case 0: case IToken.tEOC: case IToken.tSEMI: return result; } } final IToken dtorMark1 = mark(); final IToken dtorMark2 = result.fDtorToken1; final IASTDeclSpecifier declspec1 = result.fDeclSpec1; final IASTDeclSpecifier declspec2 = result.fDeclSpec2; IASTDeclarator dtor1, dtor2; try { dtor1 = initDeclarator(declspec1, option); } catch (BacktrackException e) { if (acceptEmpty) { backup(dtorMark1); dtor1 = null; } else { if (dtorMark2 == null) throw e; backup(dtorMark2); dtor2 = initDeclarator(declspec2, option); return result.set(declspec2, dtor2, dtorMark2); } } if (dtorMark2 == null) { return result.set(declspec1, dtor1, dtorMark1); } final IToken end1 = mark(); backup(dtorMark2); try { dtor2 = initDeclarator(declspec2, option); } catch (BacktrackException e) { backup(end1); return result.set(declspec1, dtor1, dtorMark1); } final IToken end2 = mark(); if (end1 == end2) { return result.set(declspec1, dtor1, declspec2, dtor2); } if (end1.getEndOffset() > end2.getEndOffset()) { backup(end1); return result.set(declspec1, dtor1, dtorMark1); } return result.set(declspec2, dtor2, dtorMark2); }