2006-09-15 Martin Baulig <martin@ximian.com>
authorMartin Baulig <martin@novell.com>
Fri, 15 Sep 2006 13:23:15 +0000 (13:23 -0000)
committerMartin Baulig <martin@novell.com>
Fri, 15 Sep 2006 13:23:15 +0000 (13:23 -0000)
* old-code.cs, gen-il.cs, gen-treedump.cs: Removed old stuff.
* g1.cs, sample-hello.cs, sample-stack.il: Likewise.

svn path=/trunk/mcs/; revision=65450

mcs/gmcs/ChangeLog
mcs/gmcs/g1.cs [deleted file]
mcs/gmcs/gen-il.cs [deleted file]
mcs/gmcs/gen-treedump.cs [deleted file]
mcs/gmcs/old-code.cs [deleted file]
mcs/gmcs/sample-hello.cs [deleted file]
mcs/gmcs/sample-stack.il [deleted file]

index 8cdd28490c279942815d697ebcdc89d158412571..3d228723dd7b47d125e7d2aa9178c3c2f5f8a3a2 100644 (file)
@@ -1,3 +1,8 @@
+2006-09-15  Martin Baulig  <martin@ximian.com>
+
+       * old-code.cs, gen-il.cs, gen-treedump.cs: Removed old stuff.
+       * g1.cs, sample-hello.cs, sample-stack.il: Likewise.
+
 2006-09-14  Marek Safar  <marek.safar@seznam.cz>
 
        * assign.cs, ecore.cs, expression.cs: Share error message text.
diff --git a/mcs/gmcs/g1.cs b/mcs/gmcs/g1.cs
deleted file mode 100644 (file)
index 8a2e537..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-class Stack<T> {
-}
-
-class Test {
-}
-
-class T {
-       Stack<Test> a;
-
-       static void Main()
-       {
-       }
-}
diff --git a/mcs/gmcs/gen-il.cs b/mcs/gmcs/gen-il.cs
deleted file mode 100644 (file)
index 2dfeecc..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-// gen-il.cs: Generates MSIL code from the CIR.Tree
-//
-// Author: Miguel de Icaza (miguel@ximian.com)
-//
-// Licensed under the terms of the GNU GPL
-//
-// (C) 2001 Ximian, Inc. (http://www.ximian.com)
-//
-
-using System;
-using System.IO;
-using System.Collections;
-using CIR;
-
-namespace MSIL {
-
-       public class Generator : CIR.ITreeDump {
-               StreamWriter o;
-               int indent = 0;
-               
-               void output (string s)
-               {
-                       Console.Write (s);
-                       o.Write (s);
-               }
-
-               void space ()
-               {
-                       output (new String (' ', indent * 2));
-               }
-
-               void ioutput (string s)
-               {
-                       space ();
-                       output (s);
-               }
-
-               void ioutputl (string s)
-               {
-                       ioutput (s + "\n");
-               }
-
-               string ClassAttributes (Class c)
-               {
-                       // FIXME
-                       return "";
-               }
-
-               string ILName (string name)
-               {
-                       return name;
-               }
-
-               string ClassExtends (Class c)
-               {
-                       return "";
-               }
-               
-               void GenerateFromClass (Class c)
-               {
-                       ioutputl (".class " + ClassAttributes (c) + " " + ILName (c.Name));
-                       ioutputl (ClassExtends (c));
-                       ioutputl ("{");
-                       indent++;
-
-                       
-
-                       indent--;
-                       ioutputl ("}");
-               }
-               
-               void GenerateFromTypes (TypeContainer types)
-               {
-                       if (types.Types == null)
-                               return;
-                       
-                       foreach (DictionaryEntry de in types.Types){
-                               TypeContainer type = (TypeContainer) de.Value;
-                               
-                               if (type is Class)
-                                       GenerateFromClass ((Class) type);
-                       }
-                       
-               }
-               
-               public int GenerateFromTree (Tree tree, StreamWriter os)
-               {
-                       this.o = os;
-
-                       ioutputl (".assembly test.exe { }");
-                       GenerateFromTypes (tree.Types);
-                       return 0;
-               }
-
-               public void ParseOptions (string options)
-               {
-               }
-               
-       }
-}
diff --git a/mcs/gmcs/gen-treedump.cs b/mcs/gmcs/gen-treedump.cs
deleted file mode 100644 (file)
index a4dbf32..0000000
+++ /dev/null
@@ -1,988 +0,0 @@
-// cs-treedump.cs: Dumps the parsed tree to standard output
-//
-// Author: Miguel de Icaza (miguel@gnu.org)
-//
-// Licensed under the terms of the GNU GPL
-//
-// (C) 2001 Ximian, Inc. (http://www.ximian.com)
-//
-// TODO:
-//     Variable declarations
-//      Fix precedence rules to lower the number of parenthesis.
-//
-
-using System;
-using System.IO;
-using System.Collections;
-using CIR;
-
-namespace Generator {
-       
-       public class TreeDump : CIR.ITreeDump {
-               StreamWriter o;
-               int indent;
-               bool indented;
-               bool tag_values;
-               
-               void space ()
-               {
-                       if (!indented)
-                               output (new String (' ', indent * 8));
-                       indented = true;
-               }
-
-               void output (string s)
-               {
-                       Console.Write (s);
-                       //o.Write (s);
-               }
-
-               void newline ()
-               {
-                       output ("\n");
-                       indented = false;
-               }
-
-               void output_newline (string s)
-               {
-                       output (s);
-                       newline ();
-               }
-               
-               void ioutput (string s)
-               {
-                       space ();
-                       output (s);
-               }
-
-               string GetParameter (Parameter par)
-               {
-                       Parameter.Modifier f = par.ModFlags;
-                       string mod = "";
-                       
-                       switch (f){
-                       case Parameter.Modifier.REF:
-                               mod = "ref "; break;
-                       case Parameter.Modifier.OUT:
-                               mod = "out "; break;
-                       case Parameter.Modifier.PARAMS:
-                               mod = "params "; break;
-                       case Parameter.Modifier.NONE:
-                               mod = ""; break;
-                       }
-                       return mod + par.Type + " " + par.Name;
-               }
-
-               string GetUnary (Unary u, int paren_level)
-               {
-                       string e;
-                       bool left = true;
-                       string s = "0_ERROR>";
-                       int prec = 0;
-                       
-                       switch (u.Oper){
-                       case Unary.Operator.UnaryPlus:
-                               prec = 10;
-                               s = "+";
-                               break;
-                               
-                       case Unary.Operator.UnaryNegation:
-                               prec = 10;
-                               s = "-";
-                               break;
-                               
-                       case Unary.Operator.LogicalNot:
-                               s = "!";
-                               prec = 10;
-                               break;
-                               
-                       case Unary.Operator.OnesComplement:
-                               prec = 10;
-                               s = "~";
-                               break;
-                               
-                       case Unary.Operator.Indirection:
-                               prec = 10;
-                               s = "*";
-                               break;
-                               
-                       case Unary.Operator.AddressOf:
-                               prec = 10;
-                               s = "&";
-                               break;
-                               
-                       case Unary.Operator.PreIncrement:
-                               prec = 11;
-                               s = "++";
-                               break;
-                               
-                       case Unary.Operator.PreDecrement:
-                               prec = 11;
-                               s = "--";
-                               break;
-                               
-                       case Unary.Operator.PostDecrement:
-                               left = false;
-                               prec = 12;
-                               s = "--";
-                               break;
-                               
-                       case Unary.Operator.PostIncrement:
-                               s = "++";
-                               prec = 12;
-                               left = false;
-                               break;
-                       }
-
-                       e = GetExpression (u.Expr, prec);
-                       if (left)
-                               e = s + e;
-                       else
-                               e = e + s;
-                       
-                       if (prec < paren_level)
-                               return "(" + e + ")";
-                       else
-                               return e;
-               }
-
-               string GetBinary (Binary b, int paren_level)
-               {
-                       string l, r;
-                       string op = null;
-                       bool assoc_left = true;
-                       int prec = 0;
-                       
-                       switch (b.Oper){
-                               case Binary.Operator.Multiply:
-                                       prec = 9;
-                                       op = "*"; break;
-
-                               case Binary.Operator.Division:
-                                       prec = 9;
-                                       op = "/"; break;
-                               
-                               case Binary.Operator.Modulus:
-                                       prec = 9;
-                                       op = "%"; break;
-                               
-                               case Binary.Operator.Addition:
-                                       prec = 8;
-                                       op = "+"; break;
-                               
-                               case Binary.Operator.Subtraction:
-                                       prec = 8;
-                                       op = "-"; break;
-                               
-                               case Binary.Operator.LeftShift:
-                                       prec = 7;
-                                       op = "<<"; break;
-                               
-                               case Binary.Operator.RightShift:
-                                       prec = 7;
-                                       op = ">>"; break;
-                               
-                               case Binary.Operator.LessThan:
-                                       prec = 6;
-                                       op = "<"; break;
-                               
-                               case Binary.Operator.GreaterThan:
-                                       prec = 6;
-                                       op = ">"; break;
-                               
-                               case Binary.Operator.LessThanOrEqual:
-                                       prec = 6;
-                                       op = "<="; break;
-                               
-                               case Binary.Operator.GreaterThanOrEqual:
-                                       prec = 6;
-                                       op = ">="; break;
-                               
-                               case Binary.Operator.Equality:
-                                       prec = 5;
-                                       op = "=="; break;
-                               
-                               case Binary.Operator.Inequality:
-                                       prec = 5;
-                                       op = "!="; break;
-                               
-                               case Binary.Operator.BitwiseAnd:
-                                       prec = 4;
-                                       op = "&"; break;
-                               
-                               case Binary.Operator.BitwiseOr:
-                                       prec = 2;
-                                       op = "|"; break;
-                               
-                               case Binary.Operator.LogicalAnd:
-                                       prec = 1;
-                                       op = "&&"; break;
-                               
-                               case Binary.Operator.LogicalOr:
-                                       prec = 0;
-                                       op = "||"; break;
-                               
-                               case Binary.Operator.ExclusiveOr:
-                                       prec = 3;
-                                       op = "^"; break;
-                       }
-
-                       l = GetExpression (b.Left, prec - (assoc_left ? 0 : 1));
-                       r = GetExpression (b.Right, prec - (assoc_left ? 0 : 1));
-                       
-                       if (prec <= paren_level)
-                               return "(" + l + " " + op + " " + r + ")";
-                       else
-                               return l + " " + op + " " + r;
-               }
-
-               string GetCast (Cast c)
-               {
-                       return "(" + c.TargetType + ") (" + GetExpression (c.Expr, 0) + ")";
-               }
-
-               string GetConditional (Conditional c)
-               {
-                       return "(" + GetExpression (c.Expr, 0) + ") ? (" +
-                               GetExpression (c.TrueExpr, 0) + ") : (" +
-                               GetExpression (c.FalseExpr, 0) + ")";
-               }
-
-               string GetAssign (Assign a)
-               {
-                       return GetExpression (a.Target, 0) + " = " + GetExpression (a.Source, 0);
-               }
-
-               string GetArguments (ArrayList args)
-               {
-                       string r = "";
-                       
-                       if (args != null){
-                               int top = args.Count;
-                               
-                               for (int i = 0; i < top; i++){
-                                       Argument arg = (Argument) args [i];
-                                               
-                                       switch (arg.ArgType){
-                                               case Argument.AType.Ref:
-                                                       r += "ref "; break;
-                                               case Argument.AType.Out:
-                                                       r += "out "; break;
-                                       }
-                                       r += GetExpression (arg.Expr, 0);
-
-                                       if (i+1 != top)
-                                               r += ", ";
-                               }
-                       }
-
-                       return "(" + r + ")";
-               }
-               
-               string GetInvocation (Invocation i)
-               {
-                       return GetExpression (i.Expr, 0) + " " + GetArguments (i.Arguments);
-               }
-
-               string GetNew (New n)
-               {
-                       return "new " + n.RequestedType + GetArguments (n.Arguments);
-               }
-
-               string GetTypeOf (TypeOf t)
-               {
-                       return "typeof (" + t.QueriedType + ")";
-               }
-
-               string GetSizeOf (SizeOf t)
-               {
-                       return "sizeof (" + t.QueriedType + ")";
-               }
-
-               string GetMemberAccess (MemberAccess m)
-               {
-                       return GetExpression (m.Expr, 0) +
-                               (tag_values ? "/* member access */ . " : ".") +
-                               m.Identifier;
-               }
-
-               string GetSimpleName (SimpleName n)
-               {
-                       string s = n.Name;
-                       
-                       if (s.StartsWith ("0_"))
-                               return "id_" + s;
-                       else
-                               return s;
-               }
-
-               string GetProbe (Probe p)
-               {
-                       string s = GetExpression (p.Expr, 6);
-
-                       if (p.Oper == CIR.Probe.Operator.Is)
-                               s += " is ";
-                       else if (p.Oper == CIR.Probe.Operator.As)
-                               s += " as ";
-                       else
-                               s += "UNHANDLED";
-
-                       s += p.ProbeType;
-
-                       return s;
-               }
-
-               string GetLocalVariableReference (LocalVariableReference l)
-               {
-                       if (tag_values)
-                               return "/* local var: */" + l.Name;
-                       else
-                               return l.Name;
-               }
-
-               string GetParameterReference (ParameterReference r)
-               {
-                       if (tag_values)
-                               return "/* par: */ " + r.Name;
-                       else
-                               return r.Name;
-               }
-               
-               string GetExpression (Expression e, int paren_level)
-               {
-                       if (e == null){
-                               return "<NULL EXPRESSION>";
-                       }
-                       
-                       if (e is Unary)
-                               return GetUnary ((Unary) e, paren_level);
-                       else if (e is Binary)
-                               return GetBinary ((Binary) e, paren_level);
-                       else if (e is Cast)
-                               return GetCast ((Cast) e);
-                       else if (e is Conditional)
-                               return GetConditional ((Conditional) e);
-                       else if (e is SimpleName)
-                               return GetSimpleName ((SimpleName)e);
-                       else if (e is LocalVariableReference)
-                               return GetLocalVariableReference ((LocalVariableReference) e);
-                       else if (e is ParameterReference)
-                               return GetParameterReference ((ParameterReference) e);
-                       else if (e is Assign)
-                               return GetAssign ((Assign) e);
-                       else if (e is Literal)
-                               return e.ToString ();
-                       else if (e is Invocation)
-                               return GetInvocation ((Invocation) e);
-                       else if (e is New)
-                               return GetNew ((New) e);
-                       else if (e is This)
-                               return "this";
-                       else if (e is TypeOf)
-                               return GetTypeOf ((TypeOf) e);
-                       else if (e is SizeOf)
-                               return GetSizeOf ((SizeOf) e);
-                       else if (e is MemberAccess)
-                               return GetMemberAccess ((MemberAccess) e);
-                       else if (e is Probe)
-                               return GetProbe ((Probe) e);
-                       else
-                               return "WARNING {" + e.ToString () + "} WARNING";
-               }
-               
-               void GenerateParameters (Parameters pars)
-               {
-                       Parameter [] pfixed;
-                       Parameter parray;
-
-                       pfixed = pars.FixedParameters;
-
-                       if (pfixed != null){
-                               for (int i = 0; i < pfixed.Length; i++){
-                                       output (GetParameter (pfixed [i]));
-                                       if (i+1 != pfixed.Length)
-                                               output (", ");
-                               }
-                       }
-
-                       parray = pars.ArrayParameter;
-                       if (parray != null){
-                               output (GetParameter (parray));
-                       }
-               }
-
-               void GenerateIf (If s)
-               {
-                       bool do_indent;
-                       
-                       output ("if (" + GetExpression (s.Expr, 0) + ") ");
-                       do_indent = !(s.TrueStatement is Block);
-                       if (do_indent)
-                               indent++;
-                       GenerateStatement (s.TrueStatement, true, false, false);
-                       if (do_indent)
-                               indent--;
-                       if (s.FalseStatement != null){
-                               ioutput ("else");
-                               newline ();
-                               GenerateStatement (s.FalseStatement, false, true, false);
-                       }
-               }
-
-               void GenerateDo (Do s)
-               {
-                       output ("do"); newline ();
-                       indent++;
-                       GenerateStatement (s.EmbeddedStatement, false, false, false);
-                       indent--;
-                       output (" while (" + GetExpression (s.Expr, 0) + ");");
-                       newline ();
-               }
-
-               void GenerateWhile (While s)
-               {
-                       output ("while (" + GetExpression (s.Expr, 0) + ")");
-                       GenerateStatement (s.Statement, true, true, false);
-               }
-
-               void GenerateFor (For s)
-               {
-                       output ("for (");
-                       if (! (s.InitStatement == EmptyStatement.Value))
-                               GenerateStatement (s.InitStatement, true, true, true);
-                       output ("; ");
-                       output (GetExpression (s.Test, 0));
-                       output ("; ");
-                       if (! (s.Increment == EmptyStatement.Value))
-                               GenerateStatement (s.Increment, true, true, true);
-                       output (") ");
-                       GenerateStatement (s.Statement, true, true, false);
-               }
-
-               void GenerateReturn (Return s)
-               {
-                       output ("return " +
-                               (s.Expr != null ?
-                                GetExpression (s.Expr, 0) : "" + ";") +
-                               ";");
-                       newline ();
-               }
-
-               void GenerateGoto (Goto s)
-               {
-                       output ("goto " + s.Target + ";");
-                       newline ();
-               }
-
-               void GenerateThrow (Throw s)
-               {
-               }
-
-               void GenerateStatementExpression (StatementExpression s)
-               {
-                       output (GetExpression (s.Expr, 0) + ";");
-                       newline ();
-               }
-
-               void GenerateSwitchLabels (ArrayList labels)
-               {
-                       foreach (SwitchLabel sl in labels){
-                               Expression lab = sl.Label;
-                               
-                               if (lab == null){
-                                       ioutput ("default:");
-                                       newline ();
-                               } else {
-                                       ioutput ("case " + GetExpression (lab, 0) + ":");
-                                       newline ();
-                               }
-                       }
-               }
-               
-               void GenerateSwitch (Switch s)
-               {
-                       output_newline ("switch (" + GetExpression (s.Expr, 0) + ")");
-                       foreach (SwitchSection ss in s.Sections){
-                               GenerateSwitchLabels (ss.Labels);
-                               GenerateBlock (ss.Block, false, false);
-                       }
-               }
-               
-               void GenerateChecked (Checked c)
-               {
-                       output ("checked ");
-                       GenerateBlock (c.Block, false, false);
-               }
-
-               void GenerateUnchecked (Unchecked c)
-               {
-                       output ("unchecked ");
-                       GenerateBlock (c.Block, false, false);
-               }
-
-               void GenerateCatchClauses (ArrayList list)
-               {
-                       foreach (Catch c in list){
-                               space ();
-                               output ("catch ");
-                               
-                               if (c.Type != null){
-                                       output ("(" + c.Type +
-                                               (c.Name != null ? " " + c.Name : "") + ")");
-                               } 
-                               GenerateBlock (c.Block, false, false);
-                       }
-               }
-
-               void GenerateTry (Try t)
-               {
-                       output ("try");
-                       GenerateBlock (t.Block, false, false);
-
-                       if (t.Specific != null){
-                               GenerateCatchClauses (t.Specific);
-                       }
-
-                       if (t.General != null){
-                               space ();
-                               output ("catch");
-                               GenerateBlock (t.Block, false, false);
-                       }
-
-                       if (t.Fini != null){
-                               GenerateBlock (t.Fini, false, false);
-                       }
-               }
-               
-               void GenerateStatement (Statement s, bool doPlacement, bool blockFlushesLine, bool embedded)
-               {
-                       if (s == null){
-                               output ("WARNING: got a null Statement");
-                               newline ();
-                               return;
-                       }
-
-                       if (doPlacement){
-                               if (s is Block){
-                                       GenerateBlock ((Block) s, doPlacement, embedded);
-                                       return;
-                               } else 
-                                       newline ();
-                       } 
-                               
-                       space ();
-                       if (s is If)
-                               GenerateIf ((If) s);
-                       else if (s is Do)
-                               GenerateDo ((Do) s);
-                       else if (s is While)
-                               GenerateWhile ((While) s);
-                       else if (s is For)
-                               GenerateFor ((For) s);
-                       else if (s is Return)
-                               GenerateReturn ((Return) s);
-                       else if (s is Goto)
-                               GenerateGoto ((Goto) s);
-                       else if (s is Throw)
-                               GenerateThrow ((Throw) s);
-                       else if (s is Break)
-                               output_newline ("break;");
-                       else if (s is Continue)
-                               output_newline ("continue;");
-                       else if (s == EmptyStatement.Value)
-                               output_newline ("/* empty statement */;");
-                       else if (s is Block)
-                               GenerateBlock ((Block) s, doPlacement, embedded);
-                       else if (s is StatementExpression)
-                               GenerateStatementExpression ((StatementExpression) s);
-                       else if (s is Switch)
-                               GenerateSwitch ((Switch) s);
-                       else if (s is Checked)
-                               GenerateChecked ((Checked) s);
-                       else if (s is Unchecked)
-                               GenerateUnchecked ((Unchecked) s);
-                       else if (s is Try)
-                               GenerateTry ((Try) s);
-                       else {
-                               System.Type t = s.GetType ();
-
-                               output ("\n*****UNKNOWN Statement:" + t.ToString ());
-                       }
-               }
-
-               //
-               // embedded is used only for things like the For thing
-               // that has blocks but for display purposes we want to keep
-               // without newlines.
-               void GenerateBlock (Block b, bool doPlacement, bool embedded)
-               {
-                       if (b.Label != null)
-                               output (b.Label + ":");
-
-                       if (!b.Implicit){
-                               if (!doPlacement)
-                                       space ();
-                       
-                               output ("{");
-                               if (!embedded)
-                                       newline ();
-                               indent++;
-                       }
-
-                       if (b.Variables != null){
-                               foreach (DictionaryEntry entry in b.Variables){
-                                       VariableInfo vi = (VariableInfo) entry.Value;
-                                       
-                                       space ();
-                                       output_newline (
-                                               vi.Type + " " +
-                                               (string) entry.Key + ";");
-                               }
-                               newline ();
-                       }
-                       
-                       foreach (Statement s in b.Statements){
-                               GenerateStatement (s, false, true, false);
-                       }
-                       
-                       if (!b.Implicit){
-                               indent--;
-                               ioutput ("}");
-                               if (!embedded)
-                                       newline ();
-                       }
-               }
-               
-               void GenerateMethod (Method m)
-               {
-                       ioutput (GetModifiers (m.ModFlags) +
-                                m.ReturnType + " " +
-                                m.Name + " (");
-                       GenerateParameters (m.Parameters);
-                       output_newline (")");
-                       
-
-                       GenerateBlock (m.Block, false, false);
-                       newline ();
-               }
-
-               void GenerateInterfaceMethod (InterfaceMethod imethod)
-               {
-                       space ();
-                       output (imethod.IsNew ? "new " : "");
-                       output (imethod.ReturnType + " " + imethod.Name + " (");
-                       GenerateParameters (imethod.Parameters);
-                       output (");");
-                       newline ();
-               }
-
-               void GenerateInterfaceProperty (InterfaceProperty iprop)
-               {
-                       space ();
-                       output (iprop.IsNew ? "new " : "");
-                       output (iprop.Type + " " + iprop.Name + " { ");
-                       if (iprop.HasGet) output ("get; ");
-                       if (iprop.HasSet) output ("set; ");
-                       output ("}");
-                       newline ();
-               }
-               
-               void GenerateInterfaceEvent (InterfaceEvent ievent)
-               {
-                       space ();
-                       output ((ievent.IsNew ? "new " : "") + "event ");
-                       output (ievent.Type + " " + ievent.Name + ";");
-                       newline ();
-               }
-               
-               void GenerateInterfaceIndexer (InterfaceIndexer iindexer)
-               {
-                       space ();
-                       output (iindexer.IsNew ? "new " : "");
-                       output (iindexer.Type + " this [");
-                       output (iindexer.Parameters + "] {");
-                       if (iindexer.HasGet) output ("get; ");
-                       if (iindexer.HasSet) output ("set; ");
-                       output ("}");
-                       newline ();
-               }
-
-               string GenIfaceBases (Interface iface)
-               {
-                       return GenBases (iface.Bases);
-               }
-               
-               void GenerateInterface (Interface iface)
-               {
-                       ioutput (GetModifiers (iface.ModFlags) + "interface " +
-                                ClassName (iface.Name) + GenIfaceBases (iface) + " {");
-                       newline ();
-                       indent++;
-                       
-                       if (iface.InterfaceMethods != null){
-                               foreach (DictionaryEntry de in iface.InterfaceMethods){
-                                       InterfaceMethod method = (InterfaceMethod) de.Value;
-                                       GenerateInterfaceMethod (method);
-                               }
-                       }
-
-                       if (iface.InterfaceProperties != null){
-                               foreach (DictionaryEntry de in iface.InterfaceProperties){
-                                       InterfaceProperty iprop = (InterfaceProperty) de.Value;
-                                       GenerateInterfaceProperty (iprop);
-                               }
-                       }
-
-                       if (iface.InterfaceEvents != null){
-                               foreach (DictionaryEntry de in iface.InterfaceEvents){
-                                       InterfaceEvent ievent = (InterfaceEvent) de.Value;
-                                       GenerateInterfaceEvent (ievent);
-                               }
-                       }
-
-                       if (iface.InterfaceIndexers != null){
-                               foreach (DictionaryEntry de in iface.InterfaceIndexers){
-                                       InterfaceIndexer iindexer = (InterfaceIndexer) de.Value;
-                                       GenerateInterfaceIndexer (iindexer);
-                               }
-                       }
-                       indent--;
-                       ioutput ("}");
-                       newline ();
-                       newline ();
-               }
-
-               void GenerateField (Field f)
-               {
-                       space ();
-                       output (GetModifiers (f.ModFlags) + 
-                               f.Type + " " + f.Name);
-                       if (f.Initializer != null){
-                               if (f.Initializer is Expression)
-                                       output (" = " + GetExpression ((Expression) f.Initializer, 0));
-                               else
-                                       output ("ADD SUPPORT FOR ARRAYS");
-                       }
-                       output (";");
-                       newline ();
-               }
-
-               void GenerateConstructor (Constructor c)
-               {
-                       ConstructorInitializer init = c.Initializer;
-
-                       space ();
-                       output (GetModifiers (c.ModFlags) + c.Name + " (");
-                       GenerateParameters (c.Parameters);
-                       output (")");
-
-                       if (init != null){
-                               if (init is ConstructorThisInitializer)
-                                       output (": this (");
-                               else
-                                       output (": base (");
-                               output (GetArguments (init.Arguments));
-                               output (")");
-                       }
-                       newline ();
-                       GenerateBlock (c.Block, false, false);
-               }
-
-               void GenerateProperty (Property prop)
-               {
-                       space ();
-                       output (GetModifiers (prop.ModFlags) + prop.Type +
-                               " " + prop.Name + " {");
-                       newline ();
-                       indent++;
-                       if (prop.Get != null){
-                               space ();
-                               output ("get ");
-                               GenerateBlock (prop.Get, false, false);
-                               newline (); 
-                       }
-
-                       if (prop.Set != null){
-                               space ();
-                               output ("set ");
-                               GenerateBlock (prop.Set, false, false);
-                       }
-                       indent--;
-                       space ();
-                       output ("}");
-                       newline ();
-               }
-
-               void GenerateEnum (CIR.Enum e)
-               {
-                       space ();
-                       output ("enum " + e.Name + " {");
-                       newline ();
-
-                       indent++;
-                       foreach (string name in e.ValueNames){
-                               Expression expr = e [name];
-
-                               space ();
-
-                               output (name);
-                               if (expr != null)
-                                       output (" = " + GetExpression (expr, 0));
-
-                               output (",");
-                               newline ();
-                       }
-                       indent--;
-                       space ();
-                       output_newline ("}");
-               }
-               
-               void GenerateTypeContainerData (TypeContainer tc)
-               {
-                       if (tc.Constants != null){
-                               foreach (Constant c in tc.Constants){
-                                       space ();
-
-                                       output ("const " + c.ConstantType + " " + c.Name + " = " +
-                                               GetExpression (c.Expr, 0) + ";");
-                                       newline ();
-                               }
-                               newline ();
-                       }
-
-                       if (tc.Enums != null){
-                               foreach (CIR.Enum e in tc.Enums)
-                                       GenerateEnum (e);
-                       }
-
-                       if (tc.Fields != null){
-                               foreach (Field f in tc.Fields)
-                                       GenerateField (f);
-                               newline ();
-                       }
-
-                       if (tc.Constructors != null){
-                               foreach (Constructor c in tc.Constructors)
-                                       GenerateConstructor (c);
-
-                               newline ();
-                                       
-                       }
-
-                       if (tc.Properties != null){
-                               foreach (Property prop in tc.Properties)
-                                       GenerateProperty (prop);
-                       }
-                       
-                       GenerateFromTypes (tc);
-                       
-                       if (tc.Methods != null){
-                               foreach (Method m in tc.Methods){
-                                       GenerateMethod (m);
-                               }
-                       }
-               }
-
-               string GetModifiers (int mod_flags)
-               {
-                       string s = "";
-
-                       for (int i = 1; i <= (int) CIR.Modifiers.TOP; i <<= 1){
-                               if ((mod_flags & i) != 0)
-                                       s += Modifiers.Name (i) + " ";
-                       }
-
-                       return s;
-               }
-
-               string ClassName (string name)
-               {
-                       return name;
-                       //return name.Substring (1 + name.LastIndexOf ('.'));
-               }
-
-               string GenBases (ArrayList bases)
-               {
-                       if (bases == null)
-                               return "";
-
-                       string res = ": ";
-                       int top = bases.Count;
-                       for (int i = 0; i < bases.Count; i++){
-                               Type t = (Type) bases [i];
-
-                               res += t.Name;
-                               if (i + 1 != top)
-                                       res += ", ";
-                       }
-                       return res;
-               }
-               
-               string GenClassBases (Class c)
-               {
-                       return GenBases (c.Bases);
-               }
-               
-               void GenerateFromClass (Class c)
-               {
-                       ioutput (GetModifiers (c.ModFlags) + "class " + ClassName (c.Name) +
-                                " " + GenClassBases (c) + " {");
-                       newline ();
-                       indent++;
-                       
-                       GenerateTypeContainerData (c);
-
-                       indent--;
-                       ioutput ("}");
-                       newline ();
-                       newline ();
-               }
-
-               void GenerateFromStruct (Struct s)
-               {
-                       GenerateTypeContainerData (s);
-               }
-               
-               void GenerateFromTypes (TypeContainer types)
-               {
-                       if (types.Types == null)
-                               return;
-                       
-                       foreach (DictionaryEntry de in types.Types){
-                               TypeContainer type = (TypeContainer) de.Value;
-                               
-                               if (type is Class)
-                                       GenerateFromClass ((Class) type);
-                               if (type is Struct)
-                                       GenerateFromStruct ((Struct) type);
-                                       
-                       }
-
-                       if (types.Interfaces != null){
-                               foreach (DictionaryEntry de in types.Interfaces){
-                                       Interface iface = (Interface) de.Value;
-
-                                       GenerateInterface (iface);
-                               }
-                       }
-               }
-               
-               public int Dump (Tree tree, StreamWriter output)
-               {
-                       this.o = output;
-
-                       indent = 0;
-                       GenerateFromTypes (tree.Types);
-
-                       return 0;
-               }
-
-               public void ParseOptions (string options)
-               {
-                       if (options == "tag")
-                               tag_values = true;
-               }
-       }
-}
-
-
diff --git a/mcs/gmcs/old-code.cs b/mcs/gmcs/old-code.cs
deleted file mode 100644 (file)
index cb7c31a..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-#else
-
-               bla bla bla
-               //
-               // This code is more conformant to the spec (it follows it step by step),
-               // but it has not been tested yet, and there is nothing here that is not
-               // caught by the above code.  But it might be a better foundation to improve
-               // on in the future
-               //
-               public ResolveTypeMemberAccess (EmitContext ec, Expression member_lookup,
-                                               Expression left, Location loc)
-               {
-                       if (member_lookup is TypeExpr){
-                               member_lookup.Resolve (ec);
-                               return member_lookup;
-                       }
-                       
-                       if (member_lookup is MethodGroupExpr){
-                               if (!mg.RemoveStaticMethods ()){
-                                       SimpleName.Error120 (loc, mg.Methods [0].Name); 
-                                       return null;
-                               }
-                               
-                               return member_lookup;
-                       }
-                       
-                       if (member_lookup is PropertyExpr){
-                               PropertyExpr pe = (PropertyExpr) member_lookup;
-                                       
-                                       if (!pe.IsStatic){
-                                               SimpleName.Error120 (loc, pe.PropertyInfo.Name);
-                                               return null;
-                                       }
-                                       return pe;
-                       }
-                       
-                       if (member_lookup is FieldExpr){
-                               FieldExpr fe = (FieldExpr) member_lookup;
-                               FieldInfo fi = fe.FieldInfo;
-                               
-                               if (fi is FieldBuilder) {
-                                       Const c = TypeManager.LookupConstant ((FieldBuilder) fi);
-                                       
-                                       if (c != null) {
-                                               object o = c.LookupConstantValue (ec);
-                                               return Constantify (o, fi.FieldType);
-                                       }
-                               }
-                               
-                               if (fi.IsLiteral) {
-                                       Type t = fi.FieldType;
-                                       Type decl_type = fi.DeclaringType;
-                                       object o;
-                                       
-                                       if (fi is FieldBuilder)
-                                               o = TypeManager.GetValue ((FieldBuilder) fi);
-                                       else
-                                               o = fi.GetValue (fi);
-                                       
-                                       if (decl_type.IsSubclassOf (TypeManager.enum_type)) {
-                                               Expression enum_member = MemberLookup (
-                                                       ec, decl_type, "value__", loc); 
-                                               
-                                               Enum en = TypeManager.LookupEnum (decl_type);
-                                               
-                                               Constant c;
-                                               if (en != null)
-                                                       c = Constantify (o, en.UnderlyingType);
-                                               else 
-                                                       c = Constantify (o, enum_member.Type);
-                                               
-                                               return new EnumConstant (c, decl_type);
-                                       }
-                                       
-                                       Expression exp = Constantify (o, t);
-                                       
-                                       return exp;
-                               }
-
-                               if (!fe.FieldInfo.IsStatic){
-                                       error176 (loc, fe.FieldInfo.Name);
-                                       return null;
-                               }
-                               return member_lookup;
-                       }
-
-                       if (member_lookup is EventExpr){
-
-                               EventExpr ee = (EventExpr) member_lookup;
-                               
-                               //
-                               // If the event is local to this class, we transform ourselves into
-                               // a FieldExpr
-                               //
-
-                               Expression ml = MemberLookup (
-                                       ec, ec.TypeContainer.TypeBuilder, ee.EventInfo.Name,
-                                       MemberTypes.Event, AllBindingFlags, loc);
-
-                               if (ml != null) {
-                                       MemberInfo mi = ec.TypeContainer.GetFieldFromEvent ((EventExpr) ml);
-
-                                       ml = ExprClassFromMemberInfo (ec, mi, loc);
-                                       
-                                       if (ml == null) {
-                                               Report.Error (-200, loc, "Internal error!!");
-                                               return null;
-                                       }
-
-                                       return ResolveMemberAccess (ec, ml, left, loc);
-                               }
-
-                               if (!ee.IsStatic) {
-                                       SimpleName.Error120 (loc, ee.EventInfo.Name);
-                                       return null;
-                               }
-                               
-                               return ee;
-                       }
-
-                       Console.WriteLine ("Left is: " + left);
-                       Report.Error (-100, loc, "Support for [" + member_lookup + "] is not present yet");
-                       Environment.Exit (0);
-
-                       return null;
-               }
-               
-               public ResolveInstanceMemberAccess (EmitContext ec, Expression member_lookup,
-                                                   Expression left, Location loc)
-               {
-                       if (member_lookup is MethodGroupExpr){
-                               //
-                               // Instance.MethodGroup
-                               //
-                               if (!mg.RemoveStaticMethods ()){
-                                       error176 (loc, mg.Methods [0].Name);
-                                       return null;
-                               }
-                               
-                               mg.InstanceExpression = left;
-                                       
-                               return member_lookup;
-                       }
-
-                       if (member_lookup is PropertyExpr){
-                               PropertyExpr pe = (PropertyExpr) member_lookup;
-
-                               if (pe.IsStatic){
-                                       error176 (loc, pe.PropertyInfo.Name);
-                                       return null;
-                               }
-                               Console.WriteLine ("HERE *************");
-                               pe.InstanceExpression = left;
-                               
-                               return pe;
-                       }
-
-                       Type left_type = left.type;
-
-                       if (left_type.IsValueType){
-                       } else {
-                               
-                       }
-               }
-               
-               public override Expression DoResolve (EmitContext ec)
-               {
-                       //
-                       // We are the sole users of ResolveWithSimpleName (ie, the only
-                       // ones that can cope with it
-                       //
-                       expr = expr.ResolveWithSimpleName (ec);
-
-                       if (expr == null)
-                               return null;
-
-                       if (expr is SimpleName){
-                               SimpleName child_expr = (SimpleName) expr;
-                               
-                               expr = new SimpleName (child_expr.Name + "." + Identifier, loc);
-
-                               return expr.ResolveWithSimpleName (ec);
-                       }
-
-                       //
-                       // Handle enums here when they are in transit.
-                       // Note that we cannot afford to hit MemberLookup in this case because
-                       // it will fail to find any members at all (Why?)
-                       //
-
-                       Type expr_type = expr.Type;
-                       if (expr_type.IsSubclassOf (TypeManager.enum_type)) {
-                               
-                               Enum en = TypeManager.LookupEnum (expr_type);
-                               
-                               if (en != null) {
-                                       object value = en.LookupEnumValue (ec, Identifier, loc);
-
-                                       if (value == null)
-                                               return null;
-                                       
-                                       Constant c = Constantify (value, en.UnderlyingType);
-                                       return new EnumConstant (c, expr_type);
-                               }
-                       }
-
-                       member_lookup = MemberLookup (ec, expr.Type, Identifier, loc);
-
-                       if (member_lookup == null)
-                               return null;
-
-                       if (expr is TypeExpr)
-                               return ResolveTypeMemberAccess (ec, member_lookup, expr, loc);
-                       else
-                               return ResolveInstanceMemberAccess (ec, member_lookup, expr, loc);
-               }
-#endif
diff --git a/mcs/gmcs/sample-hello.cs b/mcs/gmcs/sample-hello.cs
deleted file mode 100644 (file)
index af2ea14..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using Generics;
-
-namespace Test
-{
-       public class Bar : Foo
-       {
-               public void Hello (Stack<int> stack)
-               {
-                       Console.WriteLine ("Hello Generic World!");
-                       Console.WriteLine (stack);
-                       Console.WriteLine (stack.GetType ());
-               }
-
-               public Stack<int> Test ()
-               {
-                       return Driver.int_stack;
-               }
-
-               public static void Main ()
-               {
-                       Foo foo = new Bar ();
-                       Driver.Init (foo);
-                       Stack<int> a = Driver.int_stack;
-                       Console.WriteLine ("STACK: {0}", a);
-                       foo.Hello (a);
-               }
-       }
-}
diff --git a/mcs/gmcs/sample-stack.il b/mcs/gmcs/sample-stack.il
deleted file mode 100644 (file)
index e0fb904..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-.assembly sample-stack {}
-
-.namespace Generics
-{
-       .class interface public abstract Foo
-       {
-               .method public virtual hidebysig newslot abstract instance default void Hello(class Generics.Stack<int32> stack)
-               {
-               }
-       }
-
-       .class public beforefieldinit Driver extends [mscorlib]System.Object
-       {
-               .field static public class Generics.Stack<int32> int_stack
-               .field static public class Generics.Stack<string> string_stack
-
-               .method public hidebysig specialname rtspecialname instance default void .ctor()
-               {
-                       ldarg.0
-                       call instance void valuetype [corlib]System.Object::.ctor()
-                       ret
-               }
-
-               .method public static void Init (class Generics.Foo foo)
-               {
-                       newobj instance void class Generics.Stack<int32>::.ctor ()
-                       stsfld class Generics.Stack<int32> Generics.Driver::int_stack
-
-                       newobj instance void class Generics.Stack<string>::.ctor ()
-                       stsfld class Generics.Stack<string> Generics.Driver::string_stack
-
-                       ldarg.0
-                       ldsfld class Generics.Stack<int32> Generics.Driver::int_stack
-                       callvirt instance void class Generics.Foo::Hello(class Generics.Stack<int32>)
-
-                       ret
-               }
-       }
-
-       .class public Stack<T> extends [mscorlib]System.Object
-       {
-               .field private int32 size
-               .field private !0[] data
-
-               .method public instance void .ctor ()
-               {
-                       ldarg.0
-                       call instance void [mscorlib]System.Object::.ctor ()
-                       ldarg.0
-                       ldc.i4.s 100
-                       newarr !0
-                       stfld !0[] class Generics.Stack<!0>::data
-                       ldarg.0
-                       ldc.i4.m1
-                       stfld int32 class Generics.Stack<!0>::size
-                       ret
-               }
-
-               .method public instance void Push (!0 item)
-               {
-                       .locals init (int32 temp)
-
-                       ldarg.0
-                       ldfld !0[] class Generics.Stack<!0>::data
-                       ldarg.0
-                       dup
-
-                       ldfld int32 class Generics.Stack<!0>::size
-                       ldc.i4.1
-                       add
-                       dup
-                       stloc.0
-                       stfld int32 class Generics.Stack<!0>::size
-                       ldloc.0
-                       ldarg.1
-                       stelem !0
-                       ret
-               }
-                  
-               .method public instance !0 Pop ()
-               {
-                       .locals init (!0, int32)
-
-                       ldarg.0
-                       ldfld !0[] class Generics.Stack<!0>::data
-                       ldarg.0
-                       dup
-
-                       ldfld int32 class Generics.Stack<!0>::size
-                       dup
-                       stloc.1
-                       ldc.i4.1
-                       sub
-                       stfld int32 class Generics.Stack<!0>::size
-                       ldloc.1
-                       ldelem !0
-                       stloc.0
-                       ldloc.0
-
-                       ret
-               }
-       }
-}