mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.2 KiB
156 lines
4.2 KiB
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) |
|
// This code is distributed under MIT X11 license (for details please see \doc\license.txt) |
|
|
|
using System; |
|
using System.Collections.Generic; |
|
|
|
namespace ICSharpCode.NRefactory.VB |
|
{ |
|
// public class PreprocessingDirective : AbstractSpecial |
|
// { |
|
// #region Conversion C# <-> VB |
|
// public static void VBToCSharp(IList<ISpecial> list) |
|
// { |
|
// for (int i = 0; i < list.Count; ++i) { |
|
// if (list[i] is PreprocessingDirective) |
|
// list[i] = VBToCSharp((PreprocessingDirective)list[i]); |
|
// } |
|
// } |
|
// |
|
// public static PreprocessingDirective VBToCSharp(PreprocessingDirective dir) |
|
// { |
|
// string cmd = dir.Cmd; |
|
// string arg = dir.Arg; |
|
// if (cmd.Equals("#End", StringComparison.InvariantCultureIgnoreCase)) { |
|
// if (arg.ToLowerInvariant().StartsWith("region")) { |
|
// cmd = "#endregion"; |
|
// arg = ""; |
|
// } else if ("if".Equals(arg, StringComparison.InvariantCultureIgnoreCase)) { |
|
// cmd = "#endif"; |
|
// arg = ""; |
|
// } |
|
// } else if (cmd.Equals("#Region", StringComparison.InvariantCultureIgnoreCase)) { |
|
// cmd = "#region"; |
|
// } else if (cmd.Equals("#If", StringComparison.InvariantCultureIgnoreCase)) { |
|
// cmd = "#if"; |
|
// if (arg.ToLowerInvariant().EndsWith(" then")) |
|
// arg = arg.Substring(0, arg.Length - 5); |
|
// } else if (cmd.Equals("#Else", StringComparison.InvariantCultureIgnoreCase)) { |
|
// if (dir.Expression != null) |
|
// cmd = "#elif"; |
|
// else |
|
// cmd = "#else"; |
|
// } else if (cmd.Equals("#ElseIf", StringComparison.InvariantCultureIgnoreCase)) { |
|
// cmd = "#elif"; |
|
// } |
|
// return new PreprocessingDirective(cmd, arg, dir.StartPosition, dir.EndPosition) { |
|
// Expression = dir.Expression |
|
// }; |
|
// } |
|
// |
|
// public static void CSharpToVB(List<ISpecial> list) |
|
// { |
|
// for (int i = 0; i < list.Count; ++i) { |
|
// if (list[i] is PreprocessingDirective) |
|
// list[i] = CSharpToVB((PreprocessingDirective)list[i]); |
|
// } |
|
// } |
|
// |
|
// public static PreprocessingDirective CSharpToVB(PreprocessingDirective dir) |
|
// { |
|
// string cmd = dir.Cmd; |
|
// string arg = dir.Arg; |
|
// switch (cmd) { |
|
// case "#region": |
|
// cmd = "#Region"; |
|
// if (!arg.StartsWith("\"")) { |
|
// arg = "\"" + arg.Trim() + "\""; |
|
// } |
|
// break; |
|
// case "#endregion": |
|
// cmd = "#End"; |
|
// arg = "Region"; |
|
// break; |
|
// case "#endif": |
|
// cmd = "#End"; |
|
// arg = "If"; |
|
// break; |
|
// case "#if": |
|
// arg += " Then"; |
|
// break; |
|
// } |
|
// if (cmd.Length > 1) { |
|
// cmd = cmd.Substring(0, 2).ToUpperInvariant() + cmd.Substring(2); |
|
// } |
|
// return new PreprocessingDirective(cmd, arg, dir.StartPosition, dir.EndPosition) { |
|
// Expression = dir.Expression |
|
// }; |
|
// } |
|
// #endregion |
|
// |
|
// string cmd; |
|
// string arg; |
|
// Ast.Expression expression = Ast.Expression.Null; |
|
// |
|
// /// <summary> |
|
// /// Gets the directive name, including '#'. |
|
// /// </summary> |
|
// public string Cmd { |
|
// get { |
|
// return cmd; |
|
// } |
|
// set { |
|
// cmd = value ?? string.Empty; |
|
// } |
|
// } |
|
// |
|
// /// <summary> |
|
// /// Gets the directive argument. |
|
// /// </summary> |
|
// public string Arg { |
|
// get { |
|
// return arg; |
|
// } |
|
// set { |
|
// arg = value ?? string.Empty; |
|
// } |
|
// } |
|
// |
|
// /// <summary> |
|
// /// Gets/sets the expression (for directives that take an expression, e.g. #if and #elif). |
|
// /// </summary> |
|
// public Ast.Expression Expression { |
|
// get { return expression; } |
|
// set { expression = value ?? Ast.Expression.Null; } |
|
// } |
|
// |
|
// /// <value> |
|
// /// The end position of the pre processor directive line. |
|
// /// May be != EndPosition. |
|
// /// </value> |
|
// public Location LastLineEnd { |
|
// get; |
|
// set; |
|
// } |
|
// |
|
// |
|
// public override string ToString() |
|
// { |
|
// return String.Format("[PreProcessingDirective: Cmd = {0}, Arg = {1}]", |
|
// Cmd, |
|
// Arg); |
|
// } |
|
// |
|
// public PreprocessingDirective(string cmd, string arg, Location start, Location end) |
|
// : base(start, end) |
|
// { |
|
// this.Cmd = cmd; |
|
// this.Arg = arg; |
|
// } |
|
// |
|
// public override object AcceptVisitor(ISpecialVisitor visitor, object data) |
|
// { |
|
// return visitor.Visit(this, data); |
|
// } |
|
// } |
|
}
|
|
|