New Java parser (incomplete reference parsing fixed)

This commit is contained in:
Roman Shevchenko
2010-08-10 15:44:12 +04:00
parent 193b44dca1
commit 7bab89a29f
6 changed files with 109 additions and 2 deletions

View File

@@ -0,0 +1,3 @@
class C {
BCSSChild.<error descr="">BCSSCServiceClassRef</error> fd = null;
}

View File

@@ -0,0 +1,100 @@
PsiJavaFile:RefParamsAfterError.java
PsiImportList
<empty list>
PsiClass:C
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiModifierList:
<empty list>
PsiTypeElement:BCSSChild.
PsiJavaCodeReferenceElement:BCSSChild.
PsiJavaCodeReferenceElement:BCSSChild
PsiIdentifier:BCSSChild('BCSSChild')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiErrorElement:Identifier expected
<empty list>
PsiReferenceParameterList
<empty list>
PsiErrorElement:Identifier expected
<empty list>
PsiModifierList:
<empty list>
PsiErrorElement:Unexpected token
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:error
PsiIdentifier:error('error')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiErrorElement:'>' expected.
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:descr
PsiJavaCodeReferenceElement:descr
PsiIdentifier:descr('descr')
PsiReferenceParameterList
<empty list>
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:Unexpected token
PsiJavaToken:EQ('=')
PsiJavaToken:STRING_LITERAL('""')
PsiJavaToken:GT('>')
PsiModifierList:
<empty list>
PsiTypeElement:BCSSCServiceClassRef<
PsiJavaCodeReferenceElement:BCSSCServiceClassRef<
PsiIdentifier:BCSSCServiceClassRef('BCSSCServiceClassRef')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:'>' or ',' expected.
<empty list>
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:Unexpected token
PsiJavaToken:DIV('/')
PsiModifierList:
<empty list>
PsiTypeElement:error
PsiJavaCodeReferenceElement:error
PsiIdentifier:error('error')
PsiReferenceParameterList
<empty list>
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:Unexpected token
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiModifierList:
<empty list>
PsiTypeElement:fd
PsiJavaCodeReferenceElement:fd
PsiIdentifier:fd('fd')
PsiReferenceParameterList
<empty list>
PsiErrorElement:Identifier expected
<empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Unexpected token
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiJavaToken:NULL_KEYWORD('null')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')

View File

@@ -10,6 +10,8 @@ PsiJavaFile:UnclosedPackage1.java
PsiJavaToken:DOT('.')
PsiErrorElement:Identifier expected
<empty list>
PsiReferenceParameterList
<empty list>
PsiErrorElement:';' expected
<empty list>
PsiImportList

View File

@@ -7,3 +7,5 @@ PsiJavaFile:Reference1.java
PsiJavaToken:DOT('.')
PsiErrorElement:Identifier expected
<empty list>
PsiReferenceParameterList
<empty list>

View File

@@ -21,8 +21,7 @@ public class CommonJavaParsingTest extends JavaParsingTestCase{
}
public void testSCR5202() { doTest(true); }
public void testIncompleteCodeBlock() { doTest(true); }
public void testImportListBug() { doTest(true); }
public void testRefParamsAfterError() { doTest(true); }
}