public Parser sentence() {
        if (sentenceParser == null) {
           FutureParser future = scoped("sentence");
           sentenceParser = future;
           future.setParser(
               choice(
                   compilerStatement(),
                   sequence(
                       statement(),
                       star(
                           choice(
                               compilerStatement(),
                               statement(),
                               continuationOfStatement()
                           )
                       ),
                       token(".")
                   ),
                   token(".")
               )
           );
        }

        return sentenceParser;
    }