primaryExpression
- Throws:
antlr.RecognitionException
antlr.TokenStreamException
GroovyTokenTypes
static final String[]
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static final antlr.collections.impl.BitSet
static boolean
astFactory, inputState, returnAST, tokenNames, tokenTypeToASTClassMap, traceDepth
ABSTRACT, ANNOTATION, ANNOTATION_ARRAY_INIT, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ANNOTATION_MEMBER_VALUE_PAIR, ANNOTATIONS, ARRAY_DECLARATOR, ASSIGN, AT, BAND, BAND_ASSIGN, BIG_SUFFIX, BLOCK, BNOT, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CASE_GROUP, CLASS_DEF, CLOSABLE_BLOCK, CLOSABLE_BLOCK_OP, CLOSURE_LIST, COLON, COMMA, COMPARE_TO, CTOR_CALL, CTOR_IDENT, DEC, DIGIT, DIGITS_WITH_UNDERSCORE, DIGITS_WITH_UNDERSCORE_OPT, DIV, DIV_ASSIGN, DOLLAR, DOLLAR_REGEXP_CTOR_END, DOLLAR_REGEXP_LITERAL, DOLLAR_REGEXP_SYMBOL, DOT, DYNAMIC_MEMBER, ELIST, ELVIS_OPERATOR, EMPTY_STAT, ENUM_CONSTANT_DEF, ENUM_DEF, EOF, EQUAL, ESC, ESCAPED_DOLLAR, ESCAPED_SLASH, EXPONENT, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FOR_CONDITION, FOR_EACH_CLAUSE, FOR_IN_ITERABLE, FOR_INIT, FOR_ITERATOR, GE, GT, HEX_DIGIT, IDENT, IDENTICAL, IMPLEMENTS_CLAUSE, IMPLICIT_PARAMETERS, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INTERFACE_DEF, LABELED_ARG, LABELED_STAT, LAND, LBRACK, LCURLY, LE, LETTER, LIST_CONSTRUCTOR, LITERAL_as, LITERAL_assert, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_continue, LITERAL_def, LITERAL_default, LITERAL_double, LITERAL_else, LITERAL_enum, LITERAL_extends, LITERAL_false, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_long, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_package, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_trait, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOR, LPAREN, LT, MAP_CONSTRUCTOR, MEMBER_POINTER, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, MULTICATCH, MULTICATCH_TYPES, NLS, NOT_EQUAL, NOT_IDENTICAL, NULL_TREE_LOOKAHEAD, NUM_BIG_DECIMAL, NUM_BIG_INT, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, ONE_NL, OPTIONAL_DOT, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RANGE_EXCLUSIVE, RANGE_INCLUSIVE, RBRACK, RCURLY, REGEX_FIND, REGEX_MATCH, REGEXP_CTOR_END, REGEXP_LITERAL, REGEXP_SYMBOL, RPAREN, SELECT_SLOT, SEMI, SH_COMMENT, SL, SL_ASSIGN, SL_COMMENT, SLIST, SPREAD_ARG, SPREAD_DOT, SPREAD_MAP_ARG, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STAR_STAR, STAR_STAR_ASSIGN, STATIC_IMPORT, STATIC_INIT, STRICTFP, STRING_CH, STRING_CONSTRUCTOR, STRING_CTOR_END, STRING_CTOR_MIDDLE, STRING_CTOR_START, STRING_LITERAL, STRING_NL, SUPER_CTOR_CALL, TRAIT_DEF, TRIPLE_DOT, TYPE, TYPE_ARGUMENT, TYPE_ARGUMENTS, TYPE_LOWER_BOUNDS, TYPE_PARAMETER, TYPE_PARAMETERS, TYPE_UPPER_BOUNDS, TYPECAST, UNARY_MINUS, UNARY_PLUS, UNUSED_CONST, UNUSED_DO, UNUSED_GOTO, VARIABLE_DEF, VARIABLE_PARAMETER_DEF, VOCAB, WILDCARD_TYPE, WS
GroovyRecognizer(antlr.ParserSharedInputState state)
GroovyRecognizer(antlr.TokenBuffer tokenBuf)
protected
GroovyRecognizer(antlr.TokenBuffer tokenBuf,
int k)
GroovyRecognizer(antlr.TokenStream lexer)
protected
GroovyRecognizer(antlr.TokenStream lexer,
int k)
final void
aCase()
final void
additiveExpression(int lc_stmt)
void
addWarning(String warning,
String solution)
final void
andExpression(int lc_stmt)
final void
final void
final void
final void
annotationDefinition(antlr.collections.AST modifiers)
final void
final void
final void
final void
final void
final void
final void
final void
appendedBlock(antlr.collections.AST callee)
final void
argList()
final byte
argument()
final void
final void
final void
assignmentExpression(int lc_stmt)
final void
final void
final void
final void
blockBody(int prevToken)
final void
protected void
final void
final void
builtInTypeArraySpec(boolean addImagNode)
final void
builtInTypeSpec(boolean addImagNode)
final void
final void
final void
checkSuspiciousExpressionStatement(int prevToken)
final void
final void
classDefinition(antlr.collections.AST modifiers)
final void
final void
classOrInterfaceType(boolean addImagNode)
final void
classTypeSpec(boolean addImagNode)
antlr.Token
cloneToken(antlr.Token t)
final void
final void
final void
final void
closableBlockParamsOpt(boolean addImplicit)
final void
final void
final void
final void
commandArguments(antlr.collections.AST head)
final void
commandArgumentsGreedy(antlr.collections.AST head)
final void
final void
final void
final void
conditionalExpression(int lc_stmt)
final void
constant()
final void
final void
final void
constructorDefinition(antlr.collections.AST mods)
final void
final void
antlr.collections.AST
antlr.collections.AST
antlr.collections.AST
antlr.collections.AST
final void
final void
final void
declaratorBrackets(antlr.collections.AST typ)
final void
final void
final void
final void
final void
protected final void
enumConstantFieldInternal(antlr.collections.AST mods,
antlr.collections.AST tp,
antlr.collections.AST t,
antlr.Token first)
final void
final void
final void
enumDefinition(antlr.collections.AST modifiers)
final void
equalityExpression(int lc_stmt)
final void
exclusiveOrExpression(int lc_stmt)
final void
final void
expression(int lc_stmt)
final void
expressionStatement(int prevToken)
final void
final void
final void
forCond()
final void
final void
forInit()
final void
forIter()
final void
final void
final void
getLexer()
final void
handler()
final void
final void
final void
final void
final void
final void
inclusiveOrExpression(int lc_stmt)
final void
indexPropertyArgs(antlr.collections.AST indexee)
final void
final void
interfaceDefinition(antlr.collections.AST modifiers)
final void
final void
final void
final void
listOfVariables(antlr.collections.AST mods,
antlr.collections.AST t,
antlr.Token first)
final void
final void
logicalAndExpression(int lc_stmt)
final void
logicalOrExpression(int lc_stmt)
static GroovyRecognizer
make(antlr.InputBuffer in)
static GroovyRecognizer
make(antlr.LexerSharedInputState in)
static GroovyRecognizer
make(InputStream in)
static GroovyRecognizer
static GroovyRecognizer
make(GroovyLexer lexer)
void
matchGenericTypeBracketsFailed(String problem,
String solution)
final void
methodCallArgs(antlr.collections.AST callee)
final void
modifier()
final void
final void
final void
final void
final void
final void
multipleAssignment(int lc_stmt)
final void
final void
final void
multiplicativeExpression(int lc_stmt)
final void
namePart()
final void
final void
final void
nls()
final void
nlsWarn()
final void
final void
final void
final void
final void
final void
final void
final void
pathChain(int lc_stmt,
antlr.collections.AST prefix)
final void
pathElement(antlr.collections.AST prefix)
final void
final void
pathExpression(int lc_stmt)
final void
postfixExpression(int lc_stmt)
final void
powerExpression(int lc_stmt)
final void
powerExpressionNotPlusMinus(int lc_stmt)
final void
final void
final void
regexExpression(int lc_stmt)
final void
relationalExpression(int lc_stmt)
void
requireFailed(String problem,
String solution)
final void
sep()
void
void
setSourceBuffer(SourceBuffer sourceBuffer)
final void
shiftExpression(int lc_stmt)
final void
final void
final void
singleVariable(antlr.collections.AST mods,
antlr.collections.AST t)
final void
final void
statement(int prevToken)
final void
final boolean
strictContextExpression(boolean allowDeclaration)
final void
final void
final void
final void
final void
void
void
final void
traitDefinition(antlr.collections.AST modifiers)
final void
tryBlock()
final void
type()
final void
final void
final void
final void
protected final void
final void
final void
protected final void
typeDefinitionInternal(antlr.collections.AST mods)
final void
typeNamePairs(antlr.collections.AST mods,
antlr.Token first)
final void
final void
final void
final void
typeSpec(boolean addImagNode)
final void
unaryExpression(int lc_stmt)
final void
unaryExpressionNotPlusMinus(int lc_stmt)
final void
final void
variableDeclarator(antlr.collections.AST mods,
antlr.collections.AST t,
antlr.Token first)
final void
variableDefinitions(antlr.collections.AST mods,
antlr.collections.AST t)
final void
final void
final void
consume, LA, LT
addMessageListener, addParserListener, addParserMatchListener, addParserTokenListener, addSemanticPredicateListener, addSyntacticPredicateListener, addTraceListener, consumeUntil, consumeUntil, defaultDebuggingSetup, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, match, match, matchNot, panic, recover, removeMessageListener, removeParserListener, removeParserMatchListener, removeParserTokenListener, removeSemanticPredicateListener, removeSyntacticPredicateListener, removeTraceListener, reportError, reportError, reportWarning, rewind, setASTFactory, setASTNodeClass, setASTNodeType, setDebugMode, setIgnoreInvalidDebugCalls, setInputState, setTokenBuffer, traceIndent
setFilename
in class antlr.Parser
traceIn
in class antlr.LLkParser
antlr.TokenStreamException
traceOut
in class antlr.LLkParser
antlr.TokenStreamException
antlr.SemanticException
antlr.SemanticException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
AST effect: Create a separate Type/Var tree for each var in the var list. Must be guarded, as in (declarationStart) => declaration.
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
for (int x in y)
(up to the in
keyword).antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
while
statements.antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
(In the absence of explicit method-call parens, we assume a capitalized name is a type name.
Yes, this is a little hacky. Alternatives are to complicate the declaration or command
syntaxes, or to have the parser query the symbol table. Parse-time queries are evil.
And we want both {String x} and {println x}. So we need a syntactic razor-edge to slip
between 'println' and 'String'.)
*TODO* The declarationStart production needs to be strengthened to recognize
things like {List
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
An expression statement can also be a command, which is a simple method call in which the outermost parentheses are omitted.
Certain "suspicious" looking forms are flagged for the user to disambiguate.
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
Also, if the expression starts with a closure, it needs to have an explicit parameter list, in order to avoid the appearance of a compound statement. This is a hard error.
These rules are different from Java's "dumb expression" restriction. Unlike Java, Groovy blocks can end with arbitrary (even dumb) expressions, as a consequence of optional 'return' and 'continue' tokens.
To make the programmer's intention clear, a leading closure must have an explicit parameter list, and must not follow a previous statement separated only by newlines.
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
typeArguments
is handled by the caller of namePart
.antlr.RecognitionException
antlr.TokenStreamException
If the methodCallArgs are absent, it is a property reference. If there is no property, it is treated as a field reference, but never a method reference.
Arguments in the (...) can be labeled, and the appended block can be labeled also. If there is a mix of unlabeled and labeled arguments, all the labeled arguments must follow the unlabeled arguments, except that the closure (labeled or not) is always a separate final argument. Labeled arguments are collected up and passed as a single argument to a formal of type Map.
Therefore, f(x,y, a:p, b:q) {s} is equivalent in all ways to f(x,y, [a:p,b:q], {s}). Spread arguments of sequence type count as unlabeled arguments, while spread arguments of map type count as labeled arguments. (This distinction must sometimes be checked dynamically.) A plain unlabeled argument is allowed to match a trailing Map or Closure argument: f(x, a:p) {s} === f(*[ x, [a:p], {s} ])
antlr.RecognitionException
antlr.TokenStreamException
Returned AST is [INDEX_OP, indexee, ELIST].
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
A map constructor is an argument list enclosed in square brackets, with labels everywhere, except on spread arguments, which stand for whole maps spliced in. A colon alone between the brackets also forces the expression to be an empty map constructor. Examples: [:], [a:1], [a:1,b:2], [a:1,*:m1,b:2], [*:m1,*:m2] (The m1, m2 must be a map or null.) Values associated with identical keys overwrite from left to right: [a:1,a:2] === [a:2]
Some malformed constructor expressions are not detected in the parser, but in a post-pass. Bad examples: [1,b:2], [a:1,2], [:1]. (Note that method call arguments, by contrast, can be a mix of keyworded and non-keyworded arguments.)
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException