public Parser specialNameStatement() {
        if (specialNameStatementParser == null) {
           FutureParser future = scoped("specialNameStatement");
           specialNameStatementParser = future;
           future.setParser(
               choice(
                   consoleIsCRT(),
                   alphabetIs(),
                   symbolicChars(),
                   classIs(),
                   localeIs(),
                   currencySignIs(),
                   decimalIsComma(),
                   numericSignIs(),
                   callConvention(),
                   cursorIs(),
                   crtStatusIs(),
                   xmlSchemaIs(),
                   screenControlIs(),
                   eventStatusIs(),
                   sequence(
                       cobolSwitch(),
                       token("IS"),
                       mnemonicName(),
                       star(
                           sequence(
                               choice(
                                   token("ON"),
                                   token("OFF")
                               ),
                               optional(
                                   token("STATUS")
                               ),
                               optional(
                                   token("IS")
                               ),
                               conditionName()
                           )
                       )
                   ),
                   sequence(
                       cobolDevice(),
                       token("IS"),
                       mnemonicName()
                   )
               )
           );
        }

        return specialNameStatementParser;
    }