/** * A filter for the sequence </br> Combines the sequential type and method declarations into a * block </br> * * @return return the sequence after combination. */ private Sequence combine() { boolean recBlock = false; Sequence normalSeq = new Sequence(); Sequence recSequence = new DeclSequence(); for (TypedAST ast : this.getIterator()) { if (ast instanceof TypeVarDecl || ast instanceof DefDeclaration || ast instanceof TypeAbbrevDeclaration) { Declaration d = (Declaration) ast; if (recBlock == false) { recBlock = true; recSequence = new DeclSequence(); } recSequence = Sequence.append(recSequence, d); } else { if (recBlock == true) { normalSeq = Sequence.append(normalSeq, recSequence); } normalSeq = Sequence.append(normalSeq, ast); recBlock = false; } } if (recBlock == true) { normalSeq = Sequence.append(normalSeq, recSequence); } return normalSeq; }