Package org.antlr.v4.parse
Class ScopeParser
java.lang.Object
org.antlr.v4.parse.ScopeParser
Parse args, return values, locals
rule[arg1, arg2, ..., argN] returns [ret1, ..., retN]
text is target language dependent. Java/C#/C/C++ would use "int i" but ruby/python would use "i". Languages with postfix types like Go, Swift use "x : T" notation or "T x".
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription_parsePostfixDecl
(Attribute attr, String decl, ActionAST a, Grammar g) _parsePrefixDecl
(Attribute attr, String decl, ActionAST a, Grammar g) static int
_splitArgumentList
(String actionText, int start, int targetChar, int separatorChar, List<Pair<String, Integer>> args) static AttributeDict
static Attribute
For decls like "String foo" or "char *foo32[]" compute the ID and type declarations.static AttributeDict
parseTypedArgList
(ActionAST action, String s, Grammar g) Given an arg or retval scope definition list likesplitDecls
(String s, int separatorChar) Given an argument list like
-
Constructor Details
-
ScopeParser
public ScopeParser()
-
-
Method Details
-
parseTypedArgList
Given an arg or retval scope definition list likeMap<String, String>, int[] j3, char *foo32[3]
or
int i=3, j=a[34]+20
convert to an attribute scope.
-
parse
-
parseAttributeDef
For decls like "String foo" or "char *foo32[]" compute the ID and type declarations. Also handle "int x=3" and 'T t = new T("foo")' but if the separator is ',' you cannot use ',' in the initvalue unless you escape use "\," escape. -
_parsePrefixDecl
-
_parsePostfixDecl
-
splitDecls
Given an argument list likex, (*a).foo(21,33), 3.2+1, '\n', "a,oo\nick", {bl, "fdkj"eck}, ["cat\n,", x, 43]
convert to a list of attributes. Allow nested square brackets etc... Set separatorChar to ';' or ',' or whatever you want.
-
_splitArgumentList
-