Browse Source

CC is now working at the beginning of the first parameter

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6140 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
0c0b4b151f
  1. 8
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
  2. 1117
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
  3. 16
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame
  4. 10
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

8
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg

@ -319,10 +319,10 @@ TypeDeclaration =
ClassOrModuleOrStructureTypeDeclaration = ClassOrModuleOrStructureTypeDeclaration =
(. PushContext(Context.TypeDeclaration, la, t); .) (. PushContext(Context.TypeDeclaration, la, t); .)
( "Module" | "Class" | "Structure" ) (. PushContext(Context.Identifier, la, t); .) (.OnEachPossiblePath: SetIdentifierExpected(la); .) ANY (. PopContext(); .) ( "Module" | "Class" | "Structure" ) (. PushContext(Context.Identifier, la, t); .) (.OnEachPossiblePath: SetIdentifierExpected(la); .) Identifier (. PopContext(); .)
[ "(" "Of" GenericTypeParameterDeclaration ")" ] StatementTerminator [ "(" "Of" GenericTypeParameterDeclaration ")" ] StatementTerminator
[ (. isMissingModifier = false; .) "Inherits" { ANY } StatementTerminator ] [ (. isMissingModifier = false; .) (. PushContext(Context.Type, la, t); .) "Inherits" TypeName (. PopContext(); .) StatementTerminator ]
[ (. isMissingModifier = false; .) "Implements" { ANY } StatementTerminator ] [ (. isMissingModifier = false; .) (. PushContext(Context.Type, la, t); .) "Implements" TypeName (. PopContext(); .) { "," (. PushContext(Context.Type, la, t); .) TypeName (. PopContext(); .) } StatementTerminator ]
{ {
{ AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .) { AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .)
{ TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .) { TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)
@ -342,7 +342,7 @@ EnumTypeDeclaration =
InterfaceDeclaration = InterfaceDeclaration =
"Interface" Identifier [ "(" "Of" GenericTypeParameterDeclaration ")" ] StatementTerminator "Interface" Identifier [ "(" "Of" GenericTypeParameterDeclaration ")" ] StatementTerminator
[ "Inherits" TypeName { "," TypeName } StatementTerminator ] [ (. PushContext(Context.Type, la, t); .) "Inherits" TypeName (. PopContext(); .) { "," (. PushContext(Context.Type, la, t); .) TypeName (. PopContext(); .) } StatementTerminator ]
{ {
{ AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .) { AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .)
{ TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .) { TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)

1117
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

16
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame

@ -67,15 +67,15 @@ partial class ExpressionFinder {
public void InformToken(Token la) public void InformToken(Token la)
{ {
nextTokenIsPotentialStartOfExpression = false;
readXmlIdentifier = false;
nextTokenIsStartOfImportsOrAccessExpression = false;
wasQualifierTokenAtStart = false;
//if (la != null)
identifierExpected = false;
-->informToken -->informToken
if (la != null) t = la; if (la != null) {
t = la;
nextTokenIsPotentialStartOfExpression = false;
readXmlIdentifier = false;
nextTokenIsStartOfImportsOrAccessExpression = false;
wasQualifierTokenAtStart = false;
identifierExpected = false;
}
} }
public void Advance() public void Advance()

10
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

@ -66,6 +66,11 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
t = lexer.NextToken(); t = lexer.NextToken();
} }
if (t.EndLocation == targetPosition && t.Kind <= Tokens.ColonAssign && t.Kind > Tokens.Identifier) {
p.InformToken(t);
t = lexer.NextToken();
}
p.Advance(); p.Advance();
var block = p.CurrentBlock; var block = p.CurrentBlock;
@ -77,6 +82,11 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
p.Advance(); p.Advance();
} }
if (t.EndLocation == targetPosition && t.Kind <= Tokens.ColonAssign && t.Kind > Tokens.Identifier) {
p.InformToken(t);
p.Advance();
}
BitArray expectedSet; BitArray expectedSet;
try { try {

Loading…
Cancel
Save