public Parser communicationDescriptionEntry_format2() {
        if (communicationDescriptionEntry_format2Parser == null) {
           FutureParser future = scoped("communicationDescriptionEntry_format2");
           communicationDescriptionEntry_format2Parser = future;
           future.setParser(
               sequence(
                   token("CD"),
                   cdName(),
                   optional(
                       token("FOR")
                   ),
                   token("OUTPUT"),
                   optional(
                       sequence(
                           token("DESTINATION"),
                           token("COUNT"),
                           optional(
                               token("IS")
                           ),
                           dataDescName()
                       )
                   ),
                   optional(
                       sequence(
                           token("TEXT"),
                           token("LENGTH"),
                           optional(
                               token("IS")
                           ),
                           dataDescName()
                       )
                   ),
                   optional(
                       sequence(
                           token("STATUS"),
                           token("KEY"),
                           optional(
                               token("IS")
                           ),
                           dataDescName()
                       )
                   ),
                   optional(
                       sequence(
                           token("DESTINATION"),
                           token("TABLE"),
                           token("OCCURS"),
                           integer(),
                           optional(
                               token("TIMES")
                           ),
                           optional(
                               sequence(
                                   token("INDEXED"),
                                   optional(
                                       token("BY")
                                   ),
                                   plus(
                                       indexName()
                                   )
                               )
                           )
                       )
                   ),
                   optional(
                       sequence(
                           token("ERROR"),
                           token("KEY"),
                           optional(
                               token("IS")
                           ),
                           dataDescName()
                       )
                   ),
                   optional(
                       sequence(
                           optional(
                               token("SYMBOLIC")
                           ),
                           token("DESTINATION"),
                           optional(
                               token("IS")
                           ),
                           dataDescName()
                       )
                   ),
                   token(".")
               )
           );
        }

        return communicationDescriptionEntry_format2Parser;
    }