diff --git a/CSharpTranslator/antlr2/Translator/JavaPrettyPrinter.g b/CSharpTranslator/antlr2/Translator/JavaPrettyPrinter.g index feaa5b3..24a7bf5 100644 --- a/CSharpTranslator/antlr2/Translator/JavaPrettyPrinter.g +++ b/CSharpTranslator/antlr2/Translator/JavaPrettyPrinter.g @@ -93,7 +93,8 @@ options { private void PrintNL(TextWriter w) { - w.Write("\n"); // Should we take newline from environment? + w.Write("\n"); // Should we be switching to use Environment.NewLine? + //w.Write(Environment.NewLine); if (doIndent) indented = false; } @@ -145,6 +146,35 @@ options { } } + /// + /// Prints standard text at the top of each output file + /// + /// The output destination. + /// Emit Translation Date as part of prelude. + private void PrintFilePrelude(TextWriter w, Boolean emitDate) + { + String stdPrelude = @" +// +// +// This file was translated from C# to Java by CS2J (http://www.cs2j.com). +// +// This code is to be used for evaluation of the CS2J tool ONLY. +// +// For more information about CS2J please contact cs2jcontact@scorm.com +// +"; + + if (emitDate) { + //stdPrelude += "// Translated: " + DateTime.Now.ToString("s") + Environment.NewLine + + // "//" + Environment.NewLine; + + stdPrelude += "// Translated: " + DateTime.Now.ToString("s") + "\n//\n" ; // Switch to Environment.NewLine?? + } + stdPrelude += "\n"; + w.Write(stdPrelude); + } + + // keving: Found this precedence table on the ANTLR site. /** Encodes precedence of various operators; indexed by token type. @@ -236,8 +266,8 @@ options { -compilationUnit [TextWriter w, XmlTextWriter enumXmlWriter, TokenStreamHiddenTokenFilter f] - { filter = f; this.enumXmlWriter = enumXmlWriter; } +compilationUnit [TextWriter w, XmlTextWriter enumXmlWriter, TokenStreamHiddenTokenFilter f, Boolean emitDate] + { filter = f; this.enumXmlWriter = enumXmlWriter; PrintFilePrelude(w, emitDate); } : #( COMPILATION_UNIT packageDefinition[w] useDefinitions[TextWriter.Null] // No output for uses diff --git a/CSharpTranslator/antlr2/Translator/Main.cs b/CSharpTranslator/antlr2/Translator/Main.cs index 3f07b02..044e855 100644 --- a/CSharpTranslator/antlr2/Translator/Main.cs +++ b/CSharpTranslator/antlr2/Translator/Main.cs @@ -93,8 +93,11 @@ namespace RusticiSoftware.Translator internal static DirectoryHT appEnv = new DirectoryHT(null); internal static XmlTextWriter enumXmlWriter; internal static string xmldumpDir = Path.Combine(".", "tmpXMLs"); + internal static Boolean emitTranslationDate = true; + internal static int verbosity = 0; + internal static TokenStreamHiddenTokenFilter filter; @@ -111,6 +114,7 @@ namespace RusticiSoftware.Translator Console.Out.WriteLine("Usage: " + Path.GetFileNameWithoutExtension(System.Environment.GetCommandLineArgs()[0])); Console.Out.WriteLine(" [-help] (this usage message)"); Console.Out.WriteLine(" [-v] (be [somewhat more] verbose, repeat for more verbosity)"); + Console.Out.WriteLine(" [-markDate ] (emit date of Translation into Java Source, default:true)"); Console.Out.WriteLine(" [-showtokens] (the lexer prints the tokenized input to the console)"); Console.Out.WriteLine(" [-showtree][-showcsharp] [-showjavasyntax] [-showjava] (show parse tree at various stages of the translation)"); Console.Out.WriteLine(" [-dumpxml] [-xmldir ] (dump the translation repository as xml files)"); @@ -190,6 +194,11 @@ namespace RusticiSoftware.Translator i++; outDir = args[i]; } + else if (args[i].ToLower().Equals("-markdate") && i < (args.Length - 1)) + { + i++; + emitTranslationDate = !(args[i].ToLower().Equals("false")); + } else if (args[i].ToLower().Equals("-dumpenums") && i < (args.Length - 1)) { i++; @@ -555,7 +564,7 @@ namespace RusticiSoftware.Translator FileInfo outF = new FileInfo(fName); StreamWriter w = new StreamWriter(outF.Create()); JavaPrettyPrinter writer = new JavaPrettyPrinter(); - writer.compilationUnit(netTx.getAST(), w, enumXmlWriter, filter); + writer.compilationUnit(netTx.getAST(), w, enumXmlWriter, filter, emitTranslationDate); w.Close(); }