public static string GetTranslatedCode(string sourceCode)
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            var prevConsoleOut = Console.Out;
            var writer         = new StringWriter();

            Console.SetOut(writer);

            ICharStream  streamInput           = CharStreams.fromstring(sourceCode);
            ITokenSource lexer                 = new ControlScriptLanguageLexer(streamInput);
            ITokenStream flowTokens            = new CommonTokenStream(lexer);
            ControlScriptLanguageParser parser = new ControlScriptLanguageParser(flowTokens);

            Console.WriteLine(codePrefix);
            parser.script();
            Console.WriteLine(codeSuffix);

            Console.SetOut(prevConsoleOut);

            return(writer.ToString());
        }
        static void Main(string[] args)
        {
            Test();
            if (args.Length == 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Usage: ControlScriptLanguage.exe inputfile");
                Console.WriteLine("");
                return;
            }

            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            string filename = args[0];

            //From ANTLR4 Doc (antlr.org).
            ICharStream  streamInput           = CharStreams.fromPath(filename);
            ITokenSource lexer                 = new ControlScriptLanguageLexer(streamInput);
            ITokenStream flowTokens            = new CommonTokenStream(lexer);
            ControlScriptLanguageParser parser = new ControlScriptLanguageParser(flowTokens);

            Console.WriteLine(codePrefix);
            parser.script();
            Console.WriteLine(codeSuffix);
        }