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