Browse Source

Fixed some bugs in NRefactory.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@765 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
288234d0c4
  1. 2
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs
  2. 11
      src/AddIns/Misc/MbUnitPad/Project/Src/MbUnitPad.cs
  3. 3
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/KeywordList.txt
  4. 1
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Tokens.cs
  5. 15
      src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs
  6. 3
      src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputFormatter.cs
  7. 109
      src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs
  8. 38
      src/Libraries/NRefactory/Project/Src/Parser/AST/General/Enums.cs
  9. 5
      src/Libraries/NRefactory/Project/Src/Parser/AST/General/TypeLevel/PropertyDeclaration.cs
  10. 2
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs
  11. 2
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG
  12. 1882
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  13. 55
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG
  14. 27
      src/Libraries/NRefactory/Test/Output/CSharp/CSharpOutputTest.cs
  15. 34
      src/Libraries/NRefactory/Test/Output/VBNet/VBNetOutputTest.cs
  16. 9
      src/Libraries/NRefactory/Test/Parser/Expressions/IdentifierExpressionTests.cs
  17. 259
      src/SharpDevelop.WithBooInterpreter.sln

2
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs

@ -121,7 +121,7 @@ namespace NRefactoryToBooConverter @@ -121,7 +121,7 @@ namespace NRefactoryToBooConverter
}
if ((m & Modifier.Override) != 0)
r |= B.TypeMemberModifiers.Override;
if ((m & Modifier.Readonly) != 0 && !(node is PropertyDeclaration)) {
if ((m & Modifier.ReadOnly) != 0 && !(node is PropertyDeclaration)) {
r |= B.TypeMemberModifiers.Final;
}
if ((m & Modifier.Const) != 0) {

11
src/AddIns/Misc/MbUnitPad/Project/Src/MbUnitPad.cs

@ -60,7 +60,6 @@ namespace ICSharpCode.MbUnitPad @@ -60,7 +60,6 @@ namespace ICSharpCode.MbUnitPad
ProjectService.SolutionLoaded += OnSolutionLoaded;
ProjectService.SolutionClosed += OnSolutionClosed;
ProjectService.EndBuild += OnEndBuild;
}
/// <summary>
@ -70,7 +69,6 @@ namespace ICSharpCode.MbUnitPad @@ -70,7 +69,6 @@ namespace ICSharpCode.MbUnitPad
{
ProjectService.SolutionLoaded -= OnSolutionLoaded;
ProjectService.SolutionClosed -= OnSolutionClosed;
ProjectService.EndBuild -= OnEndBuild;
ctl.Dispose();
}
@ -210,14 +208,5 @@ namespace ICSharpCode.MbUnitPad @@ -210,14 +208,5 @@ namespace ICSharpCode.MbUnitPad
WorkbenchSingleton.Workbench.GetPad(typeof(ErrorList)).BringPadToFront();
}
}
void OnEndBuild(object sender, EventArgs e)
{
LoggingService.Info("OnEndBuild");
if (treeView.IsPopulated) {
LoggingService.Debug("treeView.IsPopulated == true");
WorkbenchSingleton.SafeThreadAsyncCall(this, "ReloadAssemblyList");
}
}
}
}

3
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/KeywordList.txt

@ -233,3 +233,6 @@ ConcatStringAssign = "&=" @@ -233,3 +233,6 @@ ConcatStringAssign = "&="
#Sets
Null("Nothing")
BlockSucc("Case", "Catch", "Else", "ElseIf", "End", "Finally", "Loop", "Next")
# List of unreserved keywords, must be the same as the "Identifier" production in VBNET.ATG
Unreserved("Text", "Binary", "Compare", "Assembly", "Ansi", "Auto", "Preserve", "Unicode", "Until")

1
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Tokens.cs

@ -228,6 +228,7 @@ namespace ICSharpCode.NRefactory.Parser.VB @@ -228,6 +228,7 @@ namespace ICSharpCode.NRefactory.Parser.VB
}
public static BitArray Null = NewSet(Nothing);
public static BitArray BlockSucc = NewSet(Case, Catch, Else, ElseIf, End, Finally, Loop, Next);
public static BitArray Unreserved = NewSet(Text, Binary, Compare, Assembly, Ansi, Auto, Preserve, Unicode, Until);
static string[] tokenList = new string[] {
// ----- terminal classes -----

15
src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs

@ -352,9 +352,6 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -352,9 +352,6 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
outputFormatter.Indent();
OutputModifier(typeDeclaration.Modifier);
switch (typeDeclaration.Type) {
case ClassType.Class:
outputFormatter.PrintToken(Tokens.Class);
break;
case ClassType.Enum:
outputFormatter.PrintToken(Tokens.Enum);
break;
@ -364,6 +361,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -364,6 +361,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
case ClassType.Struct:
outputFormatter.PrintToken(Tokens.Struct);
break;
default:
outputFormatter.PrintToken(Tokens.Class);
break;
}
outputFormatter.Space();
outputFormatter.PrintIdentifier(typeDeclaration.Name);
@ -387,9 +387,6 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -387,9 +387,6 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
}
switch (typeDeclaration.Type) {
case ClassType.Class:
outputFormatter.BeginBrace(this.prettyPrintOptions.ClassBraceStyle);
break;
case ClassType.Enum:
outputFormatter.BeginBrace(this.prettyPrintOptions.EnumBraceStyle);
break;
@ -399,6 +396,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -399,6 +396,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
case ClassType.Struct:
outputFormatter.BeginBrace(this.prettyPrintOptions.StructBraceStyle);
break;
default:
outputFormatter.BeginBrace(this.prettyPrintOptions.ClassBraceStyle);
break;
}
TypeDeclaration oldType = currentType;
@ -511,6 +511,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -511,6 +511,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
{
VisitAttributes(propertyDeclaration.Attributes, data);
outputFormatter.Indent();
propertyDeclaration.Modifier &= ~Modifier.ReadOnly;
OutputModifier(propertyDeclaration.Modifier);
nodeTracker.TrackedVisit(propertyDeclaration.TypeReference, data);
outputFormatter.Space();
@ -2383,7 +2384,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -2383,7 +2384,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
if ((modifier & Modifier.Const) != 0) {
tokenList.Add(Tokens.Const);
}
if ((modifier & Modifier.Readonly) != 0) {
if ((modifier & Modifier.ReadOnly) != 0) {
tokenList.Add(Tokens.Readonly);
}
if ((modifier & Modifier.Volatile) != 0) {

3
src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputFormatter.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -32,7 +32,8 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public override void PrintIdentifier(string identifier)
{
if (Keywords.GetToken(identifier) < 0) {
int token = Keywords.GetToken(identifier);
if (token < 0 || Tokens.Unreserved[token]) {
PrintText(identifier);
} else {
PrintText("[");

109
src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs

@ -511,12 +511,14 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -511,12 +511,14 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
outputFormatter.Indent();
OutputModifier(propertyDeclaration.Modifier);
if (propertyDeclaration.IsReadOnly) {
outputFormatter.PrintToken(Tokens.ReadOnly);
outputFormatter.Space();
} else if (propertyDeclaration.IsWriteOnly) {
outputFormatter.PrintToken(Tokens.WriteOnly);
outputFormatter.Space();
if ((propertyDeclaration.Modifier & (Modifier.ReadOnly | Modifier.WriteOnly)) == Modifier.None) {
if (propertyDeclaration.IsReadOnly) {
outputFormatter.PrintToken(Tokens.ReadOnly);
outputFormatter.Space();
} else if (propertyDeclaration.IsWriteOnly) {
outputFormatter.PrintToken(Tokens.WriteOnly);
outputFormatter.Space();
}
}
outputFormatter.PrintToken(Tokens.Property);
@ -532,19 +534,23 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -532,19 +534,23 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
nodeTracker.TrackedVisit(propertyDeclaration.TypeReference, data);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
exitTokenStack.Push(Tokens.Property);
nodeTracker.TrackedVisit(propertyDeclaration.GetRegion, data);
nodeTracker.TrackedVisit(propertyDeclaration.SetRegion, data);
exitTokenStack.Pop();
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.End);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Property);
outputFormatter.Space();
outputFormatter.NewLine();
if (!IsAbstract(propertyDeclaration)) {
++outputFormatter.IndentationLevel;
exitTokenStack.Push(Tokens.Property);
nodeTracker.TrackedVisit(propertyDeclaration.GetRegion, data);
nodeTracker.TrackedVisit(propertyDeclaration.SetRegion, data);
exitTokenStack.Pop();
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.End);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Property);
outputFormatter.Space();
outputFormatter.NewLine();
}
return null;
}
@ -768,25 +774,33 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -768,25 +774,33 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
}
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
exitTokenStack.Push(isSub ? Tokens.Sub : Tokens.Function);
nodeTracker.TrackedVisit(methodDeclaration.Body, data);
exitTokenStack.Pop();
--outputFormatter.IndentationLevel;
if (!IsAbstract(methodDeclaration)) {
++outputFormatter.IndentationLevel;
exitTokenStack.Push(isSub ? Tokens.Sub : Tokens.Function);
nodeTracker.TrackedVisit(methodDeclaration.Body, data);
exitTokenStack.Pop();
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.End);
outputFormatter.Space();
if (isSub) {
outputFormatter.PrintToken(Tokens.Sub);
} else {
outputFormatter.PrintToken(Tokens.Function);
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.End);
outputFormatter.Space();
if (isSub) {
outputFormatter.PrintToken(Tokens.Sub);
} else {
outputFormatter.PrintToken(Tokens.Function);
}
outputFormatter.NewLine();
}
outputFormatter.NewLine();
return null;
}
bool IsAbstract(AttributedNode node)
{
if ((node.Modifier & Modifier.Abstract) == Modifier.Abstract)
return true;
return currentType != null && currentType.Type == ClassType.Interface;
}
public object Visit(ConstructorDeclaration constructorDeclaration, object data)
{
VisitAttributes(constructorDeclaration.Attributes, data);
@ -802,6 +816,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -802,6 +816,9 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
++outputFormatter.IndentationLevel;
exitTokenStack.Push(Tokens.Sub);
nodeTracker.TrackedVisit(constructorDeclaration.ConstructorInitializer, data);
nodeTracker.TrackedVisit(constructorDeclaration.Body, data);
exitTokenStack.Pop();
--outputFormatter.IndentationLevel;
@ -818,7 +835,19 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -818,7 +835,19 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public object Visit(ConstructorInitializer constructorInitializer, object data)
{
errors.Error(-1, -1, String.Format("ConstructorInitializer not supported."));
outputFormatter.Indent();
if (constructorInitializer.ConstructorInitializerType == ConstructorInitializerType.This) {
outputFormatter.PrintToken(Tokens.Me);
} else {
outputFormatter.PrintToken(Tokens.MyBase);
}
outputFormatter.PrintToken(Tokens.Dot);
outputFormatter.PrintToken(Tokens.New);
outputFormatter.PrintToken(Tokens.OpenParenthesis);
AppendCommaSeparatedList(constructorInitializer.Arguments);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.NewLine();
return null;
}
@ -1716,7 +1745,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -1716,7 +1745,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
string ConvertCharLiteral(char ch)
{
if (Char.IsControl(ch)) {
return "Microsoft.VisualBasic.Chr(" + ((int)ch) + ")";
return "Chr(" + ((int)ch) + ")";
} else {
if (ch == '"') {
return "\"\"\"\"C";
@ -1730,7 +1759,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -1730,7 +1759,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
StringBuilder sb = new StringBuilder();
foreach (char ch in str) {
if (char.IsControl(ch)) {
sb.Append("\" & Microsoft.VisualBasic.Chr(" + ((int)ch) + ") & \"");
sb.Append("\" & Chr(" + ((int)ch) + ") & \"");
} else if (ch == '"') {
sb.Append("\"\"");
} else {
@ -2272,7 +2301,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -2272,7 +2301,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public object Visit(DirectionExpression directionExpression, object data)
{
// TODO: is this correct for VB ? (ref/out parameters in method invocation)
// VB does not need to specify the direction in method calls
nodeTracker.TrackedVisit(directionExpression.Expression, data);
return null;
}
@ -2281,7 +2310,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -2281,7 +2310,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public object Visit(ConditionalExpression conditionalExpression, object data)
{
// No representation in VB.NET, but VB conversion is possible.
outputFormatter.PrintText("Microsoft.VisualBasic.IIf");
outputFormatter.PrintText("IIf");
outputFormatter.PrintToken(Tokens.OpenParenthesis);
nodeTracker.TrackedVisit(conditionalExpression.Condition, data);
outputFormatter.PrintToken(Tokens.Comma);
@ -2372,10 +2401,14 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -2372,10 +2401,14 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
outputFormatter.Space();
}
if ((modifier & Modifier.Readonly) == Modifier.Readonly) {
if ((modifier & Modifier.ReadOnly) == Modifier.ReadOnly) {
outputFormatter.PrintToken(Tokens.ReadOnly);
outputFormatter.Space();
}
if ((modifier & Modifier.WriteOnly) == Modifier.WriteOnly) {
outputFormatter.PrintToken(Tokens.WriteOnly);
outputFormatter.Space();
}
if ((modifier & Modifier.Const) == Modifier.Const) {
outputFormatter.PrintToken(Tokens.Const);
outputFormatter.Space();

38
src/Libraries/NRefactory/Project/Src/Parser/AST/General/Enums.cs

@ -16,7 +16,8 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -16,7 +16,8 @@ namespace ICSharpCode.NRefactory.Parser.AST
// Access
Private = 0x0001,
Internal = 0x0002, // == Friend
/// <summary>C# 'internal', VB 'Friend'</summary>
Internal = 0x0002,
Protected = 0x0004,
Public = 0x0008,
Dim = 0x0010, // VB.NET SPECIFIC
@ -25,11 +26,14 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -25,11 +26,14 @@ namespace ICSharpCode.NRefactory.Parser.AST
Abstract = 0x0010, // == MustOverride/MustInherit
Virtual = 0x0020,
Sealed = 0x0040,
/// <summary>C# 'static', VB 'Shared'</summary>
Static = 0x0080,
Override = 0x0100,
Readonly = 0x0200,
/// <summary>For fields: readonly (c# and vb), for properties: get-only (vb)</summary>
ReadOnly = 0x0200,
Const = 0x0400,
New = 0x0800, // == Shadows
/// <summary>C# 'new', VB 'Shadows'</summary>
New = 0x0800,
Partial = 0x1000,
// Special
@ -40,9 +44,10 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -40,9 +44,10 @@ namespace ICSharpCode.NRefactory.Parser.AST
WithEvents = 0x20000, // VB specific
Default = 0x40000, // VB specific
Narrowing = 0x80000, // VB specific
Widening = 0x100000, // VB specific
Synthetic = 0x200000,
Widening = 0x100000, // VB specific
Synthetic = 0x200000,
/// <summary>Only for VB properties.</summary>
WriteOnly = 0x400000, // VB specific
Classes = New | Public | Protected | Internal | Private | Abstract | Sealed | Partial | Static,
VBModules = Private | Public | Protected | Internal,
@ -53,7 +58,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -53,7 +58,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
VBMethods = Private | Public | Protected | Internal | New | Static | Virtual | Sealed | Abstract | Override | Overloads,
VBExternalMethods = Private | Public | Protected | Internal | New | Overloads,
VBEvents = Private | Public | Protected | Internal | New | Overloads,
VBProperties = VBMethods | Default,
VBProperties = VBMethods | Default | ReadOnly | WriteOnly,
VBCustomEvents = Private | Public | Protected | Internal | New | Overloads,
VBOperators = Public | Static | Overloads | New | Widening | Narrowing,
@ -61,10 +66,10 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -61,10 +66,10 @@ namespace ICSharpCode.NRefactory.Parser.AST
// this is not documented in the spec
VBInterfaceEvents = New,
VBInterfaceMethods = New | Overloads,
VBInterfaceProperties = New | Overloads | /* ReadOnly | WriteOnly | */ Default,
VBInterfaceProperties = New | Overloads | ReadOnly | WriteOnly | Default,
VBInterfaceEnums = New,
Fields = New | Public | Protected | Internal | Private | Static | Readonly | Volatile,
Fields = New | Public | Protected | Internal | Private | Static | ReadOnly | Volatile,
PropertysEventsMethods = New | Public | Protected | Internal | Private | Static | Virtual | Sealed | Override | Abstract | Extern,
Indexers = New | Public | Protected | Internal | Private | Virtual | Sealed | Override | Abstract | Extern,
Operators = Public | Static | Extern,
@ -100,21 +105,6 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -100,21 +105,6 @@ namespace ICSharpCode.NRefactory.Parser.AST
Ref
}
public enum Members // TODO: Rename to MemberType
{
Constant,
Field,
Method,
Property,
Event,
Indexer,
Operator,
Constructor,
StaticConstructor,
Destructor,
NestedType
}
[Flags]
public enum ParamModifier // TODO: Rename to ParamModifiers
{

5
src/Libraries/NRefactory/Project/Src/Parser/AST/General/TypeLevel/PropertyDeclaration.cs

@ -113,6 +113,11 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -113,6 +113,11 @@ namespace ICSharpCode.NRefactory.Parser.AST
{
Debug.Assert(typeReference != null);
this.typeReference = typeReference;
if ((modifier & Modifier.ReadOnly) == Modifier.ReadOnly) {
this.GetRegion = new PropertyGetRegion(null, null);
} else if ((modifier & Modifier.WriteOnly) == Modifier.WriteOnly) {
this.SetRegion = new PropertySetRegion(null, null);
}
}
public override object AcceptVisitor(IASTVisitor visitor, object data)

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

@ -1865,7 +1865,7 @@ Modifiers m) { @@ -1865,7 +1865,7 @@ Modifiers m) {
lexer.NextToken();
#line 1166 "cs.ATG"
m.Add(Modifier.Readonly, t.Location);
m.Add(Modifier.ReadOnly, t.Location);
break;
}
case 102: {

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

@ -1163,7 +1163,7 @@ MemberModifier<Modifiers m> @@ -1163,7 +1163,7 @@ MemberModifier<Modifiers m>
| "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); .)
| "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); .)

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

File diff suppressed because it is too large Load Diff

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

@ -823,10 +823,8 @@ InterfaceBody<TypeDeclaration newType> = @@ -823,10 +823,8 @@ InterfaceBody<TypeDeclaration newType> =
EOL
.
/*
The information provided in the spec about
interface declarations is wrong
*/
/* The information provided in the spec about */
/* interface declarations is wrong */
InterfaceMemberDecl
(.
TypeReference type =null;
@ -838,9 +836,8 @@ InterfaceMemberDecl @@ -838,9 +836,8 @@ InterfaceMemberDecl
string name;
.) =
{ AttributeSection<out section> (. attributes.Add(section); .) }
/* this is different to c#: not only the Shadows modifier is allowed,
also member modifiers like overloads etc.
*/
/* this is different to c#: not only the Shadows modifier is allowed, */
/* also member modifiers like overloads etc. */
{ MemberModifier<mod> }
(
"Event"
@ -1697,10 +1694,6 @@ EventMemberSpecifier<out string name> @@ -1697,10 +1694,6 @@ EventMemberSpecifier<out string name>
Expr<out Expression expr>
=
ConditionalOrExpr<out expr>
/* {
(. AssignmentOperatorType op; Expression val; .)
AssignmentOperator<out op> Expr<out val> (. expr = new AssignmentExpression(expr, op, val); .)
}*/
.
UnaryExpr<out Expression uExpr>
@ -2883,6 +2876,12 @@ Identifier = @@ -2883,6 +2876,12 @@ Identifier =
| "Text"
| "Binary"
| "Compare"
| "Assembly"
| "Ansi"
| "Auto"
| "Preserve"
| "Unicode"
| "Until"
.
/* 2.2 */
@ -2933,26 +2932,26 @@ TypeModifier<Modifiers m> @@ -2933,26 +2932,26 @@ TypeModifier<Modifiers m>
.
MemberModifier<Modifiers m> =
"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); */ .)
"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, t.Location);.)
| "WriteOnly" (.m.Add(Modifier.WriteOnly, t.Location);.)
| "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.

27
src/Libraries/NRefactory/Test/Output/CSharp/CSharpOutputTest.cs

@ -204,5 +204,32 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter @@ -204,5 +204,32 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter
{
TestStatement("using (A a = new A()) { a.Work(); }");
}
[Test]
public void AbstractProperty()
{
TestTypeMember("public abstract bool ExpectsValue { get; set; }");
TestTypeMember("public abstract bool ExpectsValue { get; }");
TestTypeMember("public abstract bool ExpectsValue { set; }");
}
[Test]
public void AbstractMethod()
{
TestTypeMember("public abstract void Run();");
TestTypeMember("public abstract bool Run();");
}
[Test]
public void Interface()
{
TestProgram("interface ITest {" +
" bool GetterAndSetter { get; set; }" +
" bool GetterOnly { get; }" +
" bool SetterOnly { set; }" +
" void InterfaceMethod();" +
" string InterfaceMethod2();\n" +
"}");
}
}
}

34
src/Libraries/NRefactory/Test/Output/VBNet/VBNetOutputTest.cs

@ -102,6 +102,13 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter @@ -102,6 +102,13 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter
TestExpression("a = b");
}
[Test]
public void SpecialIdentifiers()
{
// Assembly, Ansi and Until are contextual keywords
TestExpression("Assembly = Ansi * [For] + Until");
}
[Test]
public void Integer()
{
@ -173,5 +180,32 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter @@ -173,5 +180,32 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter
{
TestExpression("CStr(a)");
}
[Test]
public void AbstractProperty()
{
TestTypeMember("Public MustOverride Property ExpectsValue() As Boolean");
TestTypeMember("Public MustOverride ReadOnly Property ExpectsValue() As Boolean");
TestTypeMember("Public MustOverride WriteOnly Property ExpectsValue() As Boolean");
}
[Test]
public void AbstractMethod()
{
TestTypeMember("Public MustOverride Sub Run()");
TestTypeMember("Public MustOverride Function Run() As Boolean");
}
[Test]
public void Interface()
{
TestProgram("Interface ITest\n" +
"Property GetterAndSetter() As Boolean\n" +
"ReadOnly Property GetterOnly() As Boolean\n" +
"WriteOnly Property SetterOnly() As Boolean\n" +
"Sub InterfaceMethod()\n" +
"Function InterfaceMethod2() As String\n" +
"End Interface");
}
}
}

9
src/Libraries/NRefactory/Test/Parser/Expressions/IdentifierExpressionTests.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
@ -46,6 +46,13 @@ namespace ICSharpCode.NRefactory.Tests.AST @@ -46,6 +46,13 @@ namespace ICSharpCode.NRefactory.Tests.AST
IdentifierExpression ie = ParseUtilVBNet.ParseExpression<IdentifierExpression>("[Public]");
Assert.AreEqual("Public", ie.Identifier);
}
[Test]
public void VBNetAssemblyIdentifierExpressionTest()
{
IdentifierExpression ie = ParseUtilVBNet.ParseExpression<IdentifierExpression>("Assembly");
Assert.AreEqual("Assembly", ie.Identifier);
}
#endregion
}

259
src/SharpDevelop.WithBooInterpreter.sln

@ -1,259 +0,0 @@ @@ -1,259 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.0.0.639
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormDesigner", "AddIns\DisplayBindings\FormDesigner\Project\FormDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Backends", "Backends", "{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{A33008B1-5DAC-44D5-9060-242E3B6E38F2}") = "Boo.InterpreterAddIn", "AddIns\BackendBindings\Boo\Boo.InterpreterAddIn\Project\Boo.InterpreterAddIn.booproj", "{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILAsmBinding", "AddIns\BackendBindings\ILAsmBinding\Project\ILAsmBinding.csproj", "{6e59af58-f635-459a-9a35-c9ac41c00339}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NAntAddIn", "AddIns\Misc\NAntAddIn\Project\NAntAddIn.csproj", "{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MbUnitPad", "AddIns\Misc\MbUnitPad\Project\MbUnitPad.csproj", "{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HtmlHelp2", "AddIns\Misc\HtmlHelp2\Project\HtmlHelp2.csproj", "{918487B7-2153-4618-BBB3-344DBDDF2A2A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "AddIns\Misc\SubversionAddIn\Project\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TreeListView", "AddIns\Misc\Debugger\TreeListView\Project\TreeListView.csproj", "{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HighlightingEditor", "AddIns\Misc\HighlightingEditor\Project\HighlightingEditor.csproj", "{8A462940-E5E9-4E85-982D-D4C006EE31D4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Libraries\NUnit.Framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "{2ba4dbc4-a228-45bf-9584-e017d596b45f}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.Build.0 = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.Build.0 = Release|Any CPU
{98B10E98-003C-45A0-9587-119142E39986}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98B10E98-003C-45A0-9587-119142E39986}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98B10E98-003C-45A0-9587-119142E39986}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98B10E98-003C-45A0-9587-119142E39986}.Release|Any CPU.Build.0 = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Any CPU.Build.0 = Release|Any CPU
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.Build.0 = Release|Any CPU
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.Build.0 = Release|Any CPU
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Any CPU.Build.0 = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Any CPU.Build.0 = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Any CPU.Build.0 = Release|Any CPU
{8A462940-E5E9-4E85-982D-D4C006EE31D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A462940-E5E9-4E85-982D-D4C006EE31D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A462940-E5E9-4E85-982D-D4C006EE31D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A462940-E5E9-4E85-982D-D4C006EE31D4}.Release|Any CPU.Build.0 = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Any CPU.Build.0 = Release|Any CPU
{A82F44D7-F336-4AD6-B2EE-D2C082D094EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A82F44D7-F336-4AD6-B2EE-D2C082D094EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|Any CPU.Build.0 = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Any CPU.Build.0 = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.Build.0 = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|Any CPU.Build.0 = Release|Any CPU
{2BA4DBC4-A228-45BF-9584-E017D596B45F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BA4DBC4-A228-45BF-9584-E017D596B45F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BA4DBC4-A228-45BF-9584-E017D596B45F}.Release|Any CPU.Build.0 = Release|Any CPU
{2BA4DBC4-A228-45BF-9584-E017D596B45F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.Build.0 = Debug|Any CPU
{83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.Build.0 = Release|Any CPU
{83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Any CPU.Build.0 = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}.Release|Any CPU.Build.0 = Release|Any CPU
{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A}.Release|Any CPU.Build.0 = Release|Any CPU
{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|Any CPU.Build.0 = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E59AF58-F635-459A-9A35-C9AC41C00339}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E59AF58-F635-459A-9A35-C9AC41C00339}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E59AF58-F635-459A-9A35-C9AC41C00339}.Release|Any CPU.Build.0 = Release|Any CPU
{6E59AF58-F635-459A-9A35-C9AC41C00339}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}.Release|Any CPU.Build.0 = Release|Any CPU
{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}.Release|Any CPU.Build.0 = Release|Any CPU
{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{918487B7-2153-4618-BBB3-344DBDDF2A2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{918487B7-2153-4618-BBB3-344DBDDF2A2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{918487B7-2153-4618-BBB3-344DBDDF2A2A}.Release|Any CPU.Build.0 = Release|Any CPU
{918487B7-2153-4618-BBB3-344DBDDF2A2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.Build.0 = Release|Any CPU
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.Build.0 = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.Build.0 = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}.Release|Any CPU.Build.0 = Release|Any CPU
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
{6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
{BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
{6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
{4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
{928E34B2-5E46-4A4D-8E4D-2CA2CCDB905A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{8A462940-E5E9-4E85-982D-D4C006EE31D4} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{918487B7-2153-4618-BBB3-344DBDDF2A2A} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{B1CE28A0-04E8-490D-8256-E0C4D52C93C8} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal
Loading…
Cancel
Save