public Parser objectSection() {
        if (objectSectionParser == null) {
           FutureParser future = scoped("objectSection");
           objectSectionParser = future;
           future.setParser(
               choice(
                   sequence(
                       token("OBJECT"),
                       token("SECTION"),
                       token("."),
                       optional(
                           objectSectionBody()
                       )
                   ),
                   objectSectionBody()
               )
           );
        }

        return objectSectionParser;
    }