Browse Source

implement proper conversion of FieldDeclaration

newNRvisualizers
Siegfried Pammer 14 years ago
parent
commit
e0bfac9bd3
  1. 1
      ICSharpCode.NRefactory.VB/Ast/AstNode.cs
  2. 7
      ICSharpCode.NRefactory.VB/Ast/Enums.cs
  3. 20
      ICSharpCode.NRefactory.VB/Ast/Expressions/ObjectCreationExpression.cs
  4. 4
      ICSharpCode.NRefactory.VB/Ast/General/ParameterDeclaration.cs
  5. 2
      ICSharpCode.NRefactory.VB/Ast/General/TypeParameterDeclaration.cs
  6. 7
      ICSharpCode.NRefactory.VB/Ast/TypeMembers/ConstructorDeclaration.cs
  7. 84
      ICSharpCode.NRefactory.VB/Ast/TypeMembers/MethodDeclaration.cs
  8. 3
      ICSharpCode.NRefactory.VB/IAstVisitor.cs
  9. 1
      ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj
  10. 84
      ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs
  11. 137
      ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs

1
ICSharpCode.NRefactory.VB/Ast/AstNode.cs

@ -702,6 +702,7 @@ namespace ICSharpCode.NRefactory.VB
public static readonly Role<VBTokenNode> LChevron = new Role<VBTokenNode>("LChevron", VBTokenNode.Null); public static readonly Role<VBTokenNode> LChevron = new Role<VBTokenNode>("LChevron", VBTokenNode.Null);
public static readonly Role<VBTokenNode> RChevron = new Role<VBTokenNode>("RChevron", VBTokenNode.Null); public static readonly Role<VBTokenNode> RChevron = new Role<VBTokenNode>("RChevron", VBTokenNode.Null);
public static readonly Role<VBTokenNode> Comma = new Role<VBTokenNode>("Comma", VBTokenNode.Null); public static readonly Role<VBTokenNode> Comma = new Role<VBTokenNode>("Comma", VBTokenNode.Null);
public static readonly Role<VBTokenNode> QuestionMark = new Role<VBTokenNode>("QuestionMark", VBTokenNode.Null);
public static readonly Role<VBTokenNode> Dot = new Role<VBTokenNode>("Dot", VBTokenNode.Null); public static readonly Role<VBTokenNode> Dot = new Role<VBTokenNode>("Dot", VBTokenNode.Null);
public static readonly Role<VBTokenNode> Semicolon = new Role<VBTokenNode>("Semicolon", VBTokenNode.Null); public static readonly Role<VBTokenNode> Semicolon = new Role<VBTokenNode>("Semicolon", VBTokenNode.Null);
public static readonly Role<VBTokenNode> Assign = new Role<VBTokenNode>("Assign", VBTokenNode.Null); public static readonly Role<VBTokenNode> Assign = new Role<VBTokenNode>("Assign", VBTokenNode.Null);

7
ICSharpCode.NRefactory.VB/Ast/Enums.cs

@ -67,13 +67,6 @@ namespace ICSharpCode.NRefactory.VB.Ast
Ref Ref
} }
public enum VarianceModifier
{
Invariant,
Covariant,
Contravariant
};
public enum AssignmentOperatorType public enum AssignmentOperatorType
{ {
None, None,

20
ICSharpCode.NRefactory.VB/Ast/Expressions/ObjectCreationExpression.cs

@ -0,0 +1,20 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
namespace ICSharpCode.NRefactory.VB.Ast
{
public class ObjectCreationExpression : Expression
{
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
{
throw new NotImplementedException();
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
throw new NotImplementedException();
}
}
}

4
ICSharpCode.NRefactory.VB/Ast/General/ParameterDeclaration.cs

@ -17,7 +17,7 @@ namespace ICSharpCode.NRefactory.VB.Ast
set { SetChildByRole(Roles.Expression, value); } set { SetChildByRole(Roles.Expression, value); }
} }
public AstType ReturnType { public AstType Type {
get { return GetChildByRole(Roles.Type); } get { return GetChildByRole(Roles.Type); }
set { SetChildByRole(Roles.Type, value); } set { SetChildByRole(Roles.Type, value); }
} }
@ -29,7 +29,7 @@ namespace ICSharpCode.NRefactory.VB.Ast
MatchAttributesAndModifiers(param, match) && MatchAttributesAndModifiers(param, match) &&
Name.DoMatch(param.Name, match) && Name.DoMatch(param.Name, match) &&
OptionalValue.DoMatch(param.OptionalValue, match) && OptionalValue.DoMatch(param.OptionalValue, match) &&
ReturnType.DoMatch(param.ReturnType, match); Type.DoMatch(param.Type, match);
} }
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data) public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)

2
ICSharpCode.NRefactory.VB/Ast/General/TypeParameterDeclaration.cs

@ -5,6 +5,8 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.VB.Ast namespace ICSharpCode.NRefactory.VB.Ast
{ {
/// <summary> /// <summary>

7
ICSharpCode.NRefactory.VB/Ast/TypeMembers/ConstructorDeclaration.cs

@ -5,10 +5,15 @@ using System;
namespace ICSharpCode.NRefactory.VB.Ast namespace ICSharpCode.NRefactory.VB.Ast
{ {
public abstract class MemberDeclaration : AttributedNode
{
}
/// <summary> /// <summary>
/// Description of ConstructorDeclaration. /// Description of ConstructorDeclaration.
/// </summary> /// </summary>
public class ConstructorDeclaration : AttributedNode public class ConstructorDeclaration : MemberDeclaration
{ {
public ConstructorDeclaration() public ConstructorDeclaration()
{ {

84
ICSharpCode.NRefactory.VB/Ast/TypeMembers/MethodDeclaration.cs

@ -5,7 +5,7 @@ using System;
namespace ICSharpCode.NRefactory.VB.Ast namespace ICSharpCode.NRefactory.VB.Ast
{ {
public class MethodDeclaration : AttributedNode public class MethodDeclaration : MemberDeclaration
{ {
public MethodDeclaration() public MethodDeclaration()
{ {
@ -69,4 +69,86 @@ namespace ICSharpCode.NRefactory.VB.Ast
return visitor.VisitMethodDeclaration(this, data); return visitor.VisitMethodDeclaration(this, data);
} }
} }
/// <remarks>
/// Attributes? VariableModifier+ VariableDeclarators StatementTerminator
/// </remarks>
public class FieldDeclaration : MemberDeclaration
{
public AstNodeCollection<VariableDeclarator> Variables {
get { return GetChildrenByRole(VariableDeclarator.VariableDeclaratorRole); }
}
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
{
throw new NotImplementedException();
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitFieldDeclaration(this, data);
}
}
/// <remarks>
/// VariableIdentifiers As ObjectCreationExpression <br />
/// VariableIdentifiers ( As TypeName )? ( Equals Expression )?
/// </remarks>
public class VariableDeclarator : AstNode
{
public static readonly Role<VariableDeclarator> VariableDeclaratorRole = new Role<VariableDeclarator>("VariableDeclarator");
public AstNodeCollection<VariableIdentifier> Identifiers {
get { return GetChildrenByRole(VariableIdentifier.VariableIdentifierRole); }
}
public AstType Type {
get { return GetChildByRole(Roles.Type); }
set { SetChildByRole(Roles.Type, value); }
}
public Expression Initializer {
get { return GetChildByRole(Roles.Expression); }
set { SetChildByRole(Roles.Expression, value); }
}
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
{
throw new NotImplementedException();
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitVariableDeclarator(this, data);
}
}
/// <remarks>
/// Identifier IdentifierModifiers
/// </remarks>
public class VariableIdentifier : AstNode
{
public static readonly Role<VariableIdentifier> VariableIdentifierRole = new Role<VariableIdentifier>("VariableIdentifier");
public Identifier Name {
get { return GetChildByRole(Roles.Identifier); }
set { SetChildByRole(Roles.Identifier, value); }
}
public bool HasNullableSpecifier { get; set; }
public AstNodeCollection<ArraySpecifier> ArraySpecifiers {
get { return GetChildrenByRole(ComposedType.ArraySpecifierRole); }
}
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
{
throw new NotImplementedException();
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitVariableIdentifier(this, data);
}
}
} }

3
ICSharpCode.NRefactory.VB/IAstVisitor.cs

@ -34,6 +34,9 @@ namespace ICSharpCode.NRefactory.VB {
// TypeMember scope // TypeMember scope
S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data); S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data);
S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data); S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data);
S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data);
S VisitVariableDeclarator(VariableDeclarator variableDeclarator, T data);
S VisitVariableIdentifier(VariableIdentifier variableIdentifier, T data);
// Expression scope // Expression scope
S VisitIdentifier(Identifier identifier, T data); S VisitIdentifier(Identifier identifier, T data);

1
ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj

@ -53,6 +53,7 @@
<Compile Include="Ast\Expressions\GetXmlNamespaceExpression.cs" /> <Compile Include="Ast\Expressions\GetXmlNamespaceExpression.cs" />
<Compile Include="Ast\Expressions\InstanceExpression.cs" /> <Compile Include="Ast\Expressions\InstanceExpression.cs" />
<Compile Include="Ast\Expressions\MemberAccessExpression.cs" /> <Compile Include="Ast\Expressions\MemberAccessExpression.cs" />
<Compile Include="Ast\Expressions\ObjectCreationExpression.cs" />
<Compile Include="Ast\Expressions\ParenthesizedExpression.cs" /> <Compile Include="Ast\Expressions\ParenthesizedExpression.cs" />
<Compile Include="Ast\Expressions\SimpleNameExpression.cs" /> <Compile Include="Ast\Expressions\SimpleNameExpression.cs" />
<Compile Include="Ast\Expressions\PrimitiveExpression.cs" /> <Compile Include="Ast\Expressions\PrimitiveExpression.cs" />

84
ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs

@ -82,7 +82,18 @@ namespace ICSharpCode.NRefactory.VB
public object VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, object data) public object VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, object data)
{ {
throw new NotImplementedException(); StartNode(parameterDeclaration);
WriteModifiers(parameterDeclaration.ModifierTokens);
WriteIdentifier(parameterDeclaration.Name.Name);
if (!parameterDeclaration.Type.IsNull) {
WriteKeyword("As");
parameterDeclaration.Type.AcceptVisitor(this, data);
}
if (!parameterDeclaration.OptionalValue.IsNull) {
WriteToken("=", ParameterDeclaration.Roles.Assign);
parameterDeclaration.OptionalValue.AcceptVisitor(this, data);
}
return EndNode(parameterDeclaration);
} }
public object VisitVBTokenNode(VBTokenNode vBTokenNode, object data) public object VisitVBTokenNode(VBTokenNode vBTokenNode, object data)
@ -430,7 +441,11 @@ namespace ICSharpCode.NRefactory.VB
#region TypeName #region TypeName
public object VisitPrimitiveType(PrimitiveType primitiveType, object data) public object VisitPrimitiveType(PrimitiveType primitiveType, object data)
{ {
throw new NotImplementedException(); StartNode(primitiveType);
WriteKeyword(primitiveType.Keyword);
return EndNode(primitiveType);
} }
public object VisitQualifiedType(QualifiedType qualifiedType, object data) public object VisitQualifiedType(QualifiedType qualifiedType, object data)
@ -452,7 +467,15 @@ namespace ICSharpCode.NRefactory.VB
public object VisitArraySpecifier(ArraySpecifier arraySpecifier, object data) public object VisitArraySpecifier(ArraySpecifier arraySpecifier, object data)
{ {
throw new NotImplementedException(); StartNode(arraySpecifier);
LPar();
for (int i = 0; i < arraySpecifier.Dimensions; i++) {
WriteToken(",", ArraySpecifier.Roles.Comma);
}
RPar();
return EndNode(arraySpecifier);
} }
public object VisitSimpleType(SimpleType simpleType, object data) public object VisitSimpleType(SimpleType simpleType, object data)
@ -687,11 +710,14 @@ namespace ICSharpCode.NRefactory.VB
if (IsKeyword(identifier, containerStack.Peek())) { if (IsKeyword(identifier, containerStack.Peek())) {
if (lastWritten == LastWritten.KeywordOrIdentifier) if (lastWritten == LastWritten.KeywordOrIdentifier)
Space(); // this space is not strictly required, so we call Space() Space(); // this space is not strictly required, so we call Space()
formatter.WriteToken("@"); formatter.WriteToken("[");
} else if (lastWritten == LastWritten.KeywordOrIdentifier) { } else if (lastWritten == LastWritten.KeywordOrIdentifier) {
formatter.Space(); // this space is strictly required, so we directly call the formatter formatter.Space(); // this space is strictly required, so we directly call the formatter
} }
formatter.WriteIdentifier(identifier); formatter.WriteIdentifier(identifier);
if (IsKeyword(identifier, containerStack.Peek())) {
formatter.WriteToken("]");
}
lastWritten = LastWritten.KeywordOrIdentifier; lastWritten = LastWritten.KeywordOrIdentifier;
} }
@ -887,6 +913,13 @@ namespace ICSharpCode.NRefactory.VB
} }
} }
void WriteArraySpecifiers(IEnumerable<ArraySpecifier> arraySpecifiers)
{
foreach (ArraySpecifier specifier in arraySpecifiers) {
specifier.AcceptVisitor(this, null);
}
}
void WriteQualifiedIdentifier(IEnumerable<Identifier> identifiers) void WriteQualifiedIdentifier(IEnumerable<Identifier> identifiers)
{ {
bool first = true; bool first = true;
@ -1074,5 +1107,48 @@ namespace ICSharpCode.NRefactory.VB
return sb.ToString(); return sb.ToString();
} }
#endregion #endregion
public object VisitFieldDeclaration(FieldDeclaration fieldDeclaration, object data)
{
StartNode(fieldDeclaration);
WriteAttributes(fieldDeclaration.Attributes);
WriteModifiers(fieldDeclaration.ModifierTokens);
WriteCommaSeparatedList(fieldDeclaration.Variables);
NewLine();
return EndNode(fieldDeclaration);
}
public object VisitVariableDeclarator(VariableDeclarator variableDeclarator, object data)
{
StartNode(variableDeclarator);
WriteCommaSeparatedList(variableDeclarator.Identifiers);
WriteKeyword("As");
if (variableDeclarator.Initializer is ObjectCreationExpression)
variableDeclarator.Initializer.AcceptVisitor(this, data);
else {
variableDeclarator.Type.AcceptVisitor(this, data);
if (!variableDeclarator.Initializer.IsNull) {
WriteToken("=", VariableDeclarator.Roles.Assign);
variableDeclarator.Initializer.AcceptVisitor(this, data);
}
}
return EndNode(variableDeclarator);
}
public object VisitVariableIdentifier(VariableIdentifier variableIdentifier, object data)
{
StartNode(variableIdentifier);
WriteIdentifier(variableIdentifier.Name.Name);
if (variableIdentifier.HasNullableSpecifier)
WriteToken("?", VariableIdentifier.Roles.QuestionMark);
WriteArraySpecifiers(variableIdentifier.ArraySpecifiers);
return EndNode(variableIdentifier);
}
} }
} }

137
ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs

@ -552,7 +552,13 @@ namespace ICSharpCode.NRefactory.VB.Visitors
public AstNode VisitFieldDeclaration(CSharp.FieldDeclaration fieldDeclaration, object data) public AstNode VisitFieldDeclaration(CSharp.FieldDeclaration fieldDeclaration, object data)
{ {
throw new NotImplementedException(); var decl = new FieldDeclaration();
ConvertNodes(fieldDeclaration.Attributes, decl.Attributes);
decl.Modifiers = ConvertModifiers(fieldDeclaration.Modifiers, fieldDeclaration);
ConvertNodes(fieldDeclaration.Variables, decl.Variables);
return EndNode(fieldDeclaration, decl);
} }
public AstNode VisitIndexerDeclaration(CSharp.IndexerDeclaration indexerDeclaration, object data) public AstNode VisitIndexerDeclaration(CSharp.IndexerDeclaration indexerDeclaration, object data)
@ -593,17 +599,53 @@ namespace ICSharpCode.NRefactory.VB.Visitors
public AstNode VisitParameterDeclaration(CSharp.ParameterDeclaration parameterDeclaration, object data) public AstNode VisitParameterDeclaration(CSharp.ParameterDeclaration parameterDeclaration, object data)
{ {
throw new NotImplementedException(); var param = new ParameterDeclaration();
ConvertNodes(parameterDeclaration.Attributes, param.Attributes);
param.Modifiers = ConvertParamModifiers(parameterDeclaration.ParameterModifier);
param.Name = new Identifier(parameterDeclaration.Name, AstLocation.Empty);
param.Type = (AstType)parameterDeclaration.Type.AcceptVisitor(this, data);
param.OptionalValue = (Expression)parameterDeclaration.DefaultExpression.AcceptVisitor(this, data);
if (!param.OptionalValue.IsNull)
param.Modifiers |= Modifiers.Optional;
return EndNode(parameterDeclaration, param);
}
Modifiers ConvertParamModifiers(CSharp.ParameterModifier mods)
{
switch (mods) {
case ICSharpCode.NRefactory.CSharp.ParameterModifier.None:
case ICSharpCode.NRefactory.CSharp.ParameterModifier.This:
return Modifiers.None;
case ICSharpCode.NRefactory.CSharp.ParameterModifier.Ref:
return Modifiers.ByRef;
case ICSharpCode.NRefactory.CSharp.ParameterModifier.Out:
return Modifiers.ByRef; // TODO verify this!
case ICSharpCode.NRefactory.CSharp.ParameterModifier.Params:
return Modifiers.ParamArray;
default:
throw new Exception("Invalid value for ParameterModifier");
}
} }
public AstNode VisitPropertyDeclaration(CSharp.PropertyDeclaration propertyDeclaration, object data) public AstNode VisitPropertyDeclaration(CSharp.PropertyDeclaration propertyDeclaration, object data)
{ {
throw new NotImplementedException(); return null;
} }
public AstNode VisitVariableInitializer(CSharp.VariableInitializer variableInitializer, object data) public AstNode VisitVariableInitializer(CSharp.VariableInitializer variableInitializer, object data)
{ {
throw new NotImplementedException(); var decl = new VariableDeclarator();
// look for type in parent
decl.Type = (AstType)variableInitializer.Parent
.GetChildByRole(CSharp.VariableInitializer.Roles.Type)
.AcceptVisitor(this, data);
decl.Identifiers.Add(new VariableIdentifier() { Name = new Identifier(variableInitializer.Name, AstLocation.Empty) });
decl.Initializer = (Expression)variableInitializer.Initializer.AcceptVisitor(this, data);
return EndNode(variableInitializer, decl);
} }
public AstNode VisitFixedFieldDeclaration(CSharp.FixedFieldDeclaration fixedFieldDeclaration, object data) public AstNode VisitFixedFieldDeclaration(CSharp.FixedFieldDeclaration fixedFieldDeclaration, object data)
@ -644,23 +686,83 @@ namespace ICSharpCode.NRefactory.VB.Visitors
target = (AstType)memberType.Target.AcceptVisitor(this, data); target = (AstType)memberType.Target.AcceptVisitor(this, data);
var type = new QualifiedType(target, new Identifier(memberType.MemberName, AstLocation.Empty)); var type = new QualifiedType(target, new Identifier(memberType.MemberName, AstLocation.Empty));
ConvertNodes(memberType.TypeArguments, type.TypeArguments);
return EndNode(memberType, type); return EndNode(memberType, type);
} }
public AstNode VisitComposedType(CSharp.ComposedType composedType, object data) public AstNode VisitComposedType(CSharp.ComposedType composedType, object data)
{ {
throw new NotImplementedException(); var type = new ComposedType();
ConvertNodes(composedType.ArraySpecifiers, type.ArraySpecifiers);
type.BaseType = (AstType)composedType.BaseType.AcceptVisitor(this, data);
type.HasNullableSpecifier = composedType.HasNullableSpecifier;
return EndNode(composedType, type);
} }
public AstNode VisitArraySpecifier(CSharp.ArraySpecifier arraySpecifier, object data) public AstNode VisitArraySpecifier(CSharp.ArraySpecifier arraySpecifier, object data)
{ {
throw new NotImplementedException(); return EndNode(arraySpecifier, new ArraySpecifier(arraySpecifier.Dimensions));
} }
public AstNode VisitPrimitiveType(CSharp.PrimitiveType primitiveType, object data) public AstNode VisitPrimitiveType(CSharp.PrimitiveType primitiveType, object data)
{ {
throw new NotImplementedException(); string typeName;
switch (primitiveType.Keyword) {
case "object":
typeName = "Object";
break;
case "bool":
typeName = "Boolean";
break;
case "char":
typeName = "Char";
break;
case "sbyte":
typeName = "SByte";
break;
case "byte":
typeName = "Byte";
break;
case "short":
typeName = "Short";
break;
case "ushort":
typeName = "UShort";
break;
case "int":
typeName = "Integer";
break;
case "uint":
typeName = "UInteger";
break;
case "long":
typeName = "Long";
break;
case "ulong":
typeName = "ULong";
break;
case "float":
typeName = "Single";
break;
case "double":
typeName = "Double";
break;
case "decimal":
typeName = "Decimal";
break;
case "string":
typeName = "String";
break;
default:
typeName = "unknown";
break;
}
return EndNode(primitiveType, new PrimitiveType(typeName));
} }
public AstNode VisitComment(CSharp.Comment comment, object data) public AstNode VisitComment(CSharp.Comment comment, object data)
@ -670,7 +772,17 @@ namespace ICSharpCode.NRefactory.VB.Visitors
public AstNode VisitTypeParameterDeclaration(CSharp.TypeParameterDeclaration typeParameterDeclaration, object data) public AstNode VisitTypeParameterDeclaration(CSharp.TypeParameterDeclaration typeParameterDeclaration, object data)
{ {
throw new NotImplementedException(); var param = new TypeParameterDeclaration() {
Variance = typeParameterDeclaration.Variance,
Name = typeParameterDeclaration.Name
};
// TODO : fetch constraints from parent node
// TODO : typeParameterDeclaration.Attributes get lost?
//ConvertNodes(typeParameterDeclaration.Attributes
return EndNode(typeParameterDeclaration, param);
} }
public AstNode VisitConstraint(CSharp.Constraint constraint, object data) public AstNode VisitConstraint(CSharp.Constraint constraint, object data)
@ -712,6 +824,15 @@ namespace ICSharpCode.NRefactory.VB.Visitors
if ((modifier & CSharp.Modifiers.Static) == CSharp.Modifiers.Static) if ((modifier & CSharp.Modifiers.Static) == CSharp.Modifiers.Static)
mod |= Modifiers.Shared; mod |= Modifiers.Shared;
if ((modifier & CSharp.Modifiers.Public) == CSharp.Modifiers.Public)
mod |= Modifiers.Public;
if ((modifier & CSharp.Modifiers.Protected) == CSharp.Modifiers.Protected)
mod |= Modifiers.Protected;
if ((modifier & CSharp.Modifiers.Internal) == CSharp.Modifiers.Internal)
mod |= Modifiers.Friend;
if ((modifier & CSharp.Modifiers.Private) == CSharp.Modifiers.Private)
mod |= Modifiers.Private;
return mod; return mod;
} }

Loading…
Cancel
Save