Browse Source

Backported some parser bugfixes from SharpDevelop 2.1.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1709 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
Daniel Grunwald 19 years ago
parent
commit
d1a5637275
  1. 4
      src/Libraries/NRefactory/Project/Src/Parser/AST/Enums.cs
  2. 1732
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs
  3. 27
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG
  4. 2280
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  5. 22
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

4
src/Libraries/NRefactory/Project/Src/Parser/AST/Enums.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -43,7 +43,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
Overloads = 0x10000, // VB specific
WithEvents = 0x20000, // VB specific
Default = 0x40000, // VB specific
Fixed = 0x80000,
Synthetic = 0x200000,
/// <summary>Only for VB properties.</summary>
@ -70,7 +70,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -70,7 +70,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
VBInterfaceProperties = New | Overloads | ReadOnly | WriteOnly | Default,
VBInterfaceEnums = New,
Fields = New | Visibility | Static | ReadOnly | Volatile,
Fields = New | Visibility | Static | ReadOnly | Volatile | Fixed,
PropertysEventsMethods = New | Visibility | Static | Virtual | Sealed | Override | Abstract | Extern,
Indexers = New | Visibility | Virtual | Sealed | Override | Abstract | Extern,
Operators = Public | Static | Extern,

1732
src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs

File diff suppressed because it is too large Load Diff

27
src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG

@ -1168,6 +1168,7 @@ MemberModifiers<Modifiers m> @@ -1168,6 +1168,7 @@ MemberModifiers<Modifiers m>
| "readonly" (. m.Add(Modifier.ReadOnly, t.Location); .)
| "sealed" (. m.Add(Modifier.Sealed, t.Location); .)
| "static" (. m.Add(Modifier.Static, t.Location); .)
| "fixed" (. m.Add(Modifier.Fixed, t.Location); .)
| "unsafe" (. m.Add(Modifier.Unsafe, t.Location); .)
| "virtual" (. m.Add(Modifier.Virtual, t.Location); .)
| "volatile" (. m.Add(Modifier.Volatile, t.Location); .)
@ -1350,12 +1351,26 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1350,12 +1351,26 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
.)
/*--- field declaration: */
| IF (IsVarDecl()) (. m.Check(Modifier.Fields);
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = m.GetDeclarationLocation(startPos);
.)
VariableDeclarator<variableDeclarators>
{ "," VariableDeclarator<variableDeclarators> }
| IF (IsVarDecl())
(. m.Check(Modifier.Fields);
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = m.GetDeclarationLocation(startPos);
.)
( IF (m.Contains(Modifier.Fixed))
VariableDeclarator<variableDeclarators>
"["
Expr<out expr>
"]"
{ ","
VariableDeclarator<variableDeclarators>
"["
Expr<out expr>
"]"
}
| /* non-fixed field */
VariableDeclarator<variableDeclarators>
{ "," VariableDeclarator<variableDeclarators> }
)
";" (. fd.EndLocation = t.EndLocation; fd.Fields = variableDeclarators; compilationUnit.AddChild(fd); .)
/*--- unqualified indexer declaration (without interface name): */

2280
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

22
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -635,16 +635,24 @@ TypeParameterConstraints<TemplateDefinition template> @@ -635,16 +635,24 @@ TypeParameterConstraints<TemplateDefinition template>
"As"
(
"{"
TypeName<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
TypeParameterConstraint<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
{
","
TypeName<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
TypeParameterConstraint<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
}
"}"
| TypeName<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
| TypeParameterConstraint<out constraint> (. if (constraint != null) { template.Bases.Add(constraint); } .)
)
.
TypeParameterConstraint<out TypeReference constraint>
(. constraint = null; .)
= "Class" (. constraint = new TypeReference("class"); .)
| "Structure" (. constraint = new TypeReference("struct"); .)
| "New" (. constraint = new TypeReference("new"); .)
| TypeName<out constraint>
.
/* 6.4.2 */
NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
(.
@ -1130,8 +1138,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1130,8 +1138,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
(
"Sub"
Identifier (. name = t.val; .)
"Lib" LiteralString (. library = t.literalValue.ToString(); .)
["Alias" LiteralString (. alias = t.literalValue.ToString(); .)]
"Lib" LiteralString (. library = t.literalValue as string; .)
["Alias" LiteralString (. alias = t.literalValue as string; .)]
[ "(" [ FormalParameterList<p> ] ")" ]
EOL
(.
@ -1143,8 +1151,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1143,8 +1151,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
|
"Function"
Identifier (. name = t.val; .)
"Lib" LiteralString (. library = t.literalValue.ToString(); .)
["Alias" LiteralString (. alias = t.literalValue.ToString(); .)]
"Lib" LiteralString (. library = t.literalValue as string; .)
["Alias" LiteralString (. alias = t.literalValue as string; .)]
[ "(" [ FormalParameterList<p> ] ")" ]
["As" TypeName<out type> ]
EOL

Loading…
Cancel
Save