public Parser timeoutPhrase() {
        if (timeoutPhraseParser == null) {
           FutureParser future = scoped("timeoutPhrase");
           timeoutPhraseParser = future;
           future.setParser(
               sequence(
                   choice(
                       token("TIME-OUT"),
                       token("TIMEOUT")
                   ),
                   token("AFTER"),
                   choice(
                       identifier(),
                       integer()
                   )
               )
           );
        }

        return timeoutPhraseParser;
    }