public Parser object() {
        if (objectParser == null) {
           FutureParser future = scoped("object");
           objectParser = future;
           future.setParser(
               choice(
                   token("ANY"),
                   rangeExpression(),
                   token("TRUE"),
                   token("FALSE"),
                   condition(),
                   sequence(
                       optional(
                           token("NOT")
                       ),
                       choice(
                           arithmeticExpression(),
                           identifier(),
                           literal()
                       )
                   ),
                   sequence(
                       token("("),
                       object(),
                       token(")")
                   )
               )
           );
        }

        return objectParser;
    }