public Parser compilationGroup() {
        if (compilationGroupParser == null) {
           FutureParser future = scoped("compilationGroup");
           compilationGroupParser = future;
           future.setParser(
               star(
                   choice(
                       compilerDirective(),
                       compilationUnit()
                   )
               )
           );
        }

        return compilationGroupParser;
    }