// 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.Dom { [Flags] public enum Modifiers { None = 0x0000, // Access Private = 0x0001, /// C# 'internal', VB 'Friend' Internal = 0x0002, Protected = 0x0004, Public = 0x0008, // Scope Abstract = 0x0010, // == MustOverride/MustInherit Virtual = 0x0020, Sealed = 0x0040, /// C# 'static', VB 'Shared' Static = 0x0080, Override = 0x0100, /// For fields: readonly (c# and vb), for properties: get-only (vb) ReadOnly = 0x0200, Const = 0x0400, /// C# 'new', VB 'Shadows' New = 0x0800, Partial = 0x1000, // Special Extern = 0x2000, Volatile = 0x4000, Unsafe = 0x8000, Overloads = 0x10000, // VB specific WithEvents = 0x20000, // VB specific Default = 0x40000, // VB specific Fixed = 0x80000, // C# specific (fixed size arrays in unsafe structs) Dim = 0x100000, // VB.NET SPECIFIC, for fields/local variables only /// Generated code, not part of parsed code Synthetic = 0x200000, /// Only for VB properties. WriteOnly = 0x400000, // VB specific Visibility = Private | Public | Protected | Internal, Classes = New | Visibility | Abstract | Sealed | Partial | Static, VBModules = Visibility, VBStructures = Visibility | New, VBEnums = Visibility | New, VBInterfacs = Visibility | New, VBDelegates = Visibility | New, VBMethods = Visibility | New | Static | Virtual | Sealed | Abstract | Override | Overloads, VBExternalMethods = Visibility | New | Overloads, VBEvents = Visibility | New | Overloads, VBProperties = VBMethods | Default | ReadOnly | WriteOnly, VBCustomEvents = Visibility | New | Overloads, VBOperators = Public | Static | Overloads | New, // this is not documented in the spec VBInterfaceEvents = New, VBInterfaceMethods = New | Overloads, VBInterfaceProperties = New | Overloads | ReadOnly | WriteOnly | Default, VBInterfaceEnums = New, Fields = New | Visibility | Static | ReadOnly | Volatile | Fixed, PropertysEventsMethods = New | Visibility | Static | Virtual | Sealed | Override | Abstract | Extern, Indexers = New | Visibility | Virtual | Sealed | Override | Abstract | Extern, Operators = Public | Static | Extern, Constants = New | Visibility, StructsInterfacesEnumsDelegates = New | Visibility | Partial, StaticConstructors = Extern | Static | Unsafe, Destructors = Extern | Unsafe, Constructors = Visibility | Extern, } public enum ClassType { Class, Module, Interface, Struct, Enum } public enum ParentType { ClassOrStruct, InterfaceOrEnum, Namespace, Unknown } public enum FieldDirection { None, In, Out, Ref } [Flags] public enum ParameterModifiers { // Values must be the same as in SharpDevelop's ParameterModifiers None = 0, In = 1, Out = 2, Ref = 4, Params = 8, Optional = 16 } public enum VarianceModifier { Invariant, Covariant, Contravariant }; public enum AssignmentOperatorType { None, Assign, Add, Subtract, Multiply, Divide, Modulus, Power, // (VB only) DivideInteger, // (VB only) ConcatString, // (VB only) ShiftLeft, ShiftRight, BitwiseAnd, BitwiseOr, ExclusiveOr, } public enum BinaryOperatorType { None, /// '&' in C#, 'And' in VB. BitwiseAnd, /// '|' in C#, 'Or' in VB. BitwiseOr, /// '&&' in C#, 'AndAlso' in VB. LogicalAnd, /// '||' in C#, 'OrElse' in VB. LogicalOr, /// '^' in C#, 'Xor' in VB. ExclusiveOr, /// > GreaterThan, /// >= GreaterThanOrEqual, /// '==' in C#, '=' in VB. Equality, /// '!=' in C#, '<>' in VB. InEquality, /// < LessThan, /// <= LessThanOrEqual, /// + Add, /// - Subtract, /// * Multiply, /// / Divide, /// '%' in C#, 'Mod' in VB. Modulus, /// VB-only: \ DivideInteger, /// VB-only: ^ Power, /// VB-only: & Concat, /// C#: << ShiftLeft, /// C#: >> ShiftRight, /// VB-only: Is ReferenceEquality, /// VB-only: IsNot ReferenceInequality, /// VB-only: Like Like, /// /// C#: ?? /// VB: IF(x, y) /// NullCoalescing, /// VB-only: ! DictionaryAccess } public enum CastType { /// /// direct cast (C#, VB "DirectCast") /// Cast, /// /// try cast (C# "as", VB "TryCast") /// TryCast, /// /// converting cast (VB "CType") /// Conversion, /// /// primitive converting cast (VB "CString" etc.) /// PrimitiveConversion } public enum UnaryOperatorType { None, Not, BitNot, Minus, Plus, Increment, Decrement, PostIncrement, PostDecrement, /// Dereferencing pointer Dereference, /// Get address of AddressOf } public enum ContinueType { None, Do, For, While } public enum ConditionType { None, Until, While, DoWhile } public enum ConditionPosition { None, Start, End } public enum ExitType { None, Sub, Function, Property, Do, For, While, Select, Try } public enum ConstructorInitializerType { None, Base, This } public enum ConversionType { None, Implicit, Explicit } public enum OverloadableOperatorType { None, Add, Subtract, Multiply, Divide, Modulus, Concat, UnaryPlus, UnaryMinus, Not, BitNot, BitwiseAnd, BitwiseOr, ExclusiveOr, ShiftLeft, ShiftRight, GreaterThan, GreaterThanOrEqual, Equality, InEquality, LessThan, LessThanOrEqual, Increment, Decrement, IsTrue, IsFalse, // VB specific Like, Power, CType, DivideInteger } /// /// Charset types, used in external methods /// declarations (VB only). /// public enum CharsetModifier { None, Auto, Unicode, Ansi } /// /// Compare type, used in the Option Compare /// pragma (VB only). /// public enum OptionType { None, Explicit, Strict, CompareBinary, CompareText, Infer } /// /// Specifies the ordering direction of a QueryExpressionOrdering node. /// public enum QueryExpressionOrderingDirection { None, Ascending, Descending } /// /// Specifies the partition type for a VB.NET /// query expression. /// public enum QueryExpressionPartitionType { Take, TakeWhile, Skip, SkipWhile } public enum XmlAxisType { Element, // . Attribute, // .@ Descendents // ... } public enum XmlContentType { Comment, Text, CData, ProcessingInstruction } }