public ATN getATNWithBypassAlts() {String serializedAtn = getSerializedATN();if (serializedAtn == null) {throw new UnsupportedOperationException("The current parser does not support an ATN with bypass alternatives.");}synchronized (bypassAltsAtnCache) {ATN result = bypassAltsAtnCache.get(serializedAtn);if (result == null) {ATNDeserializationOptions deserializationOptions = new ATNDeserializationOptions();deserializationOptions.setGenerateRuleBypassTransitions(true);result = new ATNDeserializer(deserializationOptions).deserialize(serializedAtn.toCharArray());bypassAltsAtnCache.put(serializedAtn, result);}return result;}}

public virtual ATN GetATNWithBypassAlts(){string serializedAtn = SerializedAtn;if (serializedAtn == null){throw new NotSupportedException("The current parser does not support an ATN with bypass alternatives.");}lock (bypassAltsAtnCache){ATN result = bypassAltsAtnCache.Get(serializedAtn);if (result == null){ATNDeserializationOptions deserializationOptions = new ATNDeserializationOptions();deserializationOptions.GenerateRuleBypassTransitions = true;result = new ATNDeserializer(deserializationOptions).Deserialize(serializedAtn.ToCharArray());bypassAltsAtnCache.Put(serializedAtn, result);}return result;}}
