// PARSE the next top-level declaration
lastSugaredToplevelDecl = declProvider.getNextToplevelDecl(true, false);
stepped();
IStrategoTerm analyzed = currentAnalyze(lastSugaredToplevelDecl);
analyzed = ATermCommands.copyTokens(lastSugaredToplevelDecl, analyzed);
lastSugaredToplevelDecl = analyzed;
stepped();
// DESUGAR the parsed top-level declaration
IStrategoTerm desugared = currentDesugar(analyzed);
stepped();
// RENAME the desugared top-level declaration
IStrategoTerm renamed = currentRename(desugared);
stepped();
// PROCESS the assimilated top-level declaration
processToplevelDeclaration(renamed);