public Parser setStatement() {
        if (setStatementParser == null) {
           FutureParser future = scoped("setStatement");
           setStatementParser = future;
           future.setParser(
               sequence(
                   token("SET"),
                   choice(
                       setFormatMonitorValue(),
                       setFormatDataPointerAssignment(),
                       setFormatProcedurePointerAssignment(),
                       setFormatSemaphoreValue(),
                       setFormat1(),
                       setFormat2(),
                       setFormat3()
                   ),
                   optional(
                       skipto(
                           choice(
                               token("."),
                               endOfStatement()
                           )
                       )
                   )
               )
           );
        }

        return setStatementParser;
    }