public Parser programPrototypeIdParagraph() {
        if (programPrototypeIdParagraphParser == null) {
           FutureParser future = scoped("programPrototypeIdParagraph");
           programPrototypeIdParagraphParser = future;
           future.setParser(
               sequence(
                   token("PROGRAM-ID"),
                   optional(
                       token(".")
                   ),
                   programName(),
                   optional(
                       sequence(
                           token("AS"),
                           literal()
                       )
                   ),
                   optional(
                       token("IS")
                   ),
                   token("PROTOTYPE"),
                   optional(
                       token(".")
                   )
               )
           );
        }

        return programPrototypeIdParagraphParser;
    }