public Parser propertyName() {
        if (propertyNameParser == null) {
           FutureParser future = scoped("propertyName");
           propertyNameParser = future;
           future.setParser(
               choice(
                   identifier(),
                   alphanumeric()
               )
           );
        }

        return propertyNameParser;
    }