static void Main(string[] args) { if (args.Length != 2) { return; } string rootPath = args[0]; string format = args[1]; // Log.ApplyDefaultsForConsoleApplication(); try { using (LocalProvider provider = new LocalProvider(rootPath)) { FileSpecification specification = new FileSpecification ( IrbisPath.MasterFile, provider.Database, format ); string source = provider.ReadFile(specification); if (string.IsNullOrEmpty(source)) { Console.WriteLine("No file: {0}", format); } else { PftContext context = new PftContext(null); context.SetProvider(provider); PftFormatter formatter = new PftFormatter(context); formatter.ParseProgram(source); PftProgram program = formatter.Program; AbstractOutput console = new ConsoleOutput(); PftPrettyPrinter printer = new PftPrettyPrinter(); console.WriteLine(string.Empty); console.WriteLine(new string('=', 60)); console.WriteLine(string.Empty); console.WriteLine(string.Empty); program.PrettyPrint(printer); console.WriteLine(printer.ToString()); } } } catch (Exception exception) { Console.WriteLine(exception); } }
static void Main(string[] args) { if (args.Length != 3) { return; } string rootPath = args[0]; string fileName = args[1]; string format = args[2]; Log.ApplyDefaultsForConsoleApplication(); try { using (LocalProvider provider = new LocalProvider(rootPath)) { FileSpecification specification = new FileSpecification ( IrbisPath.MasterFile, provider.Database, format ); string source = provider.ReadFile(specification); if (string.IsNullOrEmpty(source)) { Console.WriteLine("No file: {0}", format); } else { PftContext context = new PftContext(null); context.SetProvider(provider); PftFormatter formatter = new PftFormatter(context); formatter.ParseProgram(source); PftSerializer.Save(formatter.Program, fileName); PftProgram program = (PftProgram)PftSerializer.Read(fileName); PftSerializationUtility.VerifyDeserializedProgram ( formatter.Program, program ); PftNodeInfo nodeInfo = program.GetNodeInfo(); AbstractOutput console = new ConsoleOutput(); PftNodeInfo.Dump(console, nodeInfo, 0); byte[] bytes = PftSerializer.ToMemory(formatter.Program); for (int i = 0; i < 10000; i++) { PftProgram restoredProgram = (PftProgram)PftSerializer.FromMemory(bytes); console.WriteLine("{0}", i + 1); //console.WriteLine(restoredProgram.ToString()); } PftPrettyPrinter printer = new PftPrettyPrinter(); program.PrettyPrint(printer); console.WriteLine(printer.ToString()); } } } catch (Exception exception) { Console.WriteLine(exception); } }