예제 #1
0
        public static void Main(String[] args)
        {
            Console.WriteLine("start");
            ExpComp.Clear();
            Scanner scanner = new Scanner("D:\\temp\\1.exp");

            ExpComp.parser = new Parser(scanner);
            ExpComp.parser.Parse();

//            foreach (DataFrame frame in ExpComp.dataFrames.Values) {
//                Console.WriteLine(frame.ToString());
//            }
            IModelBuilder modelBuilder = ModelBuilderFactory.getInstance().createBuilder(ModelBuilderFactory.KIF);

            converters.Converter converter = new converters.Converter(modelBuilder);
            IModel             model       = converter.convert(ExpComp.dataFrames.Values);
            SimpleKifFormatter formatter   = new SimpleKifFormatter();

            formatter.write(model, Console.Out);

            //           model.store(Console.Out);


/*
 *          string text = IOUtils.readText("d:\\test\\t.txt");
 *          Console.WriteLine(text);
 *          DependenciesManager dependenciesManager = new DependenciesManager("d:\\test\\t.txt");
 *          dependenciesManager.print();
 */

            Console.ReadKey();
        }
예제 #2
0
        private ICollection getSourceModel()
        {
            //TODO:
            ExpComp.Clear();
            Scanner scanner = new Scanner(_filePath);

            ExpComp.parser = new Parser(scanner);
            ExpComp.parser.Parse();

            return(ExpComp.dataFrames.Values);
        }
예제 #3
0
        private string findInParents(string slotName, DataFrame frame)
        {
            IList parents = frame.isA;

            foreach (string s in parents)
            {
                DataFrame parent = ExpComp.getDataFrame(s);
                if (parent.instanceSlots.Contains(slotName))
                {
                    return(s);
                }
                string mbOwner = findInParents(slotName, parent);
                if (mbOwner != null)
                {
                    return(mbOwner);
                }
            }
            return(null);
        }
예제 #4
0
        public void parse(Knowledge.Editor.AddIn.Environment environment)
        {
            log.Debug(" parsing model ... ");

            try
            {
                string filepath = KnowledgeAdapter.getKnowledgeFilePath(environment);

                ExpComp.Clear();
                Scanner scanner = new Scanner(filepath);
                ExpComp.parser = new Parser(scanner);
                ExpComp.parser.Parse();

                KnowledgeAdapter.filepath = filepath;
                isEmpty = false;

                log.Debug(" building model successed. ");
            }
            catch (Exception e)
            {
                log.Debug(" building model failed. " + e);
            }
        }
예제 #5
0
        public void update(ISubject subject)
        {
            log.Debug(" c# view updating (converting)... ");

            try
            {
                controller.environment.OutputWindowPane.Clear();
                controller.environment.OutputWindowPane.Activate();

                if (!File.Exists(controller.environment.KnowledgeNetFrameworkBaseDir +
                                 "Knowledge.CSharp.Converter.exe"))
                {
                    string error = "\nCan not find Knowledge.CSharp.Converter.exe utility in " +
                                   controller.environment.KnowledgeNetFrameworkBaseDir +
                                   "\nKnowledge converting aborted";

                    log.Debug(error);
                    messageToOutputPane(error);
                    return;
                }

                // TODO: replace project name + debug/release
                messageToOutputPane("\n------ Converter started: Project: Knowledge12," +
                                    "Configuration: Debug Any CPU ------");

                int succeeded = 0;
                int failed    = 0;
                int skipped   = 0;

                foreach (Project project in controller.environment.ApplicationObject.Solution.Projects)
                {
                    string projectFileName = project.FileName;
                    log.Debug("    project = " + projectFileName);
                    foreach (ProjectItem item in project.ProjectItems)
                    {
                        string itemFileName = item.Name;
                        log.Debug("      item =" + itemFileName);

                        if (projectFileName.EndsWith("csproj") && itemFileName.EndsWith(".expert"))
                        {
                            // TODO: prItem.Document.FullName is null !!! for some reason
                            // so RESTRICTION: file inside other dirs will not be found

                            // TODO: ->Anton: System.Exit() replace to return is the file is not found
                            // TODO: ->Anton: flush() should be added, otherwise looks like parser is not ready for this twice actions

                            string workdir = projectFileName.Substring(0, projectFileName.LastIndexOf("\\"));
                            log.Debug(" converting file : " + workdir + "\\" + itemFileName);

                            ExpComp.convert(workdir + "\\" + itemFileName);

                            // Output pane + add file to project
                            // TODO: prItem.Document.FullName is null !!! for some reason
                            if (File.Exists(workdir + "\\" + itemFileName + "_.cs"))
                            {
                                messageToOutputPane("========== Convert: 1 succeeded, 0 failed, 0 skipped ==========");
                                project.ProjectItems.AddFromFile(workdir + "\\" + itemFileName + "_.cs");
                                succeeded++;
                            }
                            else
                            {
                                failed++;
                            }
                        }
                        else
                        {
                            skipped++;
                        }
                    }
                }
                string message = "========== Convert: " + succeeded +
                                 " succeeded, " + failed +
                                 " failed, " + skipped +
                                 " skipped ==========";

                log.Debug(message);
                messageToOutputPane(message);
            }
            catch (Exception e)
            {
                log.Debug(" converting failed. " + e);
            }
        }