Browse Source

correct positions of type members with modifiers

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@274 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Markus Palme 20 years ago
parent
commit
ed2a438995
  1. 72
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs
  2. 72
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG
  3. 27
      src/Libraries/NRefactory/Project/Src/Parser/Modifiers.cs
  4. 2278
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  5. 100
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

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

@ -823,70 +823,70 @@ Modifiers m) { @@ -823,70 +823,70 @@ Modifiers m) {
lexer.NextToken();
#line 997 "cs.ATG"
m.Add(Modifier.New);
m.Add(Modifier.New, t.Location);
break;
}
case 96: {
lexer.NextToken();
#line 998 "cs.ATG"
m.Add(Modifier.Public);
m.Add(Modifier.Public, t.Location);
break;
}
case 95: {
lexer.NextToken();
#line 999 "cs.ATG"
m.Add(Modifier.Protected);
m.Add(Modifier.Protected, t.Location);
break;
}
case 82: {
lexer.NextToken();
#line 1000 "cs.ATG"
m.Add(Modifier.Internal);
m.Add(Modifier.Internal, t.Location);
break;
}
case 94: {
lexer.NextToken();
#line 1001 "cs.ATG"
m.Add(Modifier.Private);
m.Add(Modifier.Private, t.Location);
break;
}
case 117: {
lexer.NextToken();
#line 1002 "cs.ATG"
m.Add(Modifier.Unsafe);
m.Add(Modifier.Unsafe, t.Location);
break;
}
case 47: {
lexer.NextToken();
#line 1003 "cs.ATG"
m.Add(Modifier.Abstract);
m.Add(Modifier.Abstract, t.Location);
break;
}
case 101: {
lexer.NextToken();
#line 1004 "cs.ATG"
m.Add(Modifier.Sealed);
m.Add(Modifier.Sealed, t.Location);
break;
}
case 105: {
lexer.NextToken();
#line 1005 "cs.ATG"
m.Add(Modifier.Static);
m.Add(Modifier.Static, t.Location);
break;
}
case 1: {
lexer.NextToken();
#line 1006 "cs.ATG"
if (t.val == "partial") { m.Add(Modifier.Partial); }
if (t.val == "partial") { m.Add(Modifier.Partial, t.Location); }
break;
}
default: SynErr(128); break;
@ -915,7 +915,7 @@ Modifiers m, List<AttributeSection> attributes) { @@ -915,7 +915,7 @@ Modifiers m, List<AttributeSection> attributes) {
templates = newType.Templates;
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Class;
@ -962,7 +962,7 @@ templates); @@ -962,7 +962,7 @@ templates);
#line 735 "cs.ATG"
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
templates = newType.Templates;
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.Type = Types.Struct;
@ -1008,7 +1008,7 @@ templates); @@ -1008,7 +1008,7 @@ templates);
templates = newType.Templates;
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Interface;
Expect(1);
@ -1051,7 +1051,7 @@ templates); @@ -1051,7 +1051,7 @@ templates);
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Enum;
Expect(1);
@ -1082,7 +1082,7 @@ out name); @@ -1082,7 +1082,7 @@ out name);
#line 794 "cs.ATG"
DelegateDeclaration delegateDeclr = new DelegateDeclaration(m.Modifier, attributes);
templates = delegateDeclr.Templates;
delegateDeclr.StartLocation = t.Location;
delegateDeclr.StartLocation = m.GetDeclarationLocation(t.Location);
if (
#line 798 "cs.ATG"
@ -1677,98 +1677,98 @@ Modifiers m) { @@ -1677,98 +1677,98 @@ Modifiers m) {
lexer.NextToken();
#line 1032 "cs.ATG"
m.Add(Modifier.Abstract);
m.Add(Modifier.Abstract, t.Location);
break;
}
case 69: {
lexer.NextToken();
#line 1033 "cs.ATG"
m.Add(Modifier.Extern);
m.Add(Modifier.Extern, t.Location);
break;
}
case 82: {
lexer.NextToken();
#line 1034 "cs.ATG"
m.Add(Modifier.Internal);
m.Add(Modifier.Internal, t.Location);
break;
}
case 87: {
lexer.NextToken();
#line 1035 "cs.ATG"
m.Add(Modifier.New);
m.Add(Modifier.New, t.Location);
break;
}
case 92: {
lexer.NextToken();
#line 1036 "cs.ATG"
m.Add(Modifier.Override);
m.Add(Modifier.Override, t.Location);
break;
}
case 94: {
lexer.NextToken();
#line 1037 "cs.ATG"
m.Add(Modifier.Private);
m.Add(Modifier.Private, t.Location);
break;
}
case 95: {
lexer.NextToken();
#line 1038 "cs.ATG"
m.Add(Modifier.Protected);
m.Add(Modifier.Protected, t.Location);
break;
}
case 96: {
lexer.NextToken();
#line 1039 "cs.ATG"
m.Add(Modifier.Public);
m.Add(Modifier.Public, t.Location);
break;
}
case 97: {
lexer.NextToken();
#line 1040 "cs.ATG"
m.Add(Modifier.Readonly);
m.Add(Modifier.Readonly, t.Location);
break;
}
case 101: {
lexer.NextToken();
#line 1041 "cs.ATG"
m.Add(Modifier.Sealed);
m.Add(Modifier.Sealed, t.Location);
break;
}
case 105: {
lexer.NextToken();
#line 1042 "cs.ATG"
m.Add(Modifier.Static);
m.Add(Modifier.Static, t.Location);
break;
}
case 117: {
lexer.NextToken();
#line 1043 "cs.ATG"
m.Add(Modifier.Unsafe);
m.Add(Modifier.Unsafe, t.Location);
break;
}
case 120: {
lexer.NextToken();
#line 1044 "cs.ATG"
m.Add(Modifier.Virtual);
m.Add(Modifier.Virtual, t.Location);
break;
}
case 122: {
lexer.NextToken();
#line 1045 "cs.ATG"
m.Add(Modifier.Volatile);
m.Add(Modifier.Volatile, t.Location);
break;
}
default: SynErr(137); break;
@ -1795,7 +1795,7 @@ m, attributes); @@ -1795,7 +1795,7 @@ m, attributes);
#line 1283 "cs.ATG"
DestructorDeclaration d = new DestructorDeclaration(t.val, m.Modifier, attributes);
d.Modifier = m.Modifier;
d.StartLocation = startPos;
d.StartLocation = m.GetDeclarationLocation(startPos);
Expect(19);
Expect(20);
@ -1845,7 +1845,7 @@ out type); @@ -1845,7 +1845,7 @@ out type);
#line 1061 "cs.ATG"
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier | Modifier.Const);
fd.StartLocation = startPos;
fd.StartLocation = m.GetDeclarationLocation(startPos);
VariableDeclaration f = new VariableDeclaration(t.val);
fd.Fields.Add(f);
@ -1908,7 +1908,7 @@ p); @@ -1908,7 +1908,7 @@ p);
new TypeReference("void"),
p,
attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
compilationUnit.AddChild(methodDeclaration);
@ -2170,7 +2170,7 @@ IsVarDecl()) { @@ -2170,7 +2170,7 @@ IsVarDecl()) {
#line 1195 "cs.ATG"
m.Check(Modifier.Fields);
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = startPos;
fd.StartLocation = m.GetDeclarationLocation(startPos);
VariableDeclarator(
#line 1199 "cs.ATG"
@ -2250,7 +2250,7 @@ p); @@ -2250,7 +2250,7 @@ p);
type,
p,
attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
compilationUnit.AddChild(methodDeclaration);
@ -2277,7 +2277,7 @@ out stmt); @@ -2277,7 +2277,7 @@ out stmt);
#line 1240 "cs.ATG"
PropertyDeclaration pDecl = new PropertyDeclaration(qualident, type, m.Modifier, attributes);
pDecl.StartLocation = startPos;
pDecl.StartLocation = m.GetDeclarationLocation(startPos);
pDecl.EndLocation = qualIdentEndLocation;
pDecl.BodyStart = t.Location;
PropertyGetRegion getRegion;
@ -2309,7 +2309,7 @@ p); @@ -2309,7 +2309,7 @@ p);
#line 1259 "cs.ATG"
IndexerDeclaration indexer = new IndexerDeclaration(type, p, m.Modifier, attributes);
indexer.StartLocation = startPos;
indexer.StartLocation = m.GetDeclarationLocation(startPos);
indexer.EndLocation = t.EndLocation;
indexer.NamespaceName = qualident;
PropertyGetRegion getRegion;

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

@ -713,7 +713,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes> @@ -713,7 +713,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes>
templates = newType.Templates;
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Class;
.)
@ -734,7 +734,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes> @@ -734,7 +734,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes>
| /*--- struct declaration: */ (. m.Check(Modifier.StructsInterfacesEnumsDelegates); .)
( "struct" (. TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
templates = newType.Templates;
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.Type = Types.Struct;
@ -759,7 +759,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes> @@ -759,7 +759,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes>
templates = newType.Templates;
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Interface;
.)
ident (. newType.Name = t.val; .)
@ -780,7 +780,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes> @@ -780,7 +780,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes>
"enum" (. TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Enum;
.)
ident (. newType.Name = t.val; .)
@ -793,7 +793,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes> @@ -793,7 +793,7 @@ TypeDecl<Modifiers m, List<AttributeSection> attributes>
| /*--- delegate declaration: */
"delegate" (. DelegateDeclaration delegateDeclr = new DelegateDeclaration(m.Modifier, attributes);
templates = delegateDeclr.Templates;
delegateDeclr.StartLocation = t.Location;
delegateDeclr.StartLocation = m.GetDeclarationLocation(t.Location);
.)
( IF (NotVoidPointer()) "void" (. delegateDeclr.ReturnType = new TypeReference("void", 0, null); .)
| Type<out type> (. delegateDeclr.ReturnType = type; .)
@ -994,16 +994,16 @@ ParameterArray<out ParameterDeclarationExpression p> @@ -994,16 +994,16 @@ ParameterArray<out ParameterDeclarationExpression p>
TypeModifier<Modifiers m>
=
"new" (. m.Add(Modifier.New); .)
| "public" (. m.Add(Modifier.Public); .)
| "protected" (. m.Add(Modifier.Protected); .)
| "internal" (. m.Add(Modifier.Internal); .)
| "private" (. m.Add(Modifier.Private); .)
| "unsafe" (. m.Add(Modifier.Unsafe); .)
| "abstract" (. m.Add(Modifier.Abstract); .)
| "sealed" (. m.Add(Modifier.Sealed); .)
| "static" (. m.Add(Modifier.Static); .)
| ident (. if (t.val == "partial") { m.Add(Modifier.Partial); } .)
"new" (. m.Add(Modifier.New, t.Location); .)
| "public" (. m.Add(Modifier.Public, t.Location); .)
| "protected" (. m.Add(Modifier.Protected, t.Location); .)
| "internal" (. m.Add(Modifier.Internal, t.Location); .)
| "private" (. m.Add(Modifier.Private, t.Location); .)
| "unsafe" (. m.Add(Modifier.Unsafe, t.Location); .)
| "abstract" (. m.Add(Modifier.Abstract, t.Location); .)
| "sealed" (. m.Add(Modifier.Sealed, t.Location); .)
| "static" (. m.Add(Modifier.Static, t.Location); .)
| ident (. if (t.val == "partial") { m.Add(Modifier.Partial, t.Location); } .)
.
ClassType<out TypeReference typeRef>
@ -1029,20 +1029,20 @@ IntegralType<out string name> (. name = ""; .) @@ -1029,20 +1029,20 @@ IntegralType<out string name> (. name = ""; .)
MemberModifier<Modifiers m>
=
"abstract" (. m.Add(Modifier.Abstract); .)
| "extern" (. m.Add(Modifier.Extern); .)
| "internal" (. m.Add(Modifier.Internal); .)
| "new" (. m.Add(Modifier.New); .)
| "override" (. m.Add(Modifier.Override); .)
| "private" (. m.Add(Modifier.Private); .)
| "protected" (. m.Add(Modifier.Protected); .)
| "public" (. m.Add(Modifier.Public); .)
| "readonly" (. m.Add(Modifier.Readonly); .)
| "sealed" (. m.Add(Modifier.Sealed); .)
| "static" (. m.Add(Modifier.Static); .)
| "unsafe" (. m.Add(Modifier.Unsafe); .)
| "virtual" (. m.Add(Modifier.Virtual); .)
| "volatile" (. m.Add(Modifier.Volatile); .)
"abstract" (. m.Add(Modifier.Abstract, t.Location); .)
| "extern" (. m.Add(Modifier.Extern, t.Location); .)
| "internal" (. m.Add(Modifier.Internal, t.Location); .)
| "new" (. m.Add(Modifier.New, t.Location); .)
| "override" (. m.Add(Modifier.Override, t.Location); .)
| "private" (. m.Add(Modifier.Private, t.Location); .)
| "protected" (. m.Add(Modifier.Protected, t.Location); .)
| "public" (. m.Add(Modifier.Public, t.Location); .)
| "readonly" (. m.Add(Modifier.Readonly, t.Location); .)
| "sealed" (. m.Add(Modifier.Sealed, t.Location); .)
| "static" (. m.Add(Modifier.Static, t.Location); .)
| "unsafe" (. m.Add(Modifier.Unsafe, t.Location); .)
| "virtual" (. m.Add(Modifier.Virtual, t.Location); .)
| "volatile" (. m.Add(Modifier.Volatile, t.Location); .)
.
StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
@ -1059,7 +1059,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1059,7 +1059,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
/*--- constant declaration: */ (. m.Check(Modifier.Constants); .)
"const" (.Point startPos = t.Location; .)
Type<out type> ident (. FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier | Modifier.Const);
fd.StartLocation = startPos;
fd.StartLocation = m.GetDeclarationLocation(startPos);
VariableDeclaration f = new VariableDeclaration(t.val);
fd.Fields.Add(f);
.)
@ -1083,7 +1083,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1083,7 +1083,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
new TypeReference("void"),
p,
attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
compilationUnit.AddChild(methodDeclaration);
@ -1194,7 +1194,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1194,7 +1194,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
/*--- field declaration: */
| IF (IsVarDecl()) (. m.Check(Modifier.Fields);
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = startPos;
fd.StartLocation = m.GetDeclarationLocation(startPos);
.)
VariableDeclarator<variableDeclarators>
{ "," VariableDeclarator<variableDeclarators> }
@ -1228,7 +1228,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1228,7 +1228,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
type,
p,
attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
compilationUnit.AddChild(methodDeclaration);
@ -1238,7 +1238,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1238,7 +1238,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
/*--- property declaration: */
| "{" (. PropertyDeclaration pDecl = new PropertyDeclaration(qualident, type, m.Modifier, attributes);
pDecl.StartLocation = startPos;
pDecl.StartLocation = m.GetDeclarationLocation(startPos);
pDecl.EndLocation = qualIdentEndLocation;
pDecl.BodyStart = t.Location;
PropertyGetRegion getRegion;
@ -1257,7 +1257,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1257,7 +1257,7 @@ StructMemberDecl<Modifiers m, List<AttributeSection> attributes>
| (. m.Check(Modifier.Indexers); .)
"." "this" "[" FormalParameterList<p> "]" (.
IndexerDeclaration indexer = new IndexerDeclaration(type, p, m.Modifier, attributes);
indexer.StartLocation = startPos;
indexer.StartLocation = m.GetDeclarationLocation(startPos);
indexer.EndLocation = t.EndLocation;
indexer.NamespaceName = qualident;
PropertyGetRegion getRegion;
@ -1282,7 +1282,7 @@ ClassMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1282,7 +1282,7 @@ ClassMemberDecl<Modifiers m, List<AttributeSection> attributes>
| /*--- destructor declaration: */ (. m.Check(Modifier.Destructors); Point startPos = t.Location; .)
"~" ident (. DestructorDeclaration d = new DestructorDeclaration(t.val, m.Modifier, attributes);
d.Modifier = m.Modifier;
d.StartLocation = startPos;
d.StartLocation = m.GetDeclarationLocation(startPos);
.)
"(" ")" (. d.EndLocation = t.EndLocation; .) ( Block<out stmt> | ";" ) (.
d.Body = (BlockStatement)stmt;

27
src/Libraries/NRefactory/Project/Src/Parser/Modifiers.cs

@ -6,12 +6,14 @@ @@ -6,12 +6,14 @@
// </file>
using ICSharpCode.NRefactory.Parser.AST;
using System.Drawing;
namespace ICSharpCode.NRefactory.Parser
{
internal class Modifiers
{
Modifier cur;
Point location = new Point(-1, -1);
public Modifier Modifier {
get {
@ -19,6 +21,23 @@ namespace ICSharpCode.NRefactory.Parser @@ -19,6 +21,23 @@ namespace ICSharpCode.NRefactory.Parser
}
}
public Point GetDeclarationLocation(Point keywordLocation)
{
if(location.X == -1 && location.Y == -1) {
return keywordLocation;
}
return location;
}
public Point Location {
get {
return location;
}
set {
location = value;
}
}
public bool isNone { get { return cur == Modifier.None; } }
public bool Contains(Modifier m)
@ -26,8 +45,12 @@ namespace ICSharpCode.NRefactory.Parser @@ -26,8 +45,12 @@ namespace ICSharpCode.NRefactory.Parser
return ((cur & m) != 0);
}
public void Add(Modifier m)
public void Add(Modifier m, Point tokenLocation)
{
if(location.X == -1 && location.Y == -1) {
location = tokenLocation;
}
if ((cur & m) == 0) {
cur |= m;
} else {
@ -37,7 +60,7 @@ namespace ICSharpCode.NRefactory.Parser @@ -37,7 +60,7 @@ namespace ICSharpCode.NRefactory.Parser
public void Add(Modifiers m)
{
Add(m.cur);
Add(m.cur, m.Location);
}
public void Check(Modifier allowed)

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

File diff suppressed because it is too large Load Diff

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

@ -596,7 +596,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -596,7 +596,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
.) =
(. m.Check(Modifier.Classes); .)
/* Spec, 7.5 */
["Partial" (. m.Add(Modifier.Partial); .)]
["Partial" (. m.Add(Modifier.Partial, t.Location); .)]
"Class"
(. TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
newType.StartLocation = t.Location;
@ -620,7 +620,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -620,7 +620,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Module;
.)
Identifier (. newType.Name = t.val; .)
@ -635,8 +635,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -635,8 +635,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.StartLocation = t.Location;
System.Console.WriteLine("XXX " + t.Location.ToString());
newType.StartLocation = m.GetDeclarationLocation(t.Location);
newType.Type = Types.Struct;
.)
Identifier (. newType.Name = t.val; .)
@ -651,8 +650,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -651,8 +650,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
(.
m.Check(Modifier.VBEnums);
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
@ -670,7 +668,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -670,7 +668,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
(.
m.Check(Modifier.VBInterfacs);
TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes);
newType.StartLocation = t.Location;
newType.StartLocation = m.GetDeclarationLocation(t.Location);
compilationUnit.AddChild(newType);
compilationUnit.BlockStart(newType);
newType.Type = Types.Interface;
@ -688,7 +686,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -688,7 +686,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
m.Check(Modifier.VBDelegates);
DelegateDeclaration delegateDeclr = new DelegateDeclaration(m.Modifier, attributes);
delegateDeclr.ReturnType = new TypeReference("", "System.Void");
delegateDeclr.StartLocation = t.Location;
delegateDeclr.StartLocation = m.GetDeclarationLocation(t.Location);
List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>();
.)
(
@ -931,7 +929,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -931,7 +929,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
IF(IsMustOverride(m))
(.
methodDeclaration = new MethodDeclaration(name, m.Modifier, null, p, attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = endLocation;
methodDeclaration.TypeReference = new TypeReference("", "System.Void");
@ -944,7 +942,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -944,7 +942,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
|
(.
methodDeclaration = new MethodDeclaration(name, m.Modifier, null, p, attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = endLocation;
methodDeclaration.TypeReference = new TypeReference("", "System.Void");
@ -971,7 +969,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -971,7 +969,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
"End" "Sub" (. Point endLocation = t.EndLocation; .) EOL
(.
ConstructorDeclaration cd = new ConstructorDeclaration("New", m.Modifier, p, attributes);
cd.StartLocation = startPos;
cd.StartLocation = m.GetDeclarationLocation(startPos);
cd.EndLocation = constructorEndLocation;
cd.Body = (BlockStatement)stmt;
cd.Body.EndLocation = endLocation;
@ -1010,7 +1008,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1010,7 +1008,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
IF(IsMustOverride(m))
(.
methodDeclaration = new MethodDeclaration(name, m.Modifier, type, p, attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.HandlesClause = handlesClause;
@ -1022,7 +1020,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1022,7 +1020,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
|
(.
methodDeclaration = new MethodDeclaration(name, m.Modifier, type, p, attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
@ -1066,7 +1064,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1066,7 +1064,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
EOL
(.
DeclareDeclaration declareDeclaration = new DeclareDeclaration(name, m.Modifier, null, p, attributes, library, alias, charsetModifer);
declareDeclaration.StartLocation = startPos;
declareDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
declareDeclaration.EndLocation = t.EndLocation;
compilationUnit.AddChild(declareDeclaration);
.)
@ -1080,7 +1078,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1080,7 +1078,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
EOL
(.
DeclareDeclaration declareDeclaration = new DeclareDeclaration(name, m.Modifier, type, p, attributes, library, alias, charsetModifer);
declareDeclaration.StartLocation = startPos;
declareDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
declareDeclaration.EndLocation = t.EndLocation;
compilationUnit.AddChild(declareDeclaration);
.)
@ -1103,7 +1101,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1103,7 +1101,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
[ ImplementsClause<out implementsClause> ]
(.
eventDeclaration = new EventDeclaration(type, m.Modifier, p, attributes, name, implementsClause);
eventDeclaration.StartLocation = startPos;
eventDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
eventDeclaration.EndLocation = t.EndLocation;
compilationUnit.AddChild(eventDeclaration);
.)
@ -1113,7 +1111,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1113,7 +1111,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
(.
m.Check(Modifier.Fields);
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = startPos;
fd.StartLocation = m.GetDeclarationLocation(startPos);
.)
VariableDeclarator<variableDeclarators>
{ "," VariableDeclarator<variableDeclarators> }
@ -1125,10 +1123,10 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1125,10 +1123,10 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
.)
| /* 9.4 */
(. m.Check(Modifier.Fields); .)
"Const" (. m.Add(Modifier.Const); .)
"Const" (. m.Add(Modifier.Const, t.Location); .)
(.
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = t.Location;
fd.StartLocation = m.GetDeclarationLocation(t.Location);
List<VariableDeclaration> constantDeclarators = new List<VariableDeclaration>();
.)
ConstantDeclarator<constantDeclarators>
@ -1164,7 +1162,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1164,7 +1162,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
IF(IsMustOverride(m))
(.
PropertyDeclaration pDecl = new PropertyDeclaration(propertyName, type, m.Modifier, attributes);
pDecl.StartLocation = startPos;
pDecl.StartLocation = m.GetDeclarationLocation(startPos);
pDecl.EndLocation = t.Location;
pDecl.TypeReference = type;
pDecl.ImplementsClause = implementsClause;
@ -1174,7 +1172,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1174,7 +1172,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
|
(.
PropertyDeclaration pDecl = new PropertyDeclaration(propertyName, type, m.Modifier, attributes);
pDecl.StartLocation = startPos;
pDecl.StartLocation = m.GetDeclarationLocation(startPos);
pDecl.EndLocation = t.Location;
pDecl.BodyStart = t.Location;
pDecl.TypeReference = type;
@ -1242,7 +1240,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1242,7 +1240,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
}
EventDeclaration decl = new EventDeclaration(type, customEventName, m.Modifier, attributes);
decl.StartLocation = startPos;
decl.StartLocation = m.GetDeclarationLocation(startPos);
decl.EndLocation = t.EndLocation;
compilationUnit.AddChild(decl);
.)
@ -1283,7 +1281,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1283,7 +1281,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
operatorDeclaration.ConvertToType = returnType;
operatorDeclaration.ReturnTypeAttributes = returnTypeAttributes;
operatorDeclaration.Body = (BlockStatement)stmt;
operatorDeclaration.StartLocation = startPos;
operatorDeclaration.StartLocation = m.GetDeclarationLocation(startPos);
operatorDeclaration.EndLocation = t.EndLocation;
compilationUnit.AddChild(operatorDeclaration);
.)
@ -2217,8 +2215,8 @@ LocalDeclarationStatement<out Statement statement> @@ -2217,8 +2215,8 @@ LocalDeclarationStatement<out Statement statement>
.) =
/* this differs from the spec: dim static x compiles with vbc. */
{
"Const" (. m.Add(Modifier.Const); .)
| "Static" (. m.Add(Modifier.Static); .)
"Const" (. m.Add(Modifier.Const, t.Location); .)
| "Static" (. m.Add(Modifier.Static, t.Location); .)
| "Dim" (. dimfound = true; .)
}
(.
@ -2938,37 +2936,37 @@ ParameterModifier<ParamModifiers m> @@ -2938,37 +2936,37 @@ ParameterModifier<ParamModifiers m>
.
TypeModifier<Modifiers m>
= "Public" (. m.Add(Modifier.Public); .)
| "Protected" (. m.Add(Modifier.Protected); .)
| "Friend" (. m.Add(Modifier.Internal); .)
| "Private" (. m.Add(Modifier.Private); .)
| "Shared" (. m.Add(Modifier.Static); .)
| "Shadows" (. m.Add(Modifier.New); .)
| "MustInherit" (. m.Add(Modifier.Abstract); .)
| "NotInheritable" (. m.Add(Modifier.Sealed); .)
= "Public" (. m.Add(Modifier.Public, t.Location); .)
| "Protected" (. m.Add(Modifier.Protected, t.Location); .)
| "Friend" (. m.Add(Modifier.Internal, t.Location); .)
| "Private" (. m.Add(Modifier.Private, t.Location); .)
| "Shared" (. m.Add(Modifier.Static, t.Location); .)
| "Shadows" (. m.Add(Modifier.New, t.Location); .)
| "MustInherit" (. m.Add(Modifier.Abstract, t.Location); .)
| "NotInheritable" (. m.Add(Modifier.Sealed, t.Location); .)
.
MemberModifier<Modifiers m> =
"MustInherit" (.m.Add(Modifier.Abstract);.)
|"Default" (.m.Add(Modifier.Default);.)
|"Friend" (.m.Add(Modifier.Internal);.)
|"Shadows" (.m.Add(Modifier.New);.)
|"Overrides" (.m.Add(Modifier.Override);.)
|"MustOverride" (.m.Add(Modifier.Abstract);.)
|"Private" (.m.Add(Modifier.Private);.)
|"Protected" (.m.Add(Modifier.Protected);.)
|"Public" (.m.Add(Modifier.Public);.)
|"NotInheritable" (.m.Add(Modifier.Sealed);.)
|"NotOverridable" (.m.Add(Modifier.Sealed);.)
|"Shared" (.m.Add(Modifier.Static);.)
|"Overridable" (.m.Add(Modifier.Virtual);.)
|"Overloads" (.m.Add(Modifier.Overloads);.)
"MustInherit" (.m.Add(Modifier.Abstract, t.Location);.)
|"Default" (.m.Add(Modifier.Default, t.Location);.)
|"Friend" (.m.Add(Modifier.Internal, t.Location);.)
|"Shadows" (.m.Add(Modifier.New, t.Location);.)
|"Overrides" (.m.Add(Modifier.Override, t.Location);.)
|"MustOverride" (.m.Add(Modifier.Abstract, t.Location);.)
|"Private" (.m.Add(Modifier.Private, t.Location);.)
|"Protected" (.m.Add(Modifier.Protected, t.Location);.)
|"Public" (.m.Add(Modifier.Public, t.Location);.)
|"NotInheritable" (.m.Add(Modifier.Sealed, t.Location);.)
|"NotOverridable" (.m.Add(Modifier.Sealed, t.Location);.)
|"Shared" (.m.Add(Modifier.Static, t.Location);.)
|"Overridable" (.m.Add(Modifier.Virtual, t.Location);.)
|"Overloads" (.m.Add(Modifier.Overloads, t.Location);.)
| "ReadOnly" (. /* m.Add(Modifier.ReadOnly); */ .)
| "WriteOnly" (. /* m.Add(Modifier.WriteOnly); */ .)
| "WithEvents" (.m.Add(Modifier.WithEvents);.)
| "Dim" (.m.Add(Modifier.Dim);.)
| "Widening" (.m.Add(Modifier.Widening);.)
| "Narrowing" (.m.Add(Modifier.Narrowing);.)
| "WithEvents" (.m.Add(Modifier.WithEvents, t.Location);.)
| "Dim" (.m.Add(Modifier.Dim, t.Location);.)
| "Widening" (.m.Add(Modifier.Widening, t.Location);.)
| "Narrowing" (.m.Add(Modifier.Narrowing, t.Location);.)
.
END VBNET.

Loading…
Cancel
Save