Package org.antlr.v4.runtime.atn
Class ATNDeserializer
- java.lang.Object
-
- org.antlr.v4.runtime.atn.ATNDeserializer
-
public class ATNDeserializer extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
ATNDeserializer.UnicodeDeserializer
(package private) static class
ATNDeserializer.UnicodeDeserializingMode
-
Field Summary
Fields Modifier and Type Field Description private static java.util.UUID
ADDED_LEXER_ACTIONS
This UUID indicates an extension ofADDED_PRECEDENCE_TRANSITIONS
for the addition of lexer actions encoded as a sequence ofLexerAction
instances.private static java.util.UUID
ADDED_PRECEDENCE_TRANSITIONS
This UUID indicates an extension ofBASE_SERIALIZED_UUID
for the addition of precedence predicates.private static java.util.UUID
ADDED_UNICODE_SMP
This UUID indicates the serialized ATN contains two sets of IntervalSets, where the second set's values are encoded as 32-bit integers to support the full Unicode SMP range up to U+10FFFF.private static java.util.UUID
BASE_SERIALIZED_UUID
This is the earliest supported serialized UUID.private ATNDeserializationOptions
deserializationOptions
static java.util.UUID
SERIALIZED_UUID
This is the current serialized UUID.static int
SERIALIZED_VERSION
private static java.util.List<java.util.UUID>
SUPPORTED_UUIDS
This list contains all of the currently supported UUIDs, ordered by when the feature first appeared in this branch.
-
Constructor Summary
Constructors Constructor Description ATNDeserializer()
ATNDeserializer(ATNDeserializationOptions deserializationOptions)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkCondition(boolean condition)
protected void
checkCondition(boolean condition, java.lang.String message)
ATN
deserialize(char[] data)
private int
deserializeSets(char[] data, int p, java.util.List<IntervalSet> sets, ATNDeserializer.UnicodeDeserializer unicodeDeserializer)
protected Transition
edgeFactory(ATN atn, int type, int src, int trg, int arg1, int arg2, int arg3, java.util.List<IntervalSet> sets)
(package private) static ATNDeserializer.UnicodeDeserializer
getUnicodeDeserializer(ATNDeserializer.UnicodeDeserializingMode mode)
protected static boolean
isFeatureSupported(java.util.UUID feature, java.util.UUID actualUuid)
Determines if a particular serialized representation of an ATN supports a particular feature, identified by theUUID
used for serializing the ATN at the time the feature was first introduced.protected LexerAction
lexerActionFactory(LexerActionType type, int data1, int data2)
protected void
markPrecedenceDecisions(ATN atn)
Analyze theStarLoopEntryState
states in the specified ATN to set theStarLoopEntryState.isPrecedenceDecision
field to the correct value.protected ATNState
stateFactory(int type, int ruleIndex)
protected static int
toInt(char c)
protected static int
toInt32(char[] data, int offset)
protected static long
toLong(char[] data, int offset)
protected static java.util.UUID
toUUID(char[] data, int offset)
protected void
verifyATN(ATN atn)
-
-
-
Field Detail
-
SERIALIZED_VERSION
public static final int SERIALIZED_VERSION
-
BASE_SERIALIZED_UUID
private static final java.util.UUID BASE_SERIALIZED_UUID
This is the earliest supported serialized UUID.
-
ADDED_PRECEDENCE_TRANSITIONS
private static final java.util.UUID ADDED_PRECEDENCE_TRANSITIONS
This UUID indicates an extension ofBASE_SERIALIZED_UUID
for the addition of precedence predicates.
-
ADDED_LEXER_ACTIONS
private static final java.util.UUID ADDED_LEXER_ACTIONS
This UUID indicates an extension ofADDED_PRECEDENCE_TRANSITIONS
for the addition of lexer actions encoded as a sequence ofLexerAction
instances.
-
ADDED_UNICODE_SMP
private static final java.util.UUID ADDED_UNICODE_SMP
This UUID indicates the serialized ATN contains two sets of IntervalSets, where the second set's values are encoded as 32-bit integers to support the full Unicode SMP range up to U+10FFFF.
-
SUPPORTED_UUIDS
private static final java.util.List<java.util.UUID> SUPPORTED_UUIDS
This list contains all of the currently supported UUIDs, ordered by when the feature first appeared in this branch.
-
SERIALIZED_UUID
public static final java.util.UUID SERIALIZED_UUID
This is the current serialized UUID.
-
deserializationOptions
private final ATNDeserializationOptions deserializationOptions
-
-
Constructor Detail
-
ATNDeserializer
public ATNDeserializer()
-
ATNDeserializer
public ATNDeserializer(ATNDeserializationOptions deserializationOptions)
-
-
Method Detail
-
getUnicodeDeserializer
static ATNDeserializer.UnicodeDeserializer getUnicodeDeserializer(ATNDeserializer.UnicodeDeserializingMode mode)
-
isFeatureSupported
protected static boolean isFeatureSupported(java.util.UUID feature, java.util.UUID actualUuid)
Determines if a particular serialized representation of an ATN supports a particular feature, identified by theUUID
used for serializing the ATN at the time the feature was first introduced.- Parameters:
feature
- TheUUID
marking the first time the feature was supported in the serialized ATN.actualUuid
- TheUUID
of the actual serialized ATN which is currently being deserialized.- Returns:
true
if theactualUuid
value represents a serialized ATN at or after the feature identified byfeature
was introduced; otherwise,false
.
-
deserialize
public ATN deserialize(char[] data)
-
deserializeSets
private int deserializeSets(char[] data, int p, java.util.List<IntervalSet> sets, ATNDeserializer.UnicodeDeserializer unicodeDeserializer)
-
markPrecedenceDecisions
protected void markPrecedenceDecisions(ATN atn)
Analyze theStarLoopEntryState
states in the specified ATN to set theStarLoopEntryState.isPrecedenceDecision
field to the correct value.- Parameters:
atn
- The ATN.
-
verifyATN
protected void verifyATN(ATN atn)
-
checkCondition
protected void checkCondition(boolean condition)
-
checkCondition
protected void checkCondition(boolean condition, java.lang.String message)
-
toInt
protected static int toInt(char c)
-
toInt32
protected static int toInt32(char[] data, int offset)
-
toLong
protected static long toLong(char[] data, int offset)
-
toUUID
protected static java.util.UUID toUUID(char[] data, int offset)
-
edgeFactory
protected Transition edgeFactory(ATN atn, int type, int src, int trg, int arg1, int arg2, int arg3, java.util.List<IntervalSet> sets)
-
stateFactory
protected ATNState stateFactory(int type, int ruleIndex)
-
lexerActionFactory
protected LexerAction lexerActionFactory(LexerActionType type, int data1, int data2)
-
-