New Java parser (work in progress)

This commit is contained in:
Roman Shevchenko
2010-07-30 20:26:27 +04:00
parent afb6253c83
commit de59edc367
14 changed files with 838 additions and 1 deletions
@@ -0,0 +1,22 @@
PsiJavaFile:AnnoDeclaration.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiClass:Annotation
PsiModifierList:public
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiJavaToken:AT('@')
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:Annotation('Annotation')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,35 @@
PsiJavaFile:AnnoDefault.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiAnnotationMethod:foo
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:Class
PsiJavaCodeReferenceElement:Class
PsiIdentifier:Class('Class')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:foo('foo')
PsiWhiteSpace(' ')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:default('default')
PsiWhiteSpace(' ')
PsiClassObjectAccessExpression:String.class
PsiTypeElement:String
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiKeyword:class('class')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,44 @@
PsiJavaFile:AnnoInner.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiClass:Inner
PsiModifierList:
<empty list>
PsiJavaToken:AT('@')
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:Inner('Inner')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiAnnotationMethod:bar
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:double
PsiKeyword:double('double')
PsiWhiteSpace(' ')
PsiIdentifier:bar('bar')
PsiWhiteSpace(' ')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:default('default')
PsiWhiteSpace(' ')
PsiLiteralExpression:0.0
PsiJavaToken:DOUBLE_LITERAL('0.0')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,47 @@
PsiJavaFile:AnnoNested.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiClass:Inner
PsiModifierList:
<empty list>
PsiJavaToken:AT('@')
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:Inner('Inner')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiAnnotationMethod:bar
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:String
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:bar('bar')
PsiWhiteSpace(' ')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:default('default')
PsiWhiteSpace(' ')
PsiLiteralExpression:"<unspecified>"
PsiJavaToken:STRING_LITERAL('"<unspecified>"')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,64 @@
PsiJavaFile:AnnoOtherMembers.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiField:field
PsiModifierList:
<empty list>
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiAnnotationMethod:m
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:void
PsiKeyword:void('void')
PsiWhiteSpace(' ')
PsiIdentifier:m('m')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiClass:C
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiClass:I
PsiModifierList:
<empty list>
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:I('I')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,21 @@
PsiJavaFile:AnnoSimple.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiAnnotationMethod:foo
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiIdentifier:foo('foo')
PsiWhiteSpace(' ')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,143 @@
PsiJavaFile:EnumSmartTypeCompletion.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiClass:TimeTravel
PsiModifierList:@Preliminary(A.B
#) public
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Preliminary
PsiIdentifier:Preliminary('Preliminary')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
PsiJavaToken:LPARENTH('(')
PsiNameValuePair
PsiReferenceExpression:A.B
PsiReferenceExpression:A
PsiReferenceParameterList
<empty list>
PsiIdentifier:A('A')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:B('B')
PsiErrorElement:',' or ')' expected
<empty list>
PsiWhiteSpace('\n')
PsiElement(BAD_CHARACTER)('#')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:TimeTravel('TimeTravel')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiClass:TimeTravel
PsiModifierList:@Preliminary(a=A.B
#) public
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Preliminary
PsiIdentifier:Preliminary('Preliminary')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
PsiJavaToken:LPARENTH('(')
PsiNameValuePair
PsiIdentifier:a('a')
PsiJavaToken:EQ('=')
PsiReferenceExpression:A.B
PsiReferenceExpression:A
PsiReferenceParameterList
<empty list>
PsiIdentifier:A('A')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:B('B')
PsiErrorElement:',' or ')' expected
<empty list>
PsiWhiteSpace('\n')
PsiElement(BAD_CHARACTER)('#')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:TimeTravel('TimeTravel')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiClass:TimeTravel
PsiModifierList:@Preliminary(a=A.B
#, b=c) public
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Preliminary
PsiIdentifier:Preliminary('Preliminary')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
PsiJavaToken:LPARENTH('(')
PsiNameValuePair
PsiIdentifier:a('a')
PsiJavaToken:EQ('=')
PsiReferenceExpression:A.B
PsiReferenceExpression:A
PsiReferenceParameterList
<empty list>
PsiIdentifier:A('A')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:B('B')
PsiErrorElement:',' or ')' expected
<empty list>
PsiWhiteSpace('\n')
PsiElement(BAD_CHARACTER)('#')
PsiJavaToken:COMMA(',')
PsiWhiteSpace(' ')
PsiNameValuePair
PsiIdentifier:b('b')
PsiJavaToken:EQ('=')
PsiReferenceExpression:c
PsiReferenceParameterList
<empty list>
PsiIdentifier:c('c')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:TimeTravel('TimeTravel')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,45 @@
PsiJavaFile:ParameterAnnotation.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiMethod:foo
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:void
PsiKeyword:void('void')
PsiWhiteSpace(' ')
PsiIdentifier:foo('foo')
PsiWhiteSpace(' ')
PsiParameterList:(@Annotation(value=77) int param)
PsiJavaToken:LPARENTH('(')
PsiParameter:param
PsiModifierList:@Annotation(value=77)
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Annotation
PsiIdentifier:Annotation('Annotation')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
PsiJavaToken:LPARENTH('(')
PsiNameValuePair
PsiIdentifier:value('value')
PsiJavaToken:EQ('=')
PsiLiteralExpression:77
PsiJavaToken:INTEGER_LITERAL('77')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiIdentifier:param('param')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,40 @@
PsiJavaFile:ParameterizedMethod.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiMethod:bar
PsiModifierList:@Nullable
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Nullable
PsiIdentifier:Nullable('Nullable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiTypeElement:T
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:bar('bar')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,327 @@
PsiJavaFile:TypeAnno.java
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiClass:C
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:D
PsiIdentifier:D('D')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:T('T')
PsiWhiteSpace(' ')
PsiElement(EXTENDS_BOUND_LIST)
PsiKeyword:extends('extends')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@F Object
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Object('Object')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:extends('extends')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@F Object
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Object('Object')
PsiReferenceParameterList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiMethod:method
PsiModifierList:@F
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiTypeParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:int @F[]
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiIdentifier:method('method')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiElement(METHOD_RECEIVER)
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:throws('throws')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@F Exception
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Exception('Exception')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiAssignmentExpression:a = this instanceof @F C
PsiReferenceExpression:a
PsiReferenceParameterList
<empty list>
PsiIdentifier:a('a')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiInstanceofExpression:this instanceof @F C
PsiThisExpression:this
PsiReferenceParameterList
<empty list>
PsiKeyword:this('this')
PsiWhiteSpace(' ')
PsiKeyword:instanceof('instanceof')
PsiWhiteSpace(' ')
PsiTypeElement:@F C
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:C
PsiIdentifier:C('C')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiDeclarationStatement
PsiLocalVariable:c
PsiModifierList:
<empty list>
PsiTypeElement:C<@F @G C>
PsiJavaCodeReferenceElement:C<@F @G C>
PsiIdentifier:C('C')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@F @G C
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:G
PsiIdentifier:G('G')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:C
PsiIdentifier:C('C')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:c('c')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new @Q C<@F C>()
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Q C<@F C>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Q
PsiIdentifier:Q('Q')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@F C
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:C
PsiIdentifier:C('C')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiAssignmentExpression:c = (@F Object)c
PsiReferenceExpression:c
PsiReferenceParameterList
<empty list>
PsiIdentifier:c('c')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiTypeCastExpression:(@F Object)c
PsiJavaToken:LPARENTH('(')
PsiTypeElement:@F Object
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:Object
PsiIdentifier:Object('Object')
PsiReferenceParameterList
<empty list>
PsiJavaToken:RPARENTH(')')
PsiReferenceExpression:c
PsiReferenceParameterList
<empty list>
PsiIdentifier:c('c')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiDeclarationStatement
PsiLocalVariable:c
PsiModifierList:
<empty list>
PsiTypeElement:Class
PsiJavaCodeReferenceElement:Class
PsiIdentifier:Class('Class')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:c('c')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiClassObjectAccessExpression:@TA String.class
PsiTypeElement:@TA String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:TA
PsiIdentifier:TA('TA')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiKeyword:class('class')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiPostfixExpression:@F C.field++
PsiReferenceExpression:@F C.field
PsiReferenceExpression:@F C
PsiReferenceParameterList
<empty list>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:F
PsiIdentifier:F('F')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:field('field')
PsiJavaToken:PLUSPLUS('++')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,28 @@
PsiJavaFile:Type6.java
PsiTypeElement:@English String @NonEmpty []
PsiTypeElement:@English String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:English
PsiIdentifier:English('English')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonEmpty
PsiIdentifier:NonEmpty('NonEmpty')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')