[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