core/src/main/java/io/parsingdata/metal/token/CycleToken.java
/**
     * Parse this {@link Token}. Adds itself to the list of references maintained in the {@link Environment}'s
     * {@link ParseState} object to quickly allow detection of potential cycles.
     *
     * @param environment the environment to apply the parse to
     * @return a non-empty {@code Optional<ParseState>} if successful, otherwise {@code Optional.empty()}
     */
Parse this  Token. Adds itself to the list of references maintained in the  Environment's
ParseState object to quickly allow detection of potential cycles.

@param environment the environment to apply the parse to
@return a non-empty  Optional if successful, otherwise  Optional.empty()
Parse this Token . Adds itself to the list of references maintained in the Environment ' s ParseState object to quickly allow detection of potential cycles . @param environment the environment to apply the parse to @return a non - empty Optional if successful otherwise Optional . empty ()
@Override
    public Optional<ParseState> parse(Environment environment) {
        return super.parse(
            environment.addCycleReference(
                    new ParseReference(environment.parseState.offset, environment.parseState.source, this.getCanonical(environment.parseState))));
    }
@ Override public Optional < ParseState > parse ( Environment environment ) { return super . parse ( environment . addCycleReference ( new ParseReference ( environment . parseState . offset , environment . parseState . source , this . getCanonical ( environment . parseState ) ) ) ) ; }
Parse this {@link Token}.
Parse this { @link Token } .