New Java parser (work in progress)

This commit is contained in:
Roman Shevchenko
2010-07-30 20:26:27 +04:00
parent de59edc367
commit 160631140d
20 changed files with 505 additions and 16 deletions
@@ -0,0 +1,31 @@
PsiJavaFile:AnnotatedPackage.java
PsiPackageStatement:a.b.c
PsiModifierList:@Anno
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Anno
PsiIdentifier:Anno('Anno')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:package('package')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:a.b.c
PsiJavaCodeReferenceElement:a.b
PsiJavaCodeReferenceElement:a
PsiIdentifier:a('a')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:b('b')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:c('c')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiImportList
<empty list>
@@ -0,0 +1,3 @@
PsiJavaFile:EmptyFile.java
PsiImportList
<empty list>
@@ -0,0 +1,54 @@
PsiJavaFile:FileWithClass.java
PsiPackageStatement:a
PsiKeyword:package('package')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:a
PsiIdentifier:a('a')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:b
PsiIdentifier:b('b')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiClass:C
PsiModifierList:public
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n')
PsiClass:D
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:D('D')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1,17 @@
PsiJavaFile:Import0.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.util
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiJavaToken:ASTERISK('*')
PsiJavaToken:SEMICOLON(';')
@@ -0,0 +1,20 @@
PsiJavaFile:Import1.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.util.Arrays
PsiJavaCodeReferenceElement:java.util
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:Arrays('Arrays')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
@@ -0,0 +1,21 @@
PsiJavaFile:Package.java
PsiPackageStatement:a.b.c
PsiKeyword:package('package')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:a.b.c
PsiJavaCodeReferenceElement:a.b
PsiJavaCodeReferenceElement:a
PsiIdentifier:a('a')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:b('b')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:c('c')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiImportList
<empty list>
@@ -0,0 +1,24 @@
PsiJavaFile:StaticImport0.java
PsiImportList
PsiImportStaticStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiKeyword:static('static')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.util.Arrays
PsiJavaCodeReferenceElement:java.util
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:Arrays('Arrays')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiJavaToken:ASTERISK('*')
PsiJavaToken:SEMICOLON(';')
@@ -0,0 +1,25 @@
PsiJavaFile:StaticImport1.java
PsiImportList
PsiImportStaticStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiKeyword:static('static')
PsiWhiteSpace(' ')
PsiImportStaticReferenceElement:java.util.Arrays.sort
PsiJavaCodeReferenceElement:java.util.Arrays
PsiJavaCodeReferenceElement:java.util
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:Arrays('Arrays')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:sort('sort')
PsiJavaToken:SEMICOLON(';')
@@ -0,0 +1,6 @@
PsiJavaFile:UnclosedImport0.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiErrorElement:Identifier expected
<empty list>
@@ -0,0 +1,18 @@
PsiJavaFile:UnclosedImport1.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.awt
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:awt('awt')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiJavaToken:ASTERISK('*')
PsiErrorElement:';' expected
<empty list>
@@ -0,0 +1,17 @@
PsiJavaFile:UnclosedImport2.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.awt
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:awt('awt')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiErrorElement:Identifier or '*' expected
<empty list>
@@ -0,0 +1,5 @@
PsiJavaFile:UnclosedPackage0.java
PsiImportList
<empty list>
PsiErrorElement:'class' or 'interface' expected
PsiKeyword:package('package')
@@ -0,0 +1,16 @@
PsiJavaFile:UnclosedPackage1.java
PsiPackageStatement:a.
PsiKeyword:package('package')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:a.
PsiJavaCodeReferenceElement:a
PsiIdentifier:a('a')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:';' expected
<empty list>
PsiImportList
<empty list>