Default values for attributes
This commit is contained in:
@@ -7,5 +7,5 @@ attributeAnnotation
|
||||
;
|
||||
|
||||
attribute
|
||||
: SimpleName{"."} valueArguments?
|
||||
: SimpleName{"."} (valueArguments | "=" expression)?
|
||||
;
|
||||
@@ -373,14 +373,19 @@ public class JetParsing extends AbstractJetParsing {
|
||||
|
||||
/*
|
||||
* attribute
|
||||
* // : SimpleName{"."} valueArguments?
|
||||
* // : SimpleName{"."} (valueArguments | "=" expression)?
|
||||
* [for recovery: userType valueArguments?]
|
||||
* ;
|
||||
*/
|
||||
private void parseAttribute() {
|
||||
PsiBuilder.Marker attribute = mark();
|
||||
parseUserType();
|
||||
if (at(LPAR)) myExpressionParsing.parseValueArgumentList();
|
||||
if (at(LPAR)) {
|
||||
myExpressionParsing.parseValueArgumentList();
|
||||
} else if (at(EQ)) {
|
||||
advance(); // EQ
|
||||
myExpressionParsing.parseExpression();
|
||||
}
|
||||
attribute.done(ATTRIBUTE);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,9 @@ out
|
||||
ref
|
||||
class Bar<abstract
|
||||
virtual
|
||||
[sdfsdf=1+1, a]
|
||||
[sdfsdf=1+1]
|
||||
[a(), sdfsdf=1+1]
|
||||
enum
|
||||
open
|
||||
attribute
|
||||
|
||||
@@ -137,6 +137,61 @@ JetFile: Attributes.jet
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(virtual)('virtual')
|
||||
PsiWhiteSpace('\n')
|
||||
ATTRIBUTE_ANNOTATION
|
||||
PsiElement(LBRACKET)('[')
|
||||
ATTRIBUTE
|
||||
USER_TYPE
|
||||
PsiElement(IDENTIFIER)('sdfsdf')
|
||||
PsiElement(EQ)('=')
|
||||
BINARY_EXPRESSION
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(PLUS)('+')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
ATTRIBUTE
|
||||
USER_TYPE
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiElement(RBRACKET)(']')
|
||||
PsiWhiteSpace('\n')
|
||||
ATTRIBUTE_ANNOTATION
|
||||
PsiElement(LBRACKET)('[')
|
||||
ATTRIBUTE
|
||||
USER_TYPE
|
||||
PsiElement(IDENTIFIER)('sdfsdf')
|
||||
PsiElement(EQ)('=')
|
||||
BINARY_EXPRESSION
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(PLUS)('+')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(RBRACKET)(']')
|
||||
PsiWhiteSpace('\n')
|
||||
ATTRIBUTE_ANNOTATION
|
||||
PsiElement(LBRACKET)('[')
|
||||
ATTRIBUTE
|
||||
USER_TYPE
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
VALUE_ARGUMENT_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
ATTRIBUTE
|
||||
USER_TYPE
|
||||
PsiElement(IDENTIFIER)('sdfsdf')
|
||||
PsiElement(EQ)('=')
|
||||
BINARY_EXPRESSION
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(PLUS)('+')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(RBRACKET)(']')
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(enum)('enum')
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(open)('open')
|
||||
|
||||
Reference in New Issue
Block a user