-Subproject commit be91a3d07803af60d97140fc1e9d3fb478ebb140
+Subproject commit be80ea90ca6bd024cfa5d40cdd6f9b6533b62e63
+++ /dev/null
-//
-// System.CodeDom.Compiler.CodeGenerator.cs
-//
-// Authors:
-// Miguel de Icaza (miguel@ximian.com)
-// Daniel Stodden (stodden@in.tum.de)
-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-// Marek Safar (marek.safar@seznam.cz)
-//
-// (C) 2001-2003 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Globalization;
-using System.CodeDom;
-using System.Reflection;
-using System.IO;
-using System.Collections;
-
-namespace System.CodeDom.Compiler {
-
- public abstract class CodeGenerator : ICodeGenerator
- {
- private IndentedTextWriter output;
- private CodeGeneratorOptions options;
- private CodeTypeMember currentMember;
- private CodeTypeDeclaration currentType;
- private Visitor visitor;
-
- //
- // Constructors
- //
- protected CodeGenerator()
- {
- visitor = new Visitor (this);
- }
-
- //
- // Properties
- //
- protected
- CodeTypeDeclaration CurrentClass {
- get {
- return currentType;
- }
- }
-
- protected CodeTypeMember CurrentMember {
- get {
- return currentMember;
- }
- }
-
- protected string CurrentMemberName {
- get {
- if (currentMember == null)
- return "<% unknown %>";
- return currentMember.Name;
- }
- }
-
- protected string CurrentTypeName {
- get {
- if (currentType == null)
- return "<% unknown %>";
- return currentType.Name;
- }
- }
-
- protected int Indent {
- get {
- return output.Indent;
- }
- set {
- output.Indent = value;
- }
- }
-
- protected bool IsCurrentClass {
- get {
- if (currentType == null)
- return false;
- return currentType.IsClass && !(currentType is CodeTypeDelegate);
- }
- }
-
- protected bool IsCurrentDelegate {
- get {
- return currentType is CodeTypeDelegate;
- }
- }
-
- protected bool IsCurrentEnum {
- get {
- if (currentType == null)
- return false;
- return currentType.IsEnum;
- }
- }
-
- protected bool IsCurrentInterface {
- get {
- if (currentType == null)
- return false;
- return currentType.IsInterface;
- }
- }
-
- protected bool IsCurrentStruct {
- get {
- if (currentType == null)
- return false;
- return currentType.IsStruct;
- }
- }
-
- protected abstract string NullToken {
- get;
- }
-
-
- protected CodeGeneratorOptions Options {
- get {
- return options;
- }
- }
-
- protected TextWriter Output {
- get {
- return output;
- }
- }
-
- //
- // Methods
- //
- protected virtual void ContinueOnNewLine (string st)
- {
- output.WriteLine (st);
- }
-
- /*
- * Code Generation methods
- */
- protected abstract void GenerateArgumentReferenceExpression (CodeArgumentReferenceExpression e);
- protected abstract void GenerateArrayCreateExpression (CodeArrayCreateExpression e);
- protected abstract void GenerateArrayIndexerExpression (CodeArrayIndexerExpression e);
- protected abstract void GenerateAssignStatement (CodeAssignStatement s);
- protected abstract void GenerateAttachEventStatement (CodeAttachEventStatement s);
- protected abstract void GenerateAttributeDeclarationsStart (CodeAttributeDeclarationCollection attributes);
- protected abstract void GenerateAttributeDeclarationsEnd (CodeAttributeDeclarationCollection attributes);
- protected abstract void GenerateBaseReferenceExpression (CodeBaseReferenceExpression e);
-
- protected virtual void GenerateBinaryOperatorExpression (CodeBinaryOperatorExpression e)
- {
- output.Write ('(');
- GenerateExpression (e.Left);
- output.Write (' ');
- OutputOperator (e.Operator);
- output.Write (' ');
- GenerateExpression (e.Right);
- output.Write (')');
- }
-
- protected abstract void GenerateCastExpression (CodeCastExpression e);
-
- [MonoTODO]
- public virtual void GenerateCodeFromMember (CodeTypeMember member, TextWriter writer, CodeGeneratorOptions options)
- {
- throw new NotImplementedException ();
- }
- protected abstract void GenerateComment (CodeComment comment);
-
- protected virtual void GenerateCommentStatement (CodeCommentStatement statement)
- {
- GenerateComment (statement.Comment);
- }
-
- protected virtual void GenerateCommentStatements (CodeCommentStatementCollection statements)
- {
- foreach (CodeCommentStatement comment in statements)
- GenerateCommentStatement (comment);
- }
-
- protected virtual void GenerateCompileUnit (CodeCompileUnit compileUnit)
- {
- GenerateCompileUnitStart (compileUnit);
-
- foreach (CodeNamespace ns in compileUnit.Namespaces)
- if (string.IsNullOrEmpty(ns.Name))
- GenerateNamespace (ns);
-
- CodeAttributeDeclarationCollection attributes = compileUnit.AssemblyCustomAttributes;
- if (attributes.Count != 0) {
- foreach (CodeAttributeDeclaration att in attributes) {
- GenerateAttributeDeclarationsStart (attributes);
- output.Write ("assembly: ");
- OutputAttributeDeclaration (att);
- GenerateAttributeDeclarationsEnd (attributes);
- }
- output.WriteLine ();
- }
-
- foreach (CodeNamespace ns in compileUnit.Namespaces)
- if (!string.IsNullOrEmpty(ns.Name))
- GenerateNamespace (ns);
-
- GenerateCompileUnitEnd (compileUnit);
- }
-
- protected virtual void GenerateCompileUnitEnd (CodeCompileUnit compileUnit)
- {
- if (compileUnit.EndDirectives.Count > 0)
- GenerateDirectives (compileUnit.EndDirectives);
- }
-
- protected virtual void GenerateCompileUnitStart (CodeCompileUnit compileUnit)
- {
- if (compileUnit.StartDirectives.Count > 0) {
- GenerateDirectives (compileUnit.StartDirectives);
- Output.WriteLine ();
- }
- }
-
- protected abstract void GenerateConditionStatement (CodeConditionStatement s);
- protected abstract void GenerateConstructor (CodeConstructor x, CodeTypeDeclaration d);
-
- protected virtual void GenerateDecimalValue (Decimal d)
- {
- Output.Write (d.ToString (CultureInfo.InvariantCulture));
- }
-
- [MonoTODO]
- protected virtual void GenerateDefaultValueExpression (CodeDefaultValueExpression e)
- {
- throw new NotImplementedException ();
- }
-
- protected abstract void GenerateDelegateCreateExpression (CodeDelegateCreateExpression e);
- protected abstract void GenerateDelegateInvokeExpression (CodeDelegateInvokeExpression e);
-
- protected virtual void GenerateDirectionExpression (CodeDirectionExpression e)
- {
- OutputDirection (e.Direction);
- output.Write (' ');
- GenerateExpression (e.Expression);
- }
-
- protected virtual void GenerateDoubleValue (Double d)
- {
- Output.Write (d.ToString (CultureInfo.InvariantCulture));
- }
-
- protected abstract void GenerateEntryPointMethod (CodeEntryPointMethod m, CodeTypeDeclaration d);
- protected abstract void GenerateEvent (CodeMemberEvent ev, CodeTypeDeclaration d);
- protected abstract void GenerateEventReferenceExpression (CodeEventReferenceExpression e);
-
- protected void GenerateExpression (CodeExpression e)
- {
- if (e == null)
- throw new ArgumentNullException ("e");
-
- try {
- e.Accept (visitor);
- } catch (NotImplementedException) {
- throw new ArgumentException ("Element type " + e.GetType () + " is not supported.", "e");
- }
- }
-
- protected abstract void GenerateExpressionStatement (CodeExpressionStatement statement);
- protected abstract void GenerateField (CodeMemberField f);
- protected abstract void GenerateFieldReferenceExpression (CodeFieldReferenceExpression e);
- protected abstract void GenerateGotoStatement (CodeGotoStatement statement);
- protected abstract void GenerateIndexerExpression (CodeIndexerExpression e);
- protected abstract void GenerateIterationStatement (CodeIterationStatement s);
- protected abstract void GenerateLabeledStatement (CodeLabeledStatement statement);
- protected abstract void GenerateLinePragmaStart (CodeLinePragma p);
- protected abstract void GenerateLinePragmaEnd (CodeLinePragma p);
- protected abstract void GenerateMethod (CodeMemberMethod m, CodeTypeDeclaration d);
- protected abstract void GenerateMethodInvokeExpression (CodeMethodInvokeExpression e);
- protected abstract void GenerateMethodReferenceExpression (CodeMethodReferenceExpression e);
- protected abstract void GenerateMethodReturnStatement (CodeMethodReturnStatement e);
-
- protected virtual void GenerateNamespace (CodeNamespace ns)
- {
- foreach (CodeCommentStatement statement in ns.Comments)
- GenerateCommentStatement (statement);
-
- GenerateNamespaceStart (ns);
-
- foreach (CodeNamespaceImport import in ns.Imports) {
- if (import.LinePragma != null)
- GenerateLinePragmaStart (import.LinePragma);
-
- GenerateNamespaceImport (import);
-
- if (import.LinePragma != null)
- GenerateLinePragmaEnd (import.LinePragma);
- }
-
- output.WriteLine();
-
- GenerateTypes (ns);
-
- GenerateNamespaceEnd (ns);
- }
-
- protected abstract void GenerateNamespaceStart (CodeNamespace ns);
- protected abstract void GenerateNamespaceEnd (CodeNamespace ns);
- protected abstract void GenerateNamespaceImport (CodeNamespaceImport i);
- protected void GenerateNamespaceImports (CodeNamespace e)
- {
- foreach (CodeNamespaceImport import in e.Imports) {
- if (import.LinePragma != null)
- GenerateLinePragmaStart (import.LinePragma);
-
- GenerateNamespaceImport (import);
-
- if (import.LinePragma != null)
- GenerateLinePragmaEnd (import.LinePragma);
- }
- }
-
- protected void GenerateNamespaces (CodeCompileUnit e)
- {
- foreach (CodeNamespace ns in e.Namespaces)
- GenerateNamespace (ns);
- }
-
- protected abstract void GenerateObjectCreateExpression (CodeObjectCreateExpression e);
-
- protected virtual void GenerateParameterDeclarationExpression (CodeParameterDeclarationExpression e)
- {
- if (e.CustomAttributes != null && e.CustomAttributes.Count > 0)
- OutputAttributeDeclarations (e.CustomAttributes);
- OutputDirection (e.Direction);
- OutputType (e.Type);
- output.Write (' ');
- output.Write (e.Name);
- }
-
- protected virtual void GeneratePrimitiveExpression (CodePrimitiveExpression e)
- {
- object value = e.Value;
- if (value == null) {
- output.Write (NullToken);
- return;
- }
-
- Type type = value.GetType ();
- TypeCode typeCode = Type.GetTypeCode (type);
- switch (typeCode) {
- case TypeCode.Boolean:
- output.Write (value.ToString ().ToLower (CultureInfo.InvariantCulture));
- break;
- case TypeCode.Char:
- output.Write ("'" + value.ToString () + "'");
- break;
- case TypeCode.String:
- output.Write (QuoteSnippetString ((string) value));
- break;
- case TypeCode.Single:
- GenerateSingleFloatValue ((float) value);
- break;
- case TypeCode.Double:
- GenerateDoubleValue ((double) value);
- break;
- case TypeCode.Decimal:
- GenerateDecimalValue ((decimal) value);
- break;
- case TypeCode.Byte:
- case TypeCode.Int16:
- case TypeCode.Int32:
- case TypeCode.Int64:
- output.Write (((IFormattable)value).ToString (null, CultureInfo.InvariantCulture));
- break;
- default:
- throw new ArgumentException (string.Format(CultureInfo.InvariantCulture,
- "Invalid Primitive Type: {0}. Only CLS compliant primitive " +
- "types can be used. Consider using CodeObjectCreateExpression.",
- type.FullName));
- }
- }
-
- protected abstract void GenerateProperty (CodeMemberProperty p, CodeTypeDeclaration d);
- protected abstract void GeneratePropertyReferenceExpression (CodePropertyReferenceExpression e);
- protected abstract void GeneratePropertySetValueReferenceExpression (CodePropertySetValueReferenceExpression e);
- protected abstract void GenerateRemoveEventStatement (CodeRemoveEventStatement statement);
-
- protected virtual void GenerateSingleFloatValue (Single s)
- {
- output.Write (s.ToString(CultureInfo.InvariantCulture));
- }
-
- protected virtual void GenerateSnippetCompileUnit (CodeSnippetCompileUnit e)
- {
- if (e.LinePragma != null)
- GenerateLinePragmaStart (e.LinePragma);
-
- output.WriteLine (e.Value);
-
- if (e.LinePragma != null)
- GenerateLinePragmaEnd (e.LinePragma);
-
- }
-
- protected abstract void GenerateSnippetExpression (CodeSnippetExpression e);
- protected abstract void GenerateSnippetMember (CodeSnippetTypeMember m);
- protected virtual void GenerateSnippetStatement (CodeSnippetStatement s)
- {
- output.WriteLine (s.Value);
- }
-
- protected void GenerateStatement (CodeStatement s)
- {
- if (s.StartDirectives.Count > 0)
- GenerateDirectives (s.StartDirectives);
- if (s.LinePragma != null)
- GenerateLinePragmaStart (s.LinePragma);
-
- CodeSnippetStatement snippet = s as CodeSnippetStatement;
- if (snippet != null) {
- int indent = Indent;
- try {
- Indent = 0;
- GenerateSnippetStatement (snippet);
- } finally {
- Indent = indent;
- }
- } else {
- try {
- s.Accept (visitor);
- } catch (NotImplementedException) {
- throw new ArgumentException ("Element type " + s.GetType () + " is not supported.", "s");
- }
- }
-
- if (s.LinePragma != null)
- GenerateLinePragmaEnd (s.LinePragma);
-
- if (s.EndDirectives.Count > 0)
- GenerateDirectives (s.EndDirectives);
- }
-
- protected void GenerateStatements (CodeStatementCollection c)
- {
- foreach (CodeStatement statement in c)
- GenerateStatement (statement);
- }
-
- protected abstract void GenerateThisReferenceExpression (CodeThisReferenceExpression e);
- protected abstract void GenerateThrowExceptionStatement (CodeThrowExceptionStatement s);
- protected abstract void GenerateTryCatchFinallyStatement (CodeTryCatchFinallyStatement s);
- protected abstract void GenerateTypeEnd (CodeTypeDeclaration declaration);
- protected abstract void GenerateTypeConstructor (CodeTypeConstructor constructor);
-
- protected virtual void GenerateTypeOfExpression (CodeTypeOfExpression e)
- {
- output.Write ("typeof(");
- OutputType (e.Type);
- output.Write (")");
- }
-
- protected virtual void GenerateTypeReferenceExpression (CodeTypeReferenceExpression e)
- {
- OutputType (e.Type);
- }
-
- protected void GenerateTypes (CodeNamespace e)
- {
- foreach (CodeTypeDeclaration type in e.Types) {
- if (options.BlankLinesBetweenMembers)
- output.WriteLine ();
-
- GenerateType (type);
- }
- }
-
- protected abstract void GenerateTypeStart (CodeTypeDeclaration declaration);
- protected abstract void GenerateVariableDeclarationStatement (CodeVariableDeclarationStatement e);
- protected abstract void GenerateVariableReferenceExpression (CodeVariableReferenceExpression e);
-
- //
- // Other members
- //
-
- /*
- * Output Methods
- */
- protected virtual void OutputAttributeArgument (CodeAttributeArgument argument)
- {
- string name = argument.Name;
- if ((name != null) && (name.Length > 0)) {
- output.Write (name);
- output.Write ('=');
- }
- GenerateExpression (argument.Value);
- }
-
- private void OutputAttributeDeclaration (CodeAttributeDeclaration attribute)
- {
- output.Write (attribute.Name.Replace ('+', '.'));
- output.Write ('(');
- IEnumerator enumerator = attribute.Arguments.GetEnumerator();
- if (enumerator.MoveNext()) {
- CodeAttributeArgument argument = (CodeAttributeArgument)enumerator.Current;
- OutputAttributeArgument (argument);
-
- while (enumerator.MoveNext()) {
- output.Write (',');
- argument = (CodeAttributeArgument)enumerator.Current;
- OutputAttributeArgument (argument);
- }
- }
- output.Write (')');
- }
-
- protected virtual void OutputAttributeDeclarations (CodeAttributeDeclarationCollection attributes)
- {
- GenerateAttributeDeclarationsStart (attributes);
-
- IEnumerator enumerator = attributes.GetEnumerator();
- if (enumerator.MoveNext()) {
- CodeAttributeDeclaration attribute = (CodeAttributeDeclaration)enumerator.Current;
-
- OutputAttributeDeclaration (attribute);
-
- while (enumerator.MoveNext()) {
- attribute = (CodeAttributeDeclaration)enumerator.Current;
-
- output.WriteLine (',');
- OutputAttributeDeclaration (attribute);
- }
- }
-
- GenerateAttributeDeclarationsEnd (attributes);
- }
-
- protected virtual void OutputDirection (FieldDirection direction)
- {
- switch (direction) {
- case FieldDirection.In:
- //output.Write ("in ");
- break;
- case FieldDirection.Out:
- output.Write ("out ");
- break;
- case FieldDirection.Ref:
- output.Write ("ref ");
- break;
- }
- }
-
- protected virtual void OutputExpressionList (CodeExpressionCollection expressions)
- {
- OutputExpressionList (expressions, false);
- }
-
- protected virtual void OutputExpressionList (CodeExpressionCollection expressions,
- bool newLineBetweenItems)
- {
- ++Indent;
- IEnumerator enumerator = expressions.GetEnumerator();
- if (enumerator.MoveNext()) {
- CodeExpression expression = (CodeExpression)enumerator.Current;
-
- GenerateExpression (expression);
-
- while (enumerator.MoveNext()) {
- expression = (CodeExpression)enumerator.Current;
-
- output.Write (',');
- if (newLineBetweenItems)
- output.WriteLine ();
- else
- output.Write (' ');
-
- GenerateExpression (expression);
- }
- }
- --Indent;
- }
-
- protected virtual void OutputFieldScopeModifier (MemberAttributes attributes)
- {
- if ((attributes & MemberAttributes.VTableMask) == MemberAttributes.New)
- output.Write ("new ");
-
- switch (attributes & MemberAttributes.ScopeMask) {
- case MemberAttributes.Static:
- output.Write ("static ");
- break;
- case MemberAttributes.Const:
- output.Write ("const ");
- break;
- }
- }
-
- protected virtual void OutputIdentifier (string ident)
- {
- output.Write (ident);
- }
-
- protected virtual void OutputMemberAccessModifier (MemberAttributes attributes)
- {
- switch (attributes & MemberAttributes.AccessMask) {
- case MemberAttributes.Assembly:
- output.Write ("internal ");
- break;
- case MemberAttributes.FamilyAndAssembly:
- output.Write ("internal ");
- break;
- case MemberAttributes.Family:
- output.Write ("protected ");
- break;
- case MemberAttributes.FamilyOrAssembly:
- output.Write ("protected internal ");
- break;
- case MemberAttributes.Private:
- output.Write ("private ");
- break;
- case MemberAttributes.Public:
- output.Write ("public ");
- break;
- }
- }
-
- protected virtual void OutputMemberScopeModifier (MemberAttributes attributes)
- {
- if ((attributes & MemberAttributes.VTableMask) == MemberAttributes.New)
- output.Write( "new " );
-
- switch (attributes & MemberAttributes.ScopeMask) {
- case MemberAttributes.Abstract:
- output.Write ("abstract ");
- break;
- case MemberAttributes.Final:
- // Do nothing
- break;
- case MemberAttributes.Static:
- output.Write ("static ");
- break;
- case MemberAttributes.Override:
- output.Write ("override ");
- break;
- default:
- //
- // FUNNY! if the scope value is
- // rubbish (0 or >Const), and access
- // is public or protected, make it
- // "virtual".
- //
- // i'm not sure whether this is 100%
- // correct, but it seems to be MS
- // behavior.
- //
- // On .NET 2.0, internal members
- // are also marked "virtual".
- //
- MemberAttributes access = attributes & MemberAttributes.AccessMask;
- if (access == MemberAttributes.Public || access == MemberAttributes.Family)
- output.Write ("virtual ");
- break;
- }
- }
-
- protected virtual void OutputOperator (CodeBinaryOperatorType op)
- {
- switch (op) {
- case CodeBinaryOperatorType.Add:
- output.Write ("+");
- break;
- case CodeBinaryOperatorType.Subtract:
- output.Write ("-");
- break;
- case CodeBinaryOperatorType.Multiply:
- output.Write ("*");
- break;
- case CodeBinaryOperatorType.Divide:
- output.Write ("/");
- break;
- case CodeBinaryOperatorType.Modulus:
- output.Write ("%");
- break;
- case CodeBinaryOperatorType.Assign:
- output.Write ("=");
- break;
- case CodeBinaryOperatorType.IdentityInequality:
- output.Write ("!=");
- break;
- case CodeBinaryOperatorType.IdentityEquality:
- output.Write ("==");
- break;
- case CodeBinaryOperatorType.ValueEquality:
- output.Write ("==");
- break;
- case CodeBinaryOperatorType.BitwiseOr:
- output.Write ("|");
- break;
- case CodeBinaryOperatorType.BitwiseAnd:
- output.Write ("&");
- break;
- case CodeBinaryOperatorType.BooleanOr:
- output.Write ("||");
- break;
- case CodeBinaryOperatorType.BooleanAnd:
- output.Write ("&&");
- break;
- case CodeBinaryOperatorType.LessThan:
- output.Write ("<");
- break;
- case CodeBinaryOperatorType.LessThanOrEqual:
- output.Write ("<=");
- break;
- case CodeBinaryOperatorType.GreaterThan:
- output.Write (">");
- break;
- case CodeBinaryOperatorType.GreaterThanOrEqual:
- output.Write (">=");
- break;
- }
- }
-
- protected virtual void OutputParameters (CodeParameterDeclarationExpressionCollection parameters)
- {
- bool first = true;
- foreach (CodeParameterDeclarationExpression expr in parameters) {
- if (first)
- first = false;
- else
- output.Write (", ");
- GenerateExpression (expr);
- }
- }
-
- protected abstract void OutputType (CodeTypeReference t);
-
- protected virtual void OutputTypeAttributes (TypeAttributes attributes,
- bool isStruct,
- bool isEnum)
- {
- switch (attributes & TypeAttributes.VisibilityMask) {
- case TypeAttributes.NotPublic:
- // private by default
- break;
-
- case TypeAttributes.Public:
- case TypeAttributes.NestedPublic:
- output.Write ("public ");
- break;
-
- case TypeAttributes.NestedPrivate:
- output.Write ("private ");
- break;
- }
-
- if (isStruct)
- output.Write ("struct ");
-
- else if (isEnum)
- output.Write ("enum ");
- else {
- if ((attributes & TypeAttributes.Interface) != 0)
- output.Write ("interface ");
- else if (currentType is CodeTypeDelegate)
- output.Write ("delegate ");
- else {
- if ((attributes & TypeAttributes.Sealed) != 0)
- output.Write ("sealed ");
- if ((attributes & TypeAttributes.Abstract) != 0)
- output.Write ("abstract ");
-
- output.Write ("class ");
- }
- }
- }
-
- protected virtual void OutputTypeNamePair (CodeTypeReference type,
- string name)
- {
- OutputType (type);
- output.Write (' ');
- output.Write (name);
- }
-
- protected abstract string QuoteSnippetString (string value);
-
- /*
- * ICodeGenerator
- */
- protected abstract string CreateEscapedIdentifier (string value);
- string ICodeGenerator.CreateEscapedIdentifier (string value)
- {
- return CreateEscapedIdentifier (value);
- }
-
- protected abstract string CreateValidIdentifier (string value);
- string ICodeGenerator.CreateValidIdentifier (string value)
- {
- return CreateValidIdentifier (value);
- }
-
- private void InitOutput (TextWriter output, CodeGeneratorOptions options)
- {
- if (options == null)
- options = new CodeGeneratorOptions ();
-
- this.output = new IndentedTextWriter (output, options.IndentString);
- this.options = options;
- }
-
- void ICodeGenerator.GenerateCodeFromCompileUnit (CodeCompileUnit compileUnit,
- TextWriter output,
- CodeGeneratorOptions options)
- {
- InitOutput (output, options);
-
- if (compileUnit is CodeSnippetCompileUnit) {
- GenerateSnippetCompileUnit ((CodeSnippetCompileUnit) compileUnit);
- } else {
- GenerateCompileUnit (compileUnit);
- }
- }
-
- void ICodeGenerator.GenerateCodeFromExpression (CodeExpression expression,
- TextWriter output,
- CodeGeneratorOptions options)
- {
- InitOutput (output, options);
- GenerateExpression (expression);
- }
-
- void ICodeGenerator.GenerateCodeFromNamespace (CodeNamespace ns,
- TextWriter output,
- CodeGeneratorOptions options)
- {
- InitOutput (output, options);
- GenerateNamespace (ns);
- }
-
- void ICodeGenerator.GenerateCodeFromStatement (CodeStatement statement,
- TextWriter output,
- CodeGeneratorOptions options)
- {
- InitOutput (output, options);
- GenerateStatement (statement);
- }
-
- void ICodeGenerator.GenerateCodeFromType (CodeTypeDeclaration type,
- TextWriter output,
- CodeGeneratorOptions options)
- {
- InitOutput (output, options);
- GenerateType (type);
- }
-
- private void GenerateType (CodeTypeDeclaration type)
- {
- this.currentType = type;
- this.currentMember = null;
-
- if (type.StartDirectives.Count > 0)
- GenerateDirectives (type.StartDirectives);
- foreach (CodeCommentStatement statement in type.Comments)
- GenerateCommentStatement (statement);
-
- if (type.LinePragma != null)
- GenerateLinePragmaStart (type.LinePragma);
-
- GenerateTypeStart (type);
-
- CodeTypeMember[] members = new CodeTypeMember[type.Members.Count];
- type.Members.CopyTo (members, 0);
-
- if (!Options.VerbatimOrder)
- {
- int[] order = new int[members.Length];
- for (int n = 0; n < members.Length; n++)
- order[n] = Array.IndexOf (memberTypes, members[n].GetType ()) * members.Length + n;
-
- Array.Sort (order, members);
- }
-
- // WARNING: if anything is missing in the foreach loop and you add it, add the type in
- // its corresponding place in CodeTypeMemberComparer class (below)
-
- CodeTypeDeclaration subtype = null;
- foreach (CodeTypeMember member in members) {
- CodeTypeMember prevMember = this.currentMember;
- this.currentMember = member;
-
- if (prevMember != null && subtype == null) {
- if (prevMember.LinePragma != null)
- GenerateLinePragmaEnd (prevMember.LinePragma);
- if (prevMember.EndDirectives.Count > 0)
- GenerateDirectives (prevMember.EndDirectives);
- if (!Options.VerbatimOrder && prevMember is CodeSnippetTypeMember && !(member is CodeSnippetTypeMember))
- output.WriteLine ();
- }
-
- if (options.BlankLinesBetweenMembers)
- output.WriteLine ();
-
- subtype = member as CodeTypeDeclaration;
- if (subtype != null) {
- GenerateType (subtype);
- this.currentType = type;
- continue;
- }
-
- if (currentMember.StartDirectives.Count > 0)
- GenerateDirectives (currentMember.StartDirectives);
- foreach (CodeCommentStatement statement in member.Comments)
- GenerateCommentStatement (statement);
-
- if (member.LinePragma != null)
- GenerateLinePragmaStart (member.LinePragma);
-
- try {
- member.Accept (visitor);
- } catch (NotImplementedException) {
- throw new ArgumentException ("Element type " + member.GetType () + " is not supported.");
- }
- }
-
- // Hack because of previous continue usage
- if (currentMember != null && !(currentMember is CodeTypeDeclaration)) {
- if (currentMember.LinePragma != null)
- GenerateLinePragmaEnd (currentMember.LinePragma);
- if (currentMember.EndDirectives.Count > 0)
- GenerateDirectives (currentMember.EndDirectives);
- if (!Options.VerbatimOrder && currentMember is CodeSnippetTypeMember)
- output.WriteLine ();
- }
-
- this.currentType = type;
- GenerateTypeEnd (type);
-
- if (type.LinePragma != null)
- GenerateLinePragmaEnd (type.LinePragma);
-
- if (type.EndDirectives.Count > 0)
- GenerateDirectives (type.EndDirectives);
- }
-
- protected abstract string GetTypeOutput (CodeTypeReference type);
-
- string ICodeGenerator.GetTypeOutput (CodeTypeReference type)
- {
- return GetTypeOutput (type);
- }
-
- protected abstract bool IsValidIdentifier (string value);
-
- bool ICodeGenerator.IsValidIdentifier (string value)
- {
- return IsValidIdentifier (value);
- }
-
- public static bool IsValidLanguageIndependentIdentifier (string value)
- {
- if (value == null)
- return false;
- if (value.Equals (string.Empty))
- return false;
-
- switch (char.GetUnicodeCategory (value[0])) {
- case UnicodeCategory.LetterNumber:
- case UnicodeCategory.LowercaseLetter:
- case UnicodeCategory.TitlecaseLetter:
- case UnicodeCategory.UppercaseLetter:
- case UnicodeCategory.OtherLetter:
- case UnicodeCategory.ModifierLetter:
- case UnicodeCategory.ConnectorPunctuation:
- break;
- default:
- return false;
- }
-
- for (int x = 1; x < value.Length; ++x) {
- switch (char.GetUnicodeCategory (value[x])) {
- case UnicodeCategory.LetterNumber:
- case UnicodeCategory.LowercaseLetter:
- case UnicodeCategory.TitlecaseLetter:
- case UnicodeCategory.UppercaseLetter:
- case UnicodeCategory.OtherLetter:
- case UnicodeCategory.ModifierLetter:
- case UnicodeCategory.ConnectorPunctuation:
- case UnicodeCategory.DecimalDigitNumber:
- case UnicodeCategory.NonSpacingMark:
- case UnicodeCategory.SpacingCombiningMark:
- case UnicodeCategory.Format:
- break;
- default:
- return false;
- }
- }
-
- return true;
- }
-
- protected abstract bool Supports (GeneratorSupport supports);
-
- bool ICodeGenerator.Supports (GeneratorSupport value)
- {
- return Supports (value);
- }
-
- protected virtual void ValidateIdentifier (string value)
- {
- if (!(IsValidIdentifier (value)))
- throw new ArgumentException ("Identifier is invalid", "value");
- }
-
- [MonoTODO]
- public static void ValidateIdentifiers (CodeObject e)
- {
- throw new NotImplementedException();
- }
-
- void ICodeGenerator.ValidateIdentifier (string value)
- {
- ValidateIdentifier (value);
- }
-
- // The position in the array determines the order in which those
- // kind of CodeTypeMembers are generated. Less is more ;-)
- static readonly Type [] memberTypes = { typeof (CodeMemberField),
- typeof (CodeSnippetTypeMember),
- typeof (CodeTypeConstructor),
- typeof (CodeConstructor),
- typeof (CodeMemberProperty),
- typeof (CodeMemberEvent),
- typeof (CodeMemberMethod),
- typeof (CodeTypeDeclaration),
- typeof (CodeEntryPointMethod)
- };
-
- protected virtual void GenerateDirectives (CodeDirectiveCollection directives)
- {
- }
-
- internal class Visitor : ICodeDomVisitor {
- CodeGenerator g;
-
- public Visitor (CodeGenerator generator)
- {
- this.g = generator;
- }
-
- // CodeExpression
-
- public void Visit (CodeArgumentReferenceExpression o)
- {
- g.GenerateArgumentReferenceExpression (o);
- }
-
- public void Visit (CodeArrayCreateExpression o)
- {
- g.GenerateArrayCreateExpression (o);
- }
-
- public void Visit (CodeArrayIndexerExpression o)
- {
- g.GenerateArrayIndexerExpression (o);
- }
-
- public void Visit (CodeBaseReferenceExpression o)
- {
- g.GenerateBaseReferenceExpression (o);
- }
-
- public void Visit (CodeBinaryOperatorExpression o)
- {
- g.GenerateBinaryOperatorExpression (o);
- }
-
- public void Visit (CodeCastExpression o)
- {
- g.GenerateCastExpression (o);
- }
-
- public void Visit (CodeDefaultValueExpression o)
- {
- g.GenerateDefaultValueExpression (o);
- }
-
- public void Visit (CodeDelegateCreateExpression o)
- {
- g.GenerateDelegateCreateExpression (o);
- }
-
- public void Visit (CodeDelegateInvokeExpression o)
- {
- g.GenerateDelegateInvokeExpression (o);
- }
-
- public void Visit (CodeDirectionExpression o)
- {
- g.GenerateDirectionExpression (o);
- }
-
- public void Visit (CodeEventReferenceExpression o)
- {
- g.GenerateEventReferenceExpression (o);
- }
-
- public void Visit (CodeFieldReferenceExpression o)
- {
- g.GenerateFieldReferenceExpression (o);
- }
-
- public void Visit (CodeIndexerExpression o)
- {
- g.GenerateIndexerExpression (o);
- }
-
- public void Visit (CodeMethodInvokeExpression o)
- {
- g.GenerateMethodInvokeExpression (o);
- }
-
- public void Visit (CodeMethodReferenceExpression o)
- {
- g.GenerateMethodReferenceExpression (o);
- }
-
- public void Visit (CodeObjectCreateExpression o)
- {
- g.GenerateObjectCreateExpression (o);
- }
-
- public void Visit (CodeParameterDeclarationExpression o)
- {
- g.GenerateParameterDeclarationExpression (o);
- }
-
- public void Visit (CodePrimitiveExpression o)
- {
- g.GeneratePrimitiveExpression (o);
- }
-
- public void Visit (CodePropertyReferenceExpression o)
- {
- g.GeneratePropertyReferenceExpression (o);
- }
-
- public void Visit (CodePropertySetValueReferenceExpression o)
- {
- g.GeneratePropertySetValueReferenceExpression (o);
- }
-
- public void Visit (CodeSnippetExpression o)
- {
- g.GenerateSnippetExpression (o);
- }
-
- public void Visit (CodeThisReferenceExpression o)
- {
- g.GenerateThisReferenceExpression (o);
- }
-
- public void Visit (CodeTypeOfExpression o)
- {
- g.GenerateTypeOfExpression (o);
- }
-
- public void Visit (CodeTypeReferenceExpression o)
- {
- g.GenerateTypeReferenceExpression (o);
- }
-
- public void Visit (CodeVariableReferenceExpression o)
- {
- g.GenerateVariableReferenceExpression (o);
- }
-
- // CodeStatement
-
- public void Visit (CodeAssignStatement o)
- {
- g.GenerateAssignStatement (o);
- }
-
- public void Visit (CodeAttachEventStatement o)
- {
- g.GenerateAttachEventStatement (o);
- }
-
- public void Visit (CodeCommentStatement o)
- {
- g.GenerateCommentStatement (o);
- }
-
- public void Visit (CodeConditionStatement o)
- {
- g.GenerateConditionStatement (o);
- }
-
- public void Visit (CodeExpressionStatement o)
- {
- g.GenerateExpressionStatement (o);
- }
-
- public void Visit (CodeGotoStatement o)
- {
- g.GenerateGotoStatement (o);
- }
-
- public void Visit (CodeIterationStatement o)
- {
- g.GenerateIterationStatement (o);
- }
-
- public void Visit (CodeLabeledStatement o)
- {
- g.GenerateLabeledStatement (o);
- }
-
- public void Visit (CodeMethodReturnStatement o)
- {
- g.GenerateMethodReturnStatement (o);
- }
-
- public void Visit (CodeRemoveEventStatement o)
- {
- g.GenerateRemoveEventStatement (o);
- }
-
- public void Visit (CodeThrowExceptionStatement o)
- {
- g.GenerateThrowExceptionStatement (o);
- }
-
- public void Visit (CodeTryCatchFinallyStatement o)
- {
- g.GenerateTryCatchFinallyStatement (o);
- }
-
- public void Visit (CodeVariableDeclarationStatement o)
- {
- g.GenerateVariableDeclarationStatement (o);
- }
-
- // CodeTypeMember
-
- public void Visit (CodeConstructor o)
- {
- g.GenerateConstructor (o, g.CurrentClass);
- }
-
- public void Visit (CodeEntryPointMethod o)
- {
- g.GenerateEntryPointMethod (o, g.CurrentClass);
- }
-
- public void Visit (CodeMemberEvent o)
- {
- g.GenerateEvent (o, g.CurrentClass);
- }
-
- public void Visit (CodeMemberField o)
- {
- g.GenerateField (o);
- }
-
- public void Visit (CodeMemberMethod o)
- {
- g.GenerateMethod (o, g.CurrentClass);
- }
-
- public void Visit (CodeMemberProperty o)
- {
- g.GenerateProperty (o, g.CurrentClass);
- }
-
- public void Visit (CodeSnippetTypeMember o)
- {
- var indent = g.Indent;
- g.Indent = 0;
- g.GenerateSnippetMember (o);
-
- if (g.Options.VerbatimOrder)
- g.Output.WriteLine ();
-
- g.Indent = indent;
- }
-
- public void Visit (CodeTypeConstructor o)
- {
- g.GenerateTypeConstructor (o);
- }
- }
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler CodeGeneratorOptions class
-//
-// Authors:
-// Daniel Stodden (stodden@in.tum.de)
-// Sebastien Pouliot <sebastien@ximian.com>
-//
-// (C) 2002 Ximian, Inc.
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections;
-using System.Collections.Specialized;
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-
-namespace System.CodeDom.Compiler {
-
- [PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
- public class CodeGeneratorOptions {
-
- private IDictionary properties;
-
- //
- // Constructors
- //
- public CodeGeneratorOptions()
- {
- properties = new ListDictionary();
- }
-
- //
- // Properties
- //
-
- /// <summary>
- /// Whether to insert blank lines between individual members.
- /// Default is true.
- /// </summary>
- public bool BlankLinesBetweenMembers {
- get {
- object o = properties["BlankLinesBetweenMembers"];
- return ((o == null) ? true : (bool) o);
- }
- set {
- properties["BlankLinesBetweenMembers"] = value;
- }
- }
-
- /// <summary>
- /// "Block" puts braces on the same line as the associated statement or declaration.
- /// "C" puts braces on the following line.
- /// Default is "C"
- /// </summary>
- public string BracingStyle {
- get {
- object o = properties["BracingStyle"];
- return ((o == null) ? "Block" : (string) o);
- }
- set {
- properties["BracingStyle"] = value;
- }
- }
-
- /// <summary>
- /// Whether to start <code>else</code>,
- /// <code>catch</code>, or <code>finally</code>
- /// blocks on the same line as the previous block.
- /// Default is false.
- /// </summary>
- public bool ElseOnClosing {
- get {
- object o = properties["ElseOnClosing"];
- return ((o == null) ? false : (bool) o);
- }
- set {
- properties["ElseOnClosing"] = value;
- }
- }
-
- /// <summary>
- /// The string used for individual indentation levels. Default is four spaces.
- /// </summary>
- public string IndentString {
- get {
- object o = properties["IndentString"];
- return ((o == null) ? " " : (string) o);
- }
- set {
- properties["IndentString"] = value;
- }
- }
-
- public Object this[string index] {
- get {
- return properties[index];
- }
- set {
- properties[index] = value;
- }
- }
-
- [ComVisible (false)]
- public bool VerbatimOrder {
- get {
- object o = properties["VerbatimOrder"];
- return ((o == null) ? false : (bool) o);
- }
- set {
- properties["VerbatimOrder"] = value;
- }
- }
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler.CompilerError
-//
-// Authors:
-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// (C) 2002 Ximian, Inc (http://www.ximian.com)
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Security.Permissions;
-
-namespace System.CodeDom.Compiler {
-
- [Serializable]
- public class CompilerError {
- string fileName;
- int line;
- int column;
- string errorNumber;
- string errorText;
- bool isWarning = false;
-
- public CompilerError () :
- this (String.Empty, 0, 0, String.Empty, String.Empty)
- {
- }
-
- public CompilerError (string fileName, int line, int column, string errorNumber, string errorText)
- {
- this.fileName = fileName;
- this.line = line;
- this.column = column;
- this.errorNumber = errorNumber;
- this.errorText = errorText;
- }
-
- public override string ToString ()
- {
- string type = isWarning ? "warning" : "error";
- return String.Format (System.Globalization.CultureInfo.InvariantCulture,
- "{0}({1},{2}) : {3} {4}: {5}", fileName, line, column, type,
- errorNumber, errorText);
- }
-
- public int Line
- {
- get { return line; }
- set { line = value; }
- }
-
- public int Column
- {
- get { return column; }
- set { column = value; }
- }
-
- public string ErrorNumber
- {
- get { return errorNumber; }
- set { errorNumber = value; }
- }
-
- public string ErrorText
- {
- get { return errorText; }
- set { errorText = value; }
- }
-
- public bool IsWarning
- {
- get { return isWarning; }
- set { isWarning = value; }
- }
-
- public string FileName
- {
- get { return fileName; }
- set { fileName = value; }
- }
- }
-}
-
+++ /dev/null
-//
-// System.CodeDom.Compiler.CompilerErrorCollection.cs
-//
-// Authors:
-// Daniel Stodden (stodden@in.tum.de)
-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// (C) 2002 Ximian, Inc. (http://www.ximian.com)
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections;
-using System.Security.Permissions;
-
-namespace System.CodeDom.Compiler {
-
- [Serializable]
- public class CompilerErrorCollection : CollectionBase
- {
- public CompilerErrorCollection ()
- {
- }
-
- public CompilerErrorCollection (CompilerErrorCollection value)
- {
- InnerList.AddRange(value.InnerList);
- }
-
- public CompilerErrorCollection (CompilerError[] value)
- {
- InnerList.AddRange(value);
- }
-
- public int Add (CompilerError value)
- {
- return InnerList.Add(value);
- }
-
- public void AddRange (CompilerError[] value)
- {
- InnerList.AddRange(value);
- }
-
- public void AddRange (CompilerErrorCollection value)
- {
- InnerList.AddRange(value.InnerList);
- }
-
- public bool Contains (CompilerError value)
- {
- return InnerList.Contains(value);
- }
-
- public void CopyTo (CompilerError[] array, int index)
- {
- InnerList.CopyTo(array,index);
- }
-
- public int IndexOf (CompilerError value)
- {
- return InnerList.IndexOf(value);
- }
-
- public void Insert (int index, CompilerError value)
- {
- InnerList.Insert(index,value);
- }
-
- public void Remove (CompilerError value)
- {
- InnerList.Remove(value);
- }
-
- public CompilerError this [int index] {
- get { return (CompilerError) InnerList[index]; }
- set { InnerList[index]=value; }
- }
-
- public bool HasErrors {
- get {
- foreach (CompilerError error in InnerList)
- if (!error.IsWarning) return true;
- return false;
- }
- }
-
- public bool HasWarnings {
- get {
- foreach (CompilerError error in InnerList)
- if (error.IsWarning) return true;
- return false;
- }
- }
- }
-}
-
+++ /dev/null
-//
-// System.CodeDom.Compiler.CompilerParameters.cs
-//
-// Authors:
-// Daniel Stodden (stodden@in.tum.de)
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-// (C) 2002 Ximian, Inc.
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections.Specialized;
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-using System.Security.Policy;
-
-namespace System.CodeDom.Compiler {
-
- [Serializable]
- [PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
- [PermissionSet (SecurityAction.InheritanceDemand, Unrestricted = true)]
- public class CompilerParameters {
-
- private string compilerOptions;
- private Evidence evidence;
- private bool generateExecutable = false;
- private bool generateInMemory = false;
- private bool includeDebugInformation = false;
- private string mainClass;
- private string outputAssembly;
- private StringCollection referencedAssemblies;
- private TempFileCollection tempFiles;
- private bool treatWarningsAsErrors = false;
- private IntPtr userToken = IntPtr.Zero;
- private int warningLevel = -1;
- private string win32Resource;
- private StringCollection embedded_resources;
- private StringCollection linked_resources;
-
- //
- // Constructors
- //
- public CompilerParameters()
- {
- }
-
- public CompilerParameters (string[] assemblyNames)
- {
- referencedAssemblies = new StringCollection();
- referencedAssemblies.AddRange (assemblyNames);
- }
-
- public CompilerParameters (string[] assemblyNames, string output)
- {
- referencedAssemblies = new StringCollection();
- referencedAssemblies.AddRange (assemblyNames);
- outputAssembly = output;
- }
-
- public CompilerParameters (string[] assemblyNames, string output, bool includeDebugInfo)
- {
- referencedAssemblies = new StringCollection();
- referencedAssemblies.AddRange (assemblyNames);
- outputAssembly = output;
- includeDebugInformation = includeDebugInfo;
- }
-
- //
- // Properties
- //
- public string CompilerOptions {
- get {
- return compilerOptions;
- }
- set {
- compilerOptions = value;
- }
- }
-
- [Obsolete]
- public Evidence Evidence {
- get { return evidence; }
- [SecurityPermission (SecurityAction.Demand, ControlEvidence = true)]
- set { evidence = value; }
- }
-
- public bool GenerateExecutable {
- get {
- return generateExecutable;
- }
- set {
- generateExecutable = value;
- }
- }
-
- public bool GenerateInMemory {
- get {
- return generateInMemory;
- }
- set {
- generateInMemory = value;
- }
- }
-
- public bool IncludeDebugInformation {
- get {
- return includeDebugInformation;
- }
- set {
- includeDebugInformation = value;
- }
- }
-
- public string MainClass {
- get {
- return mainClass;
- }
- set {
- mainClass = value;
- }
- }
-
- public string OutputAssembly {
- get {
- return outputAssembly;
- }
- set {
- outputAssembly = value;
- }
- }
-
- public StringCollection ReferencedAssemblies {
- get {
- if (referencedAssemblies == null)
- referencedAssemblies = new StringCollection ();
-
- return referencedAssemblies;
- }
- }
-
- public TempFileCollection TempFiles {
- get {
- if (tempFiles == null)
- tempFiles = new TempFileCollection ();
- return tempFiles;
- }
- set {
- tempFiles = value;
- }
- }
-
- public bool TreatWarningsAsErrors {
- get {
- return treatWarningsAsErrors;
- }
- set {
- treatWarningsAsErrors = value;
- }
- }
-
- public IntPtr UserToken {
- get {
- return userToken;
- }
- set {
- userToken = value;
- }
- }
-
- public int WarningLevel {
- get {
- return warningLevel;
- }
- set {
- warningLevel = value;
- }
- }
-
- public string Win32Resource {
- get {
- return win32Resource;
- }
- set {
- win32Resource = value;
- }
- }
- [ComVisible (false)]
- public StringCollection EmbeddedResources {
- get {
- if (embedded_resources == null)
- embedded_resources = new StringCollection ();
- return embedded_resources;
- }
- }
-
- [ComVisible (false)]
- public StringCollection LinkedResources {
- get {
- if (linked_resources == null)
- linked_resources = new StringCollection ();
- return linked_resources;
- }
- }
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler.GeneratedCodeAttribute class
-//
-// Author:
-// Sebastien Pouliot <sebastien@ximian.com>
-//
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler {
-
- [AttributeUsage (AttributeTargets.All, Inherited = false, AllowMultiple = false)]
- public sealed class GeneratedCodeAttribute : Attribute {
-
- private string tool;
- private string version;
-
-
- public GeneratedCodeAttribute (string tool, string version)
- {
- this.tool = tool;
- this.version = version;
- }
-
-
- public string Tool {
- get { return tool; }
- }
-
- public string Version {
- get { return version; }
- }
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler GeneratorSupport Class implementation
-//
-// Author:
-// Daniel Stodden (stodden@in.tum.de)
-// Marek Safar (marek.safar@seznam.cz)
-//
-// (C) 2002 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler
-{
- [Flags]
- [Serializable]
- public enum GeneratorSupport {
- ArraysOfArrays = 1,
- EntryPointMethod = 1 << 1,
- GotoStatements = 1 << 2,
- MultidimensionalArrays = 1 << 3,
- StaticConstructors = 1 << 4,
- TryCatchStatements = 1 << 5,
- ReturnTypeAttributes = 1 << 6,
- DeclareValueTypes = 1 << 7,
- DeclareEnums = 1 << 8,
- DeclareDelegates = 1 << 9,
- DeclareInterfaces = 1 << 10,
- DeclareEvents = 1 << 11,
- AssemblyAttributes = 1 << 12,
- ParameterAttributes = 1 << 13,
- ReferenceParameters = 1 << 14,
- ChainedConstructorArguments = 1 << 15,
- NestedTypes = 1 << 16,
- MultipleInterfaceMembers = 1 << 17,
- PublicStaticMembers = 1 << 18,
- ComplexExpressions = 1 << 19,
- Win32Resources = 1 << 20,
- Resources = 1 << 21,
- PartialTypes = 1 << 22,
- GenericTypeReference = 1 << 23,
- GenericTypeDeclaration = 1 << 24,
- DeclareIndexerProperties = 1 << 25,
- }
-}
-
+++ /dev/null
-//
-// System.CodeDom.Compiler ICodeCompiler Interface
-//
-// Author:
-// Daniel Stodden (stodden@in.tum.de)
-//
-// (C) 2002 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler
-{
- public interface ICodeCompiler
- {
- CompilerResults CompileAssemblyFromDom( CompilerParameters options,
- CodeCompileUnit compilationUnit );
-
- CompilerResults CompileAssemblyFromDomBatch( CompilerParameters options,
- CodeCompileUnit[] batch );
-
- CompilerResults CompileAssemblyFromFile( CompilerParameters options,
- string fileName );
-
- CompilerResults CompileAssemblyFromFileBatch( CompilerParameters options,
- string[] batch );
-
- CompilerResults CompileAssemblyFromSource( CompilerParameters options,
- string source );
-
- CompilerResults CompileAssemblyFromSourceBatch( CompilerParameters options,
- string[] batch );
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler ICodeGenerator Interface
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-// Daniel Stodden (stodden@in.tum.de)
-//
-// (C) 2001 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler
-{
- using System.CodeDom;
- using System.IO;
-
- public interface ICodeGenerator
- {
- //
- // Methods
- //
- string CreateEscapedIdentifier( string value );
-
- string CreateValidIdentifier( string value );
-
- void GenerateCodeFromCompileUnit( CodeCompileUnit compileUnit,
- TextWriter output,
- CodeGeneratorOptions options );
-
- void GenerateCodeFromExpression( CodeExpression expression,
- TextWriter output,
- CodeGeneratorOptions options );
-
- void GenerateCodeFromNamespace( CodeNamespace ns,
- TextWriter output,
- CodeGeneratorOptions options );
-
- void GenerateCodeFromStatement( CodeStatement statement,
- TextWriter output,
- CodeGeneratorOptions options );
-
- void GenerateCodeFromType( CodeTypeDeclaration typeDeclaration,
- TextWriter output,
- CodeGeneratorOptions options );
-
- string GetTypeOutput( CodeTypeReference type );
-
- bool IsValidIdentifier( string value );
-
- bool Supports( GeneratorSupport supports );
-
- void ValidateIdentifier( string value );
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler ICodeParser Interface
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-// Daniel Stodden (stodden@in.tum.de)
-//
-// (C) 2001 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler
-{
- using System.CodeDom;
- using System.IO;
-
- public interface ICodeParser
- {
- CodeCompileUnit Parse( TextReader codeStream );
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler IndentedTextWriter class
-//
-// Author:
-// Daniel Stodden (stodden@in.tum.de)
-//
-// (C) 2002 Ximian, Inc.
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.IO;
-using System.Security.Permissions;
-using System.Text;
-
-namespace System.CodeDom.Compiler {
-
- [PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
- [PermissionSet (SecurityAction.InheritanceDemand, Unrestricted = true)]
- public class IndentedTextWriter
- : TextWriter
- {
- private TextWriter writer;
- private string tabString;
- private int indent;
- private bool newline;
-
- //
- // Constructors
- //
- public IndentedTextWriter( TextWriter writer )
- {
- this.writer = writer;
- this.tabString = DefaultTabString;
- newline = true;
- }
-
- public IndentedTextWriter( TextWriter writer, string tabString )
- {
- this.writer = writer;
- this.tabString = tabString;
- newline = true;
- }
-
-
- //
- // Fields
- //
- public const string DefaultTabString = " ";
-
- //
- // Properties
- //
- public override Encoding Encoding {
- get {
- return writer.Encoding;
- }
- }
-
- public int Indent {
- get {
- return indent;
- }
- set {
- if (value < 0) {
- value = 0;
- }
- indent = value;
- }
- }
-
- public TextWriter InnerWriter {
- get {
- return writer;
- }
- }
-
- public override string NewLine {
- get {
- return writer.NewLine;
- }
- set {
- writer.NewLine = value;
- }
- }
-
- //
- // Methods
- //
- public override void Close()
- {
- writer.Close();
- }
-
- public override void Flush()
- {
- writer.Flush();
- }
-
- public override void Write( bool value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( char value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( char[] value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( double value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( int value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( long value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( object value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( float value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( string value )
- {
- OutputTabs();
- writer.Write( value );
- }
-
- public override void Write( string format, object arg )
- {
- OutputTabs();
- writer.Write( format, arg );
- }
-
- public override void Write( string format, params object[] args )
- {
- OutputTabs();
- writer.Write( format, args );
- }
-
- public override void Write( char[] buffer, int index, int count )
- {
- OutputTabs();
- writer.Write( buffer, index, count );
- }
-
- public override void Write( string format, object arg0, object arg1 )
- {
- OutputTabs();
- writer.Write( format, arg0, arg1 );
- }
-
-
- public override void WriteLine()
- {
- OutputTabs();
- writer.WriteLine();
- newline = true;
- }
-
- public override void WriteLine( bool value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( char value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( char[] value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( double value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( int value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( long value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( object value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( float value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( string value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- [CLSCompliant(false)]
- public override void WriteLine( uint value )
- {
- OutputTabs();
- writer.WriteLine( value );
- newline = true;
- }
-
- public override void WriteLine( string format, object arg )
- {
- OutputTabs();
- writer.WriteLine( format, arg );
- newline = true;
- }
-
- public override void WriteLine( string format, params object[] args )
- {
- OutputTabs();
- writer.WriteLine( format, args );
- newline = true;
- }
-
- public override void WriteLine( char[] buffer, int index, int count )
- {
- OutputTabs();
- writer.WriteLine( buffer, index, count );
- newline = true;
- }
-
- public override void WriteLine( string format, object arg0, object arg1 )
- {
- OutputTabs();
- writer.WriteLine( format, arg0, arg1 );
- newline = true;
- }
-
-
- public void WriteLineNoTabs( string value )
- {
- writer.WriteLine( value );
- newline = true;
- }
-
-
- protected virtual void OutputTabs()
- {
- if ( newline ) {
- for ( int i = 0; i < indent; ++i )
- writer.Write( tabString );
- newline = false;
- }
- }
- }
-}
+++ /dev/null
-//
-// System.CodeDom.Compiler LanguageOptions Enum implementation
-//
-// Author:
-// Daniel Stodden (stodden@in.tum.de)
-//
-// (C) 2002 Ximian, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.CodeDom.Compiler
-{
- [Flags]
- [Serializable]
- public enum LanguageOptions {
- None = 0,
- CaseInsensitive = 1
- }
-}
+++ /dev/null
-2009-10-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * CodeNamespaceImportCollection.cs: Properly update the internal
- keys hashtable when there are changes in the items.
-
-2009-09-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
-
- * CodeNamespace.cs:
- * CodeTypeReference.cs:
- * CodeMemberMethod.cs:
- * CodeCompileUnit.cs:
- * CodeNamespaceImportCollection.cs:
- * CodeTypeDeclaration.cs: renamed/added fields so that we're
- compatible with MS serialization.
-
-2009-08-13 Marek Habersack <mhabersack@novell.com>
-
- * CodeTypeReference.cs: generic types specialized on arrays must
- not be treated as array declarations. Fixes bug #523341
-
-2008-02-10 Juraj Skripsky <js@hotfeet.ch>
-
- * CodeObject.cs: Add empty Visit method implementation.
-
- * CodeArgumentReferenceExpression.cs, CodeArrayCreateExpression.cs,
- CodeArrayIndexerExpression.cs, CodeAssignStatement.cs,
- CodeAttachEventStatement.cs, CodeBaseReferenceExpression.cs,
- CodeBinaryOperatorExpression.cs, CodeCastExpression.cs,
- CodeCommentStatement.cs, CodeConditionStatement.cs,
- CodeConstructor.cs, CodeDefaultValueExpression.cs,
- CodeDelegateCreateExpression.cs, CodeDelegateInvokeExpression.cs,
- CodeDirectionExpression.cs, CodeEntryPointMethod.cs,
- CodeEventReferenceExpression.cs, CodeExpressionStatement.cs,
- CodeFieldReferenceExpression.cs, CodeGotoStatement.cs,
- CodeIndexerExpression.cs, CodeIterationStatement.cs,
- CodeLabeledStatement.cs, CodeMemberEvent.cs,
- CodeMemberField.cs, CodeMemberMethod.cs,
- CodeMemberProperty.cs, CodeMethodInvokeExpression.cs,
- CodeMethodReferenceExpression.cs, CodeMethodReturnStatement.cs,
- CodeObjectCreateExpression.cs, CodeParameterDeclarationExpression.cs,
- CodePrimitiveExpression.cs, CodePropertyReferenceExpression.cs,
- CodePropertySetValueReferenceExpression.cs, CodeRemoveEventStatement.cs,
- CodeSnippetExpression.cs, CodeSnippetTypeMember.cs,
- CodeThisReferenceExpression.cs, CodeThrowExceptionStatement.cs,
- CodeTryCatchFinallyStatement.cs, CodeTypeConstructor.cs,
- CodeTypeOfExpression.cs, CodeTypeReferenceExpression.cs,
- CodeVariableDeclarationStatement.cs, CodeVariableReferenceExpression.cs:
- Add Visit method implementation.
-
-2007-01-18 Atsushi Enomoto <atsushi@ximian.com>
-
- * CodeTypeReference.cs :
- Support generic type definition in .ctor(Type)
- Handle generic type in straightforward way in .ctor(Type), no need
- to do ToString() and Parse().
- Supply "`n" in .ctor(string,params CodeTypeReference[]).
-
-2006-03-11 Miguel de Icaza <miguel@novell.com>
-
- * CodeNamespaceImportCollection.cs: It turns out that a lot of the
- errors flagged with "!" were just missing explicit interface
- implementations.
-
- Implement.
-
-2005-11-30 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeRemoveEventStatement.cs: Event returns new CodeEventReference
- if underlying value is null.
-
-2005-11-20 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeParameterDeclarationExpressionCollection.cs: Use CollectionBase
- implementation of IList.Remove to handle removal of item from
- collection.
- * CodeCatchClauseCollection.cs: Same.
- * CodeStatementCollection.cs: Same.
- * CodeAttributeDeclarationCollection.cs: Same.
- * CodeTypeMemberCollection.cs: Same.
- * CodeDirectiveCollection.cs: Same.
- * CodeTypeDeclarationCollection.cs: Same.
- * CodeNamespaceCollection.cs: Same.
- * CodeExpressionCollection.cs: Same.
- * CodeTypeReferenceCollection.cs: Same.
- * CodeTypeParameterCollection.cs: Same.
- * CodeCommentStatementCollection.cs: Same.
- * CodeAttributeArgumentCollection.cs: Same.
-
-2005-11-20 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeEventReferenceExpression.cs: Set eol-style to native.
- * CodeArgumentReferenceExpression.cs: Set eol-style to native.
- * CodeParameterDeclarationExpressionCollection.cs: Set eol-style to
- native.
- * CodeRegionMode.cs: Set eol-style to native.
- * FieldDirection.cs: Set eol-style to native.
- * CodeChecksumPragma.cs: Set eol-style to native.
- * CodeCatchClauseCollection.cs: Set eol-style to native.
- * CodeAttachEventStatement.cs: Set eol-style to native.
- * CodeSnippetCompileUnit.cs: Set eol-style to native.
- * CodeNamespace.cs: Set eol-style to native.
- * CodePropertySetValueReferenceExpression.cs: Set eol-style to native.
- * CodeTypeReference.cs: Set eol-style to native.
- * CodeDirectionExpression.cs: Set eol-style to native.
- * CodeThisReferenceExpression.cs: Set eol-style to native.
- * CodeSnippetStatement.cs: Set eol-style to native.
- * CodeMemberMethod.cs: Set eol-style to native.
- * CodeMemberProperty.cs: Set eol-style to native.
- * CodeEntryPointMethod.cs: Set eol-style to native.
- * CodeTypeReferenceOptions.cs: Set eol-style to native.
- * CodeIndexerExpression.cs: Set eol-style to native.
- * CodeCatchClause.cs: Set eol-style to native.
- * CodeStatementCollection.cs: Set eol-style to native.
- * CodeRegionDirective.cs: Set eol-style to native.
- * CodeTypeParameter.cs: Set eol-style to native.
- * CodeIterationStatement.cs: Set eol-style to native.
- * CodeRemoveEventStatement.cs: Set eol-style to native.
- * CodeVariableReferenceExpression.cs: Set eol-style to native.
- * CodeAttributeDeclarationCollection.cs: Set eol-style to native.
- * CodeTryCatchFinallyStatement.cs: Set eol-style to native.
- * CodeTypeMemberCollection.cs: Set eol-style to native.
- * CodeCompileUnit.cs: Set eol-style to native.
- * CodePrimitiveExpression.cs: Set eol-style to native.
- * CodeDirectiveCollection.cs: Fixed line endings. Set eol-style to
- native.
- * CodeTypeDeclarationCollection.cs: Set eol-style to native.
- * CodeNamespaceImportCollection.cs: Set eol-style to native.
- * CodeNamespaceCollection.cs: Set eol-style to native.
- * CodeTypeMember.cs: Set eol-style to native.
- * CodeAttributeDeclaration.cs: Set eol-style to native.
- * CodeConditionStatement.cs: Set eol-style to native.
- * CodeExpressionCollection.cs: Set eol-style to native.
- * CodeTypeReferenceCollection.cs: Set eol-style to native.
- * CodeSnippetTypeMember.cs: Set eol-style to native.
- * CodeDelegateCreateExpression.cs: Set eol-style to native.
- * CodeLinePragma.cs: Set eol-style to native.
- * CodeMethodReferenceExpression.cs: Set eol-style to native.
- * CodeVariableDeclarationStatement.cs: Set eol-style to native.
- * CodeTypeReferenceExpression.cs: Set eol-style to native.
- * CodeArrayCreateExpression.cs: Set eol-style to native.
- * CodeFieldReferenceExpression.cs: Set eol-style to native.
- * CodePropertyReferenceExpression.cs: Set eol-style to native.
- * CodeTypeDeclaration.cs: Set eol-style to native.
- * CodeTypeConstructor.cs: Set eol-style to native.
- * CodeNamespaceImport.cs: Set eol-style to native.
- * CodeTypeParameterCollection.cs: Use for loop instead of foreach to
- add elements in AddRange method. Fixed line endings. Set eol-style to
- native.
- * CodeTypeParameterCollection.cs: Set eol-style to native.
- * CodeExpression.cs: Set eol-style to native.
- * CodeBinaryOperatorType.cs: Set eol-style to native.
- * CodeSnippetExpression.cs: Set eol-style to native.
- * CodeCommentStatementCollection.cs: Set eol-style to native.
- * CodeMethodReturnStatement.cs: Set eol-style to native.
- * CodeObject.cs: Set eol-style to native.
- * CodeParameterDeclarationExpression.cs: Set eol-style to native.
- * CodeDelegateInvokeExpression.cs: Set eol-style to native.
- * CodeThrowExceptionStatement.cs: Set eol-style to native.
- * CodeObjectCreateExpression.cs: Set eol-style to native.
- * CodeTypeDelegate.cs: Set eol-style to native.
- * CodeLabeledStatement.cs: Set eol-style to native.
- * CodeArrayIndexerExpression.cs: Set eol-style to native.
- * CodeBinaryOperatorExpression.cs: Set eol-style to native.
- * CodeAttributeArgumentCollection.cs: Set eol-style to native.
- * MemberAttributes.cs: Set eol-style to native.
- * CodeExpressionStatement.cs: Set eol-style to native.
- * CodeConstructor.cs: Set eol-style to native.
- * CodeTypeOfExpression.cs: Set eol-style to native.
- * CodeCommentStatement.cs: Set eol-style to native.
- * CodeGotoStatement.cs: Set eol-style to native.
- * CodeComment.cs: Set eol-style to native.
- * CodeStatement.cs: Set eol-style to native.
- * CodeMemberEvent.cs: Set eol-style to native.
- * CodeBaseReferenceExpression.cs: Set eol-style to native.
- * CodeAssignStatement.cs: Set eol-style to native.
- * CodeCastExpression.cs: Set eol-style to native.
- * CodeMemberField.cs: Set eol-style to native.
- * CodeMethodInvokeExpression.cs: Set eol-style to native.
- * CodeDirective.cs: Set eol-style to native.
-
-2005-11-19 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeCatchClauseCollection.cs: Added null check to AddRange overloads
- and use for loop to add elements.
- * CodeAttributeDeclarationCollection.cs: Added null check to AddRange
- overloads and use for loop to add elements.
- * CodeTypeMemberCollection.cs: Added null check to AddRange overloads
- and use for loop to add elements.
- * CodeTypeDeclarationCollection.cs: Added null check to AddRange
- overloads and use for loop to add elements.
- * CodeNamespaceImportCollection.cs: Added null check to Add and perform
- case-insensitive check on namespace to avoid duplicate namespace
- imports. Added null check to AddRange method.
- * CodeNamespaceCollection.cs: Added null check to AddRange overloads
- and use for loop to add elements.
- * CodeCommentStatementCollection.cs: Added null check to AddRange
- overloads and use for loop to add elements.
- * CodeAttributeArgumentCollection.cs: Added null check to AddRange
- overloads and use for loop to add elements.
- * CodeDirectiveCollection.cs: Added null check to AddRange overloads
- and use for loop to add elements.
- * CodeTypeParameterCollection.cs: Added null check to AddRange
- overloads and use for loop to add elements.
-
-2005-11-08 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeExpressionCollection.cs: Fixed OutOfMemoryException when
- passing collection to AddRange method on itself.
- * CodeTypeReferenceCollection.cs: same.
- * CodeParameterDeclarationExpressionCollection.cs: same.
- * CodeStatementCollection.cs: same.
-
-2005-11-04 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeEventReferenceExpression.cs: EventName now returns zero-length
- string if underlying value is null.
- * CodeParameterDeclarationExpressionCollection.cs: Fixed AddRange to
- add each item to collection using Add method to ensure validation
- is performed.
- * CodeChecksumPragma.cs: FileName now returns zero-length string
- if underlying value is null.
- * CodeSnippetCompileUnit.cs: Value now returns zero-length string if
- underlying value is null.
- * CodeNamespace.cs: Name now returns zero-length string if underlying
- value is null.
- * CodeSnippetStatement.cs: Value now returns zero-length string if
- underlying value is null.
- * CodeMemberMethod.cs: code formatting change.
- * CodeCatchClause.cs: CatchExceptionType now returns CodeTypeReference
- instance for System.Exception if underlying value is null. LocalName
- now returns zero-length string if underlying value is null.
- * CodeStatementCollection.cs: Fixed AddRange to add each item to
- collection using Add method to ensure validation is performed. Code
- formatting changes.
- * CodeRegionDirective.cs: RegionText now returns zero-length string
- if underlying value is null.
- * CodeTypeParameter.cs: Name now returns zero-length string if
- underlying value is null.
- * CodeVariableReferenceExpression.cs: VariableName now returns
- zero-length string if underlying value is null.
- * CodeDefaultValueExpression.cs: Type now returns CodeTypeReference
- for void if underlying value is null.
- * CodeExpressionCollection.cs: Fixed AddRange to add each item to
- collection using Add method to ensure validation is performed.
- * CodeSnippetTypeMember.cs: Text now returns zero-length string if
- underlying value is null.
- * CodeTypeReferenceCollection.cs: Fixed AddRange to add each item
- to collection using Add method to ensure validation is performed.
- * CodeDelegateCreateExpression.cs: DelegateType now returns
- CodeTypeReference for void if underlying value is null. MethodName
- now returns zero-length string if underlying value is null.
- * CodeMethodReferenceExpression.cs: MethodName now returns
- zero-length string if underlying value is null.
- * CodeLinePragma.cs: FileName now returns zero-length string if
- underlying value is null.
- * CodeTypeReferenceExpression.cs: Type now return CodeTypeReference
- for void if underlying value is null.
- * CodeVariableDeclarationStatement.cs: Name now return zero-length
- string if underlying value is null. Type returns CodeTypeReference
- for void if underlying value is null.
- * CodePropertyReferenceExpression.cs: PropertyName now returns
- zero-length string if underlying value is null.
- * CodeNamespaceImport.cs: Namespace now returns zero-length string
- if underlying value is null.
- * CodeTypeConstructor.cs: Name is fixed to ".cctor" to match MS.NET.
- * CodeSnippetExpression.cs: Value now returns zero-length string if
- underlying value is null.
- * CodeParameterDeclarationExpression.cs: Name now returns zero-length
- string if underlying value is null. Type now returns CodeTypeReference
- for void if underlying value is null.
- * CodeObjectCreateExpression.cs: CreateType now returns
- CodeTypeReference for void if underlying value is null.
- * CodeLabeledStatement.cs: Label returns zero-length string if
- underlying value is null.
- * CodeConstructor.cs: Name is fixed to ".ctor" to match MS.NET.
- * CodeTypeOfExpression.cs: Type returns CodeTypeReference for void
- if underlying value is null.
- * CodeGotoStatement.cs: Only throw ArgumentNullException for null or
- zero-length label on 2.0 profile.
- * CodeCastExpression.cs: TargetType returns CodeTypeReference for void
- if underlying value is null.
- * CodeMethodInvokeExpression.cs: Method returns a default
- CodeMethodReferenceExpression instance if the underlying value is
- null.
-
-2005-10-25 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeAttachEventStatement.cs: Fixed extra removal in r52147.
- * CodeAttributeDeclaration.cs: Make sure AttributeType is updated
- when Name is set or changed. For constructors taking attribute type,
- use BaseType of attribute type as name of CodeAttributeDeclaration.
-
-2005-10-25 Sebastien Pouliot <sebastien@ximian.com>
-
- * CodeAttributeDeclaration.cs: Fixed extra removal in r52147.
-
-2005-10-24 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeArgumentReferenceExpression.cs: If ParameterName is null, return
- string.Empty.
- * CodeArrayCreateExpression.cs: Implement default value in CreateType
- property.
- * CodeAttachEventStatement.cs: Implement default value in Event
- property.
- * CodeAttributeArgument.cs: Implement default value in Name property.
- * CodeAttributeDeclaration.cs: Implement default value in Name
- property.
-
-2005-10-24 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Ignore ArrayElementType for determining
- BaseType if ArrayRank zero or less. Fixes bug #76535.
-
-2005-10-24 Sebastien Pouliot <sebastien@ximian.com>
-
- * CodeArgumentReferenceExpression.cs: Added default value for
- arameterName.
- * CodeArrayCreateExpression.cs: Added default value for createType.
- * CodeAttachEventStatement.cs: Added default value for eventRef.
- * CodeAttributeArgument.cs: Added default value for name.
- * CodeAttributeArgumentCollection.cs: Fixed AddRange methods not to
- throw an exception (as the list was being changed when using an
- numerator).
- * CodeAttributeDeclaration.cs: Added default value for name.
- * CodeAttributeDeclarationCollection.cs: Fixed AddRange methods not to
- throw an exception (as the list was being changed when using an
- numerator).
- * CodeCastExpression.cs: Added default value for targetType.
- * CodeCatchClause.cs: Added default value for catchExceptionType and
- ocalName.
- * CodeCatchClauseCollection.cs: Fixed AddRange methods not to throw an
- xception (as the list was being changed when using an enumerator).
- * CodeCommentStatementCollection.cs: Fixed AddRange methods not to
- hrow an exception (as the list was being changed when using an
- numerator).
- * CodeDelegateCreateExpression.cs: Added default value for
- elegateType and methodName.
- * CodeEventReferenceExpression.cs: Added default value for eventName.
- * CodeExpressionCollection.cs: Fixed AddRange methods not to throw an
- xception (as the list was being changed when using an enumerator).
- * CodeFieldReferenceExpression.cs: Added default value for fieldName.
- * CodeMethodInvokeExpression.cs: Added default value for method.
- * CodeMethodReferenceExpression.cs: Added default value for methodName
- * CodeNamespace.cs: Added default value for name.
- * CodeNamespaceCollection.cs: Fixed AddRange methods not to throw an
- xception (as the list was being changed when using an enumerator).
- * CodeNamespaceImport.cs: Added default value for nameSpace.
- * CodeNamespaceImportCollection.cs: SyncRoot returns null.
- * CodeObjectCreateExpression.cs: Added default value for createType.
- * CodeParameterDeclarationExpression.cs: Added default value for name
- and type.
- * CodeParameterDeclarationExpressionCollection.cs: Fixed AddRange
- methods not to throw an exception (as the list was being changed when
- using an enumerator).
- * CodePropertyReferenceExpression.cs: Added default value for
- propertyName.
- * CodeRemoveEventStatement.cs: Added default value for eventRef.
- * CodeSnippetExpression.cs: Added default value for value.
- * CodeSnippetStatement.cs: Added default value for value.
- * CodeSnippetTypeMember.cs: Added default value for text.
- * CodeStatementCollection.cs: Fixed AddRange methods not to throw an
- exception (as the list was being changed when using an enumerator).
- * CodeTypeDeclarationCollection.cs: Fixed AddRange methods not to
- throw an exception (as the list was being changed when using an
- enumerator).
- * CodeTypeMemberCollection.cs: Fixed AddRange methods not to throw an
- exception (as the list was being changed when using an enumerator).
- * CodeTypeOfExpression.cs: Added default value for type.
- * CodeTypeReferenceCollection.cs: Fixed AddRange methods not to throw
- an exception (as the list was being changed when using an enumerator).
- * CodeTypeReferenceExpression.cs: Added default value for type.
- * CodeVariableDeclarationStatement.cs: Added default value for name
- and type.
- * CodeVariableReferenceExpression.cs: Added default value for
- variableName.
-
-2005-10-23 Sebastien Pouliot <sebastien@ximian.com>
-
- * CodeTypeParameterCollection.cs: Added missing Add(string) method.
-
-2005-10-23 Sebastien Pouliot <sebastien@ximian.com>
-
- * CodeAttributeDeclaration.cs: Added new 2.0 ctor and AttributeType
- property.
- * CodeDefaultValueExpression.cs: New. Implemented (2.0).
- * CodeDirectiveCollection.cs: Completed implementation.
- * CodeGotoStatement.cs: Added default ctor for 2.0.
- * CodeIndexerExpression.cs: Fixed typo in header.
- * CodeLinePragma.cs: Added default ctor for 2.0.
- * CodeRegionMode.cs: Added missing None element.
- * CodeSnippetCompileUnit.cs: Added default ctor for 2.0.
- * CodeTypeDeclaration.cs: Added ComVisible(false) on TypeParameters
- property.
- * CodeTypeParameterCollection.cs: Completed implementation.
-
-2005-10-07 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Fixed Parse implementation on 1.0 profile.
- Added MonoTODO's.
-
-2005-10-05 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Added support for generic type parameters.
-
-2005-10-02 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Added default ctor for 2.0 profile. Set
- Options to CodeReferenceOptions.GenericTypeParameter when instance
- is constructed using ctor taking CodeTypeParameter argument. Modified
- BaseType property to return BaseType of ArrayElementType if
- available. Fixed some bugs in array and typeparameter support.
-
-2005-07-24 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Added internal IsInterface property.
- * CodeTypeDelegate.cs: System.Delegate is base type, and make sure
- ReturnType is initialized.
-
-2005-06-28 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeTypeReference.cs: Also consider null type name as void, throw
- ArgumentNullException for null type on 2.0 profile.
-
-2005-06-26 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeMemberProperty.cs: Default value of Type is empty
- CodeTypeReference.
-
-2005-06-25 Gert Driesen <drieseng@users.sourceforge.net>
-
- * CodeMemberField.cs: Default value of Type is empty CodeTypeReference.
-
-2004-09-14 Marek Safar <marek.safar@seznam.cz>
-
- * CodeTypeReference.cs: Fix #65854
-
-2004-09-06 Marek Safar <marek.safar@seznam.cz>
-
- * CodeCompileUnit.cs,
- * CodeMemberMethod.cs,
- * CodeMethodReferenceExpression.cs,
- * CodeStatement.cs,
- * CodeTypeDeclaration.cs,
- * CodeTypeMember.cs,
- * CodeTypeReference.cs : Implemented NET_2_0.
-
- * CodeChecksumPragma.cs,
- * CodeDirective.cs,
- * CodeDirectiveCollection.cs,
- * CodeRegionDirective.cs,
- * CodeRegionMode.cs,
- * CodeTypeParameter.cs,
- * CodeTypeParameterCollection.cs,
- * CodeTypeReferenceOptions.cs : New NET_2_0 files
-
-2004-09-01 Marek Safar <marek.safar@seznam.cz>
-
- * CodeCatchClause.cs: System.Exception is default type
- for string constructor.
-
- * CodeTypeMember.cs: Default member attributes are
- private and final.
-
- * CodeTypeReference.cs: Implemented array info extraction
- from Type.
-
-2004-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * CodeEntryPointMethod.cs: patch by Fawad Halim that makes the entry
- point method public.
-
-2004-02-04 Jackson Harper <jackson@ximian.com>
-
- * CodeTypeMember.cs: Name is String.Empty if not set.
- * CodeComment.cs: Text is String.Empty if not set.
-
-2003-12-23 Jaroslaw Kowalski <jaak@zd.com.pl>
-
- * CodeAttributeDeclaration.cs:
- * CodeDelegateInvokeExpression:
- -Added "params" keyword to constructors
-
-2003-08-15 Jaroslaw Kowalski <jarek@atm.com.pl>
-
- * CodeTypeDeclaration.cs:
-
- - TypeAttributes of CodeTypeDeclaration now defaults to
- TypeAttributes.Public (same as MS implementation)
-
-2003-04-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * CodeEventReferenceExpression.cs: fixed typo that prevented event
- name from being set.
-
-2003-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * CodeMemberProperty.cs: fixed HasGet and HasSet to actually generate
- code for the property.
-
-2002-10-11 Ravi Pratap <ravi@ximian.com>
-
- * CodeMethodInvokeExpression.cs : Fix second constructor so that
- the last argument is params - that is what the docs say.
-
-2002-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * CodeBinaryOperatorType.cs:
- * CodeMemberEvent.cs:
- * CodeParameterDeclarationExpression.cs:
- * CodeTypeMember.cs:
- * CodeTypeReference.cs:
- * CodeTypeReferenceCollection.cs: misc. fixes
-
-2002-05-28 Daniel Stodden <stodden@in.tum.de>
-
- * CodeArrayCreateExpression.cs: typo + comments
-
- * CodeAttributeArgumentCollection.cs: Add() signature fixed
-
- * CodeAttributeDeclarationCollection.cs: Add() signature fixed
-
- * CodeCatchClause.cs: ctor signature fixed
-
- * CodeCatchClauseCollection.cs: Add() signature fixed
-
- * CodeCommentStatementCollection.cs: Add() signature fixed
-
- * CodeConstructor.cs: ctor added
-
- * CodeExpressionCollection.cs: Populate* events: nullref checks
- added
-
- * CodeNamespace.cs: Populate* events: nullref checks added
-
- * CodeNamespaceCollection.cs: Add() signature fixed
-
- * CodeParameterDeclarationExpressionCollection.cs: Add() signature
- fixed
-
- * CodeStatementCollection.cs: Add() signature fixed, missing
- overload added
-
- * CodeTypeConstructor.cs: class name typo :P
-
- * CodeTypeDeclaration.cs: finally figured out how TypeAttributes
- work.
-
- * CodeTypeDeclarationCollection.cs: Add() signature fixed
-
- * CodeTypeReference.cs: added MonoTODOs. some corrections on array
- type behavior.
-
- * CodeTypeReferenceCollection.cs: Add() signature fixed
-
- * MemberAttributes.cs: just comments
-
-2002-05-11 Daniel Stodden <stodden@in.tum.de>
-
- * CodeAttributeArgumentCollection.cs: inherits CollectionBase
-
- * CodeAttributeDeclarationCollection.cs: inherits CollectionBase
-
- * CodeCatchClauseCollection.cs: inherits CollectionBase
-
- * CodeExpressionCollection.cs: inherits CollectionBase
-
- * CodeNamespaceImportCollection.cs: not CollectionBase, but
- matching MS docs
-
- * CodeParameterDeclarationCollection.cs: inherits CollectionBase
-
- * CodeStatementCollection.cs: inherits CollectionBase
-
- * CodeArrayCreateExpression.cs: corrections, completions, whatever
-
- * CodeAssignStatement.cs: corrections, completions, whatever
-
- * CodeAttachEventStatement.cs: corrections, completions, whatever
-
- * CodeAttributeArgument.cs: corrections, completions, whatever
-
- * CodeAttributeDeclaration.cs: corrections, completions, whatever
-
- * CodeBaseReferenceExpression.cs: corrections, completions,
- whatever
-
- * CodeBinaryOperatorExpression.cs: corrections, completions,
- whatever
-
- * CodeCastExpression.cs: corrections, completions, whatever
-
- * CodeCatchClause.cs: corrections, completions, whatever
-
- * CodeCommentStatement.cs: corrections, completions, whatever
-
- * CodeConstructor.cs: corrections, completions, whatever
-
- * CodeDelegateCreateExpression.cs: corrections, completions,
- whatever
-
- * CodeDelegateInvokeExpression.cs: corrections, completions,
- whatever
-
- * CodeExpression.cs: corrections, completions, whatever
-
- * CodeFieldReferenceExpression.cs: corrections, completions,
- whatever
-
- * CodeIndexerExpression.cs: corrections, completions, whatever
-
- * CodeLinePragma.cs: corrections, completions, whatever
-
- * CodeMemberEvent.cs: corrections, completions, whatever
-
- * CodeMemberField.cs: corrections, completions, whatever
-
- * CodeMemberMethod.cs: corrections, completions, whatever
-
- * CodeMemberProperty.cs: corrections, completions, whatever
-
- * CodeMethodInvokeExpression.cs: corrections, completions,
- whatever
-
- * CodeMethodReturnStatement.cs: corrections, completions, whatever
-
- * CodeNamespace.cs: corrections, completions, whatever
-
- * CodeNamespaceImport.cs: corrections, completions, whatever
-
- * CodeObject.cs: corrections, completions, whatever
-
- * CodeObjectCreateExpression.cs: corrections, completions,
- whatever
-
- * CodeParameterDeclarationExpression.cs: corrections, completions,
- whatever
-
- * CodePrimitiveExpression.cs: corrections, completions, whatever
-
- * CodePropertyReferenceExpression.cs: corrections, completions,
- whatever
-
- * CodeStatement.cs: corrections, completions, whatever
-
- * CodeThisReferenceExpression.cs: corrections, completions,
- whatever
-
- * CodeThrowExceptionStatement.cs: corrections, completions,
- whatever
-
- * CodeTryCatchFinallyStatement.cs: corrections, completions,
- whatever
-
- * CodeTypeDeclaration.cs: corrections, completions, whatever
-
- * CodeTypeMember.cs: corrections, completions, whatever
-
- * CodeTypeOfExpression.cs: corrections, completions, whatever
-
- * CodeTypeReferenceExpression.cs: corrections, completions,
- whatever
-
- * CodeVariableDeclarationStatement.cs: corrections, completions,
- whatever
-
- * FieldDirection.cs: corrections, completions, whatever
-
- * CodeArgumentReferenceExpression.cs: added
-
- * CodeArrayIndexerExpression.cs: added
-
- * CodeComment.cs: added
-
- * CodeCommentStatementCollection.cs: added
-
- * CodeCompileUnit.cs: added
-
- * CodeConditionStatement.cs: added
-
- * CodeDirectionExpression.cs: added
-
- * CodeEntryPointMethod.cs: added
-
- * CodeEventReferenceExpression.cs: added
-
- * CodeExpressionStatement.cs: added
-
- * CodeGotoStatement.cs: added
-
- * CodeIterationStatement.cs: added
-
- * CodeLabeledStatement.cs: added
-
- * CodeMethodReferenceExpression.cs: added
-
- * CodeNamespaceCollection.cs: added
-
- * CodePropertySetValueReferenceExpression.cs: added
-
- * CodeRemoveEventStatement.cs: added
-
- * CodeSnippetCompileUnit.cs: added
-
- * CodeSnippetExpression.cs: added
-
- * CodeSnippetStatement.cs: added
-
- * CodeSnippetTypeMember.cs: added
-
- * CodeTypeConstructor.cs: added
-
- * CodeTypeDeclarationCollection.cs: added
-
- * CodeTypeDelegate.cs: added
-
- * CodeTypeMemberCollection.cs: added
-
- * CodeTypeReference.cs: added
-
- * CodeTypeReferenceCollection.cs: added
-
- * CodeVariableReferenceExpression.cs: added
-
-2001-07-15 Sean MacIsaac <macisaac@ximian.com>
-
- * MemberAttributes.cs: Added so rest of classes would compile.
-
- * FieldDirection.cs: Added so rest of classes would compile.
-
- * CodeTypeMember.cs: Added so rest of classes would compile.
-
- * CodeTypeDeclaration.cs: Added so rest of classes would compile.
-
- * CodeObject.cs: Added so rest of classes would compile.
-
- * CodeBinaryOperatorType.cs: Added so rest of classes would compile.
-
-2001-07-12 Sean MacIsaac <macisaac@ximian.com>
-
- * All files implementing IList: Added IsFixedSize property.
-
- * All files: Changed CodeDOM to CodeDom.
System.CodeDom.Compiler/CodeCompiler.cs
System.CodeDom.Compiler/CodeDomConfigurationHandler.cs
System.CodeDom.Compiler/CodeDomProvider.cs
-System.CodeDom.Compiler/CodeGeneratorOptions.cs
System.CodeDom.Compiler/CodeParser.cs
System.CodeDom.Compiler/Compiler.cs
System.CodeDom.Compiler/CompilerCollection.cs
-System.CodeDom.Compiler/CompilerErrorCollection.cs
-System.CodeDom.Compiler/CompilerError.cs
System.CodeDom.Compiler/CompilerInfo.cs
-System.CodeDom.Compiler/CompilerParameters.cs
System.CodeDom.Compiler/CompilerProviderOption.cs
System.CodeDom.Compiler/CompilerProviderOptionsCollection.cs
System.CodeDom.Compiler/CompilerResults.cs
System.CodeDom.Compiler/Executor.cs
-System.CodeDom.Compiler/GeneratedCodeAttribute.cs
-System.CodeDom.Compiler/GeneratorSupport.cs
-System.CodeDom.Compiler/ICodeCompiler.cs
-System.CodeDom.Compiler/ICodeGenerator.cs
-System.CodeDom.Compiler/ICodeParser.cs
-System.CodeDom.Compiler/IndentedTextWriter.cs
-System.CodeDom.Compiler/LanguageOptions.cs
System.CodeDom.Compiler/TempFileCollection.cs
System.Configuration/ApplicationScopedSettingAttribute.cs
System.Configuration/ApplicationSettingsBase.cs
../../../external/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs
../../../external/referencesource/System/compmod/system/codedom/FieldDirection.cs
../../../external/referencesource/System/compmod/system/codedom/MemberAttributes.cs
+
../../../external/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs
../../../external/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs
+../../../external/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs
+
assemblyEvidenceList.Clear ();
}
+ [ComVisible(false)]
+ public Evidence Clone ()
+ {
+ return new Evidence(this);
+ }
+
[Obsolete]
public void CopyTo (Array array, int index)
{