public void DoTranslate(string[] args)
        {
            try
            {
                InitCfgHandlers();

                if (IsNoArgs(args))
                {
                    ShowTutorial();
                    return;
                }

                ParseArgsToTranslatorInput(args);

                LoadIgnoreFileLists();

                GDSTranslator translator = new GDSTranslator();

                GDSTranslator.Output output = translator.Translate(inputToTranslator);

                foreach (string lng in output.codeFileNames.Keys)
                {
                    if (postprocessors.ContainsKey(lng))
                    {
                        postprocessors[lng].Postprocess(inputToTranslator, output);
                    }
                }

                inputToTranslator = null;

                WriteTranslateResult(output);
            }
            catch (FileNotFoundException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        private void WriteTranslateResult(GDSTranslator.Output result)
        {
            foreach (KeyValuePair <string, List <string> > kvp in result.codeFileNames)
            {
                var style = CodeFileDirStyle.ALL_IN_ONE;
                if (dirStyle.ContainsKey(kvp.Key))
                {
                    style = dirStyle[kvp.Key];
                }
                string dirPath = Path.Combine(outputFileDirectory, kvp.Key);
                if (Directory.Exists(dirPath))
                {
                    Directory.Delete(dirPath, true);
                }
                Directory.CreateDirectory(dirPath);

                List <string> names    = kvp.Value;
                List <string> contents = result.codeFileContents[kvp.Key];

                int len = names.Count;
                for (int i = 0; i < len; ++i)
                {
                    switch (style)
                    {
                    case CodeFileDirStyle.SEPARATE:
                    {
                        var subDir = names[i].Split('.')[0];
                        Directory.CreateDirectory(Path.Combine(dirPath, subDir));
                        WriteCodeFile(Path.Combine(dirPath, subDir, names[i]), contents[i]);
                    }
                    break;

                    default:
                    {
                        WriteCodeFile(Path.Combine(dirPath, names[i]), contents[i]);
                    }
                    break;
                    }
                }
            }
        }
Example #3
0
        public override void Postprocess(GDSTranslator.Input input, GDSTranslator.Output result)
        {
            string csharpNamespace = "";

            for (int i = 0; i < input.dstLanguageNames.Length; ++i)
            {
                if ("csharp" == input.dstLanguageNames[i])
                {
                    csharpNamespace = input.namespaceNames[i];
                    break;
                }
            }

            result.codeFileNames["csharp"].Add(CSVPARSER_NAME);
            result.codeFileContents["csharp"].Add(DumpCSVParser(csharpNamespace));

            result.codeFileNames["csharp"].Add(GDS_MANAGER_NAME);
            result.codeFileContents["csharp"].Add(DumpGDSManager(input, csharpNamespace));

            base.Postprocess(input, result);
        }
Example #4
0
 private void Check(GDSTranslator.Input input, GDSTranslator.Output result)
 {
     // TODO : verification.
 }
Example #5
0
 public virtual void Postprocess(GDSTranslator.Input input, GDSTranslator.Output result)
 {
     Check(input, result);
 }