[svn] r6234: nemerle/trunk/ncc: codedom/NemerleCodeGenerator.n external/LibrariesLoader.n

nazgul svnadmin at nemerle.org
Sat May 6 00:28:37 CEST 2006


Log:
Fix some bugs in code dom implementation

Author: nazgul
Date: Sat May  6 00:28:33 2006
New Revision: 6234

Modified:
   nemerle/trunk/ncc/codedom/NemerleCodeGenerator.n
   nemerle/trunk/ncc/external/LibrariesLoader.n

Modified: nemerle/trunk/ncc/codedom/NemerleCodeGenerator.n
==============================================================================
--- nemerle/trunk/ncc/codedom/NemerleCodeGenerator.n	(original)
+++ nemerle/trunk/ncc/codedom/NemerleCodeGenerator.n	Sat May  6 00:28:33 2006
@@ -456,8 +456,8 @@
       output.Write (GetSafeName (statement.Name));
 
       def initExpression = statement.InitExpression;
-      output.Write(" = ");
       if (initExpression != null) {
+        output.Write(" = ");
         GenerateExpression( initExpression );
         match (initExpression) {
           | x is CodePrimitiveExpression =>
@@ -470,16 +470,14 @@
         }
       }
       else {
-        /// FIXME: we should check if it is value type and emit null or () ctor
         if (statement.Type.ArrayElementType != null) {
+          output.Write(" = ");
           output.Write(NullToken);
           output.Write(" : ");
           OutputType (statement.Type);
         }
-        else {
-          output.Write (statement.Type.BaseType);
-          output.Write (" ()");
-        }
+        else 
+          ()
       }
       unless (dont_write_semicolon)
         output.WriteLine( ';' );
@@ -549,12 +547,15 @@
     {
       when (attributes %& MemberAttributes.VTableMask == MemberAttributes.New)
         Output.Write("new ");
-      when ((attributes %&& MemberAttributes.Static) ||
-            (attributes %&& MemberAttributes.Const))
+      match (attributes & MemberAttributes.ScopeMask) {
+        | MemberAttributes.Static =>
+          Output.Write("static mutable ");
+        | MemberAttributes.Const =>
         Output.Write("static ");
-//      when (! (attributes %&& MemberAttributes.Const))
+        | _ => 
         Output.Write("mutable ");
     }
+    }
 
     private OutputTypeAttributes (declaration : CodeTypeDeclaration) : void
     {
@@ -943,10 +944,10 @@
     protected override OutputOperator (op : CodeBinaryOperatorType) : void
     {
       | CodeBinaryOperatorType.BitwiseAnd =>
-        Output.Write(" %& ");
+        Output.Write(" & ");
               
       | CodeBinaryOperatorType.BitwiseOr =>
-        Output.Write(" %| ");
+        Output.Write(" | ");
                 
       | _ =>
         base.OutputOperator(op);
@@ -981,9 +982,9 @@
       def arrayType = ty.ArrayElementType;
       def output =
         if ( arrayType != null ) {
-          "array <" +
+          "array [" +
           (if (ty.ArrayRank > 1) { ty.ArrayRank.ToString () + ", " } else "") +
-          GetTypeOutput (arrayType) + ">";
+          GetTypeOutput (arrayType) + "]";
         }
         else
           match (ty.BaseType.ToLower(System.Globalization.CultureInfo.InvariantCulture))

Modified: nemerle/trunk/ncc/external/LibrariesLoader.n
==============================================================================
--- nemerle/trunk/ncc/external/LibrariesLoader.n	(original)
+++ nemerle/trunk/ncc/external/LibrariesLoader.n	Sat May  6 00:28:33 2006
@@ -65,7 +65,7 @@
       
       // include current directory and directories where 
       // mscorlib.dll, System.dll and Nemerle.dll reside
-      _lib_path = [".",
+      _lib_path = [System.Environment.CurrentDirectory,
                     assembly_dir (typeof (Nemerle.Core.AssertionException)),
                     assembly_dir (typeof (System.Text.RegularExpressions.Match)),
                     assembly_dir (typeof (LibraryReferenceManager)),                    



More information about the svn mailing list