public Parser callPrototypeIdParagraph() {
        if (callPrototypeIdParagraphParser == null) {
           FutureParser future = scoped("callPrototypeIdParagraph");
           callPrototypeIdParagraphParser = future;
           future.setParser(
               sequence(
                   token("PROGRAM-ID"),
                   optional(
                       token(".")
                   ),
                   programName(),
                   optional(
                       token("IS")
                   ),
                   token("EXTERNAL"),
                   optional(
                       token("PROGRAM")
                   ),
                   optional(
                       token(".")
                   )
               )
           );
        }

        return callPrototypeIdParagraphParser;
    }