public class ProtoParser
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static interface |
ProtoParser.DeferredTypeResolve |
Modifier and Type | Field and Description |
---|---|
private int |
cursor |
private static java.lang.ThreadLocal<java.util.Queue<ProtoParser.DeferredTypeResolve>> |
deferred |
private java.lang.String |
deferredName |
private int |
endOffset |
private char[] |
expr |
private boolean |
interpreted |
private java.lang.String |
name |
private ParserContext |
pCtx |
private java.lang.String |
protoName |
private ExecutionStack |
splitAccumulator |
(package private) java.lang.String |
tk1 |
(package private) java.lang.String |
tk2 |
private java.lang.Class |
type |
Constructor and Description |
---|
ProtoParser(char[] expr,
int offset,
int offsetEnd,
java.lang.String protoName,
ParserContext pCtx,
int fields,
ExecutionStack splitAccumulator) |
Modifier and Type | Method and Description |
---|---|
private void |
calculateDecl() |
static void |
checkForPossibleUnresolvedViolations(char[] expr,
int cursor,
ParserContext pCtx)
This is such a horrible hack, but it's more performant than any other horrible hack I can think of
right now.
|
private void |
enqueueReceiverForLateResolution(java.lang.String name,
Proto.Receiver receiver,
java.lang.String initializer) |
int |
getCursor() |
static java.lang.String |
getNextUnresolvedWaiting() |
static boolean |
isUnresolvedWaiting() |
static void |
notifyForLateResolution(Proto proto) |
Proto |
parse() |
private char[] expr
private ParserContext pCtx
private int endOffset
private int cursor
private java.lang.String protoName
java.lang.String tk1
java.lang.String tk2
private java.lang.Class type
private java.lang.String name
private java.lang.String deferredName
private boolean interpreted
private ExecutionStack splitAccumulator
private static java.lang.ThreadLocal<java.util.Queue<ProtoParser.DeferredTypeResolve>> deferred
public ProtoParser(char[] expr, int offset, int offsetEnd, java.lang.String protoName, ParserContext pCtx, int fields, ExecutionStack splitAccumulator)
public Proto parse()
private void calculateDecl()
private void enqueueReceiverForLateResolution(java.lang.String name, Proto.Receiver receiver, java.lang.String initializer)
public static void notifyForLateResolution(Proto proto)
public int getCursor()
public static void checkForPossibleUnresolvedViolations(char[] expr, int cursor, ParserContext pCtx)
expr
- cursor
- pCtx
- public static boolean isUnresolvedWaiting()
public static java.lang.String getNextUnresolvedWaiting()