private ProgramGenerator getGenerator(int programIndex, int difficulty)
 {
     Tuple <WExpr, int>[] programArray = null;
     ProgramGenerator[]   genArray     = null;
     if (difficulty == Generation.LOW)
     {
         programArray = easyBasePrograms;
         genArray     = easyGenerators;
     }
     if (difficulty == Generation.MEDIUM)
     {
         programArray = mediumBasePrograms;
         genArray     = mediumGenerators;
     }
     if (difficulty == Generation.HIGH)
     {
         programArray = hardBasePrograms;
         genArray     = hardGenerators;
     }
     if (genArray == null || programArray == null)
     {
         return(null);
     }
     else
     {
         if (genArray[programIndex] == null)
         {
             genArray[programIndex] = new ProgramGenerator(programArray[programIndex].Item1, filterMode, constMode, builderFilterModes);
         }
         return(genArray[programIndex]);
     }
 }
Пример #2
0
        public Yolol.Grammar.AST.Program Generate()
        {
            var ast = new ProgramGenerator(_random).Generate();

            Console.WriteLine($"\n=====\n{ast}");
            return(ast);
        }
Пример #3
0
        /// <summary>
        /// Generate template program from template body and generate the TemplateKey
        /// </summary>
        /// <param name="templateBody"></param>
        /// <param name="globalsTypes"></param>
        /// <param name="referencedAssemblies"></param>
        /// <returns></returns>
        protected static TemplateInfo GenerateTemplateProgram(string templateBody, Dictionary <string, Type> globalsTypes, List <Assembly> referencedAssemblies)
        {
            var pageTemplateParser = new ProgramGenerator();
            var ti = new TemplateInfo
            {
                TemplateBody         = templateBody,
                GlobalsTypes         = globalsTypes,
                ReferencedAssemblies = referencedAssemblies
            };

            pageTemplateParser.GenerateTemplateProgram(ref ti);
            ti.TemplateKey = ComputeTemplateKey(ti);
            return(ti);
        }
Пример #4
0
        private AppCore()
        {
            _machineProfiles = new MachineProfiles();
            _machine         = new GrblMachine();
            _document        = new Document();
            _generator       = new ProgramGenerator();

            _machineProfiles.ProfileAdded    += _machineProfiles_EventHandler;
            _machineProfiles.ProfileRemoved  += _machineProfiles_EventHandler;
            _machineProfiles.ProfileModified += _machineProfiles_EventHandler;

            settings               = new PersistentSettings();
            settingsTimer          = new DispatcherTimer();
            settingsTimer.Interval = TimeSpan.FromSeconds(10);
            settingsTimer.Tick    += settingsTimer_Tick;
        }
Пример #5
0
        static void Main(string[] args)
        {
            try
            {
                ProgramGenerator.example_render_model(); //render app

                //example_log_modelFactory<Product>(); //log modelform example
                // Example_Pagination();
                //RunConfiguration();
            } catch (Exception ex)
            {
                Console.WriteLine($"Application error {ex.Message}");
                Console.WriteLine($"Application stacktrace {ex.StackTrace}");
            }
            Console.ReadLine();
        }
        static bool numGenerations(WExpr program)
        {
            //ProgramGenerator genNone = new ProgramGenerator(program, WEFilter.Filtermode.NONE, VariableCache.ConstraintMode.NONE, ProgramBuilder.FilterMode.Trivial);
            ProgramGenerator genInputs = new ProgramGenerator(program, WEFilter.Filtermode.INPUTS, VariableCache.ConstraintMode.NONE, ProgramBuilder.FilterMode.Trivial);
            WExpr            newprogram;
            //int countNone = 0;
            //while (genNone.GenerateWExpr(out newprogram))
            //{
            //    ++countNone;
            //}
            int countInputs = 0;

            while (genInputs.GenerateWExpr(out newprogram))
            {
                ++countInputs;
            }
            //Console.WriteLine($"None: {countNone}, Inputs: {countInputs}");
            return(true);
        }
Пример #7
0
        public Form1()
        {
            InitializeComponent();
            SolutionGenerator solution = new SolutionGenerator("FormGeneratorSolution");

            ProjectGenerator project1 = new ProjectGenerator("Project1");
            // Form creation
            FormGenerator         form1         = new FormGenerator("generateForm", project1.Name, "");
            FormDesignerGenerator form1Designer = new FormDesignerGenerator(form1);
            // Program creation
            ProgramGenerator program = new ProgramGenerator(project1.Name, form1);

            // Add to project and solution
            project1.Add(form1);
            project1.Add(form1Designer);
            project1.Add(program);
            solution.Add(project1);

            solution.ExportToFile("Output");
        }
        //static bool toTMAndRun(WExpr program)
        //{
        //    TMCB<int, int> M = program.ToTMCB(-1);
        //    foreach (int[][] input in WhileUtilities.NonNegIntTestInputs(program.GetNumVariables(), 4, program.GetUselessVariables().ToArray()))
        //    {
        //        Console.WriteLine("input:");
        //        Console.WriteLine(WhileUtilities.PrintTapes(input, M.blank));
        //        bool dummy;
        //        int[][] output = M.Run(input, out dummy);
        //        Console.WriteLine("output:");
        //        Console.WriteLine(WhileUtilities.PrintTapes(output, M.blank));
        //        string s = Console.ReadLine();
        //        if (s == "exit")
        //        {
        //            return false;
        //        }
        //    }
        //    return true;
        //}

        static bool generate(WExpr program)
        {
            WExpr            newProgram;
            ProgramGenerator gen = new ProgramGenerator(program, WEFilter.Filtermode.INFINITE, VariableCache.ConstraintMode.NONE, ProgramBuilder.FilterMode.Trivial);

            while (gen.GenerateWExpr(out newProgram))
            {
                Console.WriteLine(newProgram.ToString());
                string s = Console.ReadLine();
                if (s == "exit")
                {
                    return(false);
                }
                if (s == "skip")
                {
                    return(true);
                }
            }
            return(true);
        }
        static bool generationBody(WExpr program)
        {
            ProgramGenerator gen = new ProgramGenerator(program, WEFilter.Filtermode.NONE, VariableCache.ConstraintMode.NONE);

            Console.WriteLine("base:");
            Console.WriteLine(program.ToString());
            WExpr  newProgram;
            int    i     = 0;
            string input = "";

            while (true)
            {
                if (gen.GenerateWExpr(out newProgram))
                {
                    Console.WriteLine($"#{i}:");
                    Console.WriteLine(newProgram.ToString());
                    ++i;
                }
                else
                {
                    Console.WriteLine("No more new programs");
                    break;
                }
                input = Console.ReadLine();
                if (input == "exit")
                {
                    return(false);
                }
                if (input == "skip")
                {
                    break;
                }
                if (input == "enter")
                {
                    int x = 0;
                }
            }
            return(true);
        }
Пример #10
0
 public static void Main()
 {
     Tester.DoTest(new volume0._0071(), @"../../testfiles/volume0/0071.txt");
     ProgramGenerator.Generate(@"../../volume0/_0071.cs", @"../../utils/PointInt.cs");
 }
Пример #11
0
 public ProgramTemplate(ProgramGenerator g)
 {
     this.generator = g;
 }
Пример #12
0
        private void btnStartGenerate_Click(object sender, EventArgs e)
        {
            // TODO: Refactor this code (group generator ->>>>>>)
            // DESKTOP-1RVEUQ2
            // Get list table is selected to generate
            var tables = listBoxDBTable.SelectedItems.Cast <Table>().ToList();

            // Get project information to generate
            var projectInfo = bindingSourceProjectInfo.Current as ProjectInfo;

            if (!projectInfo.IsOKToGenerate())
            {
                return;
            }

            // Start Generate Project
            var solution = new SolutionGenerator(projectInfo.SolutionName);
            var project1 = new ProjectGenerator(projectInfo.ProjectName);

            NamespaceHelper.Instance.ProjectNamespace = project1.Name;

            // Generate Form
            var loginForm         = new LoginFormGenerator();
            var loginFormDesigner = new LoginFormDesignerGenerator(loginForm);

            var viewListTableForm         = new ViewListTableFormGenerator();
            var viewListTableFormDesigner = new ViewListTableFormDesignerGenerator(viewListTableForm);

            var viewTableForm         = new ViewTableFormGenerator();
            var viewTableFormDesigner = new ViewTableFormDesignerGenerator(viewTableForm);

            // Generate Essential Class
            var dbLoader     = new DatabaseLoaderGenerator(tables, DatabaseLoader.Instance.ConnectionStringBuilder);
            var enumFormType = new EnumFormTypeGenerator();
            var program      = new ProgramGenerator(viewListTableForm);

            // Generate Model And Forms
            foreach (var table in tables)
            {
                // Generate Model
                var modelGen    = new ModelGenerator(table);
                var modelDaoGen = new ModelDaoGenerator(table);

                // Generate View Table Form
                var viewConcreteTableForm        = new ViewConcreteTableFormGenerator(table, viewTableForm);
                var viewConreteTableFormDesigner = new ViewConcreteTableFormDesignerGenerator(table.Name, viewConcreteTableForm);

                // Generate Edit Form
                var editForm         = new EditFormGenerator(table);
                var editFormDesigner = new EditFormDesignerGenerator(table, editForm);

                project1.Add(modelGen);
                project1.Add(modelDaoGen);
                project1.Add(viewConcreteTableForm);
                project1.Add(viewConreteTableFormDesigner);
                project1.Add(editForm);
                project1.Add(editFormDesigner);
            }

            // Generate View Table Form Factory
            var viewTableFormFactory = new ViewTableFormFactoryGenerator(tables);

            //-------------------------------------------------------------------------------------------------
            // Add to project and solution
            project1.Add(dbLoader);
            project1.Add(enumFormType);
            project1.Add(program);

            project1.Add(loginForm);
            project1.Add(loginFormDesigner);

            project1.Add(viewListTableForm);
            project1.Add(viewListTableFormDesigner);

            project1.Add(viewTableForm);
            project1.Add(viewTableFormDesigner);

            project1.Add(viewTableFormFactory);

            solution.Add(project1);
            solution.ExportToFile(projectInfo.Path);
            // Copy Custom Hibernate SQL to Generated Project
            CopyHibernateSQLToProject(projectInfo.SolutionPath, project1.Name);

            Close();
        }
Пример #13
0
        static void Main()
        {
            // Referenced Assemblies
            var refAssemblies = new List <Assembly> {
                typeof(Demo).Assembly
            };

            // Globals
            var globals = new Dictionary <string, object>
            {
                {
                    "friends", new List <Friend>
                    {
                        new Friend {
                            Name = "Samantha", Age = 33
                        },
                        new Friend {
                            Name = "Kim", Age = 35
                        },
                        new Friend {
                            Name = "Sandra", Age = 22
                        },
                        new Friend {
                            Name = "Natalie", Age = 20
                        }
                    }
                }
            };
            var xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(Resources.Macros);
            globals.Add("xmlDocsList", new XmlDocumentList {
                xmlDoc
            });
            globals.Add("xmlDocsDictRecursive", new XmlDocumentDictRecursive
            {
                { xmlDoc, new XmlDocumentDictRecursive {
                      { xmlDoc, null }
                  } }
            });
            globals.Add("xmlDocsDictListTuple", new Dictionary <XmlDocument, List <Tuple <string, string> > >
            {
                { xmlDoc, new List <Tuple <string, string> > {
                      new Tuple <string, string>("a", "b")
                  } }
            });

            // Globals types
            var globalsTypes = new Dictionary <string, Type>();

            foreach (var kw in globals)
            {
                globalsTypes.Add(kw.Key, kw.Value.GetType());
            }

            try
            {
                var sw = new Stopwatch();

                // Basic test
                Console.WriteLine("Basic tests:");
                Console.WriteLine("=======================================");
                sw.Start();
                Console.WriteLine(new Template("Hello ${w}!").Render(new Dictionary <string, object> {
                    { "w", "world" }
                }));
                sw.Stop();
                Console.WriteLine("{0} ms", sw.ElapsedMilliseconds);

                // Template program generator speed tests
                Console.WriteLine();
                Console.WriteLine("Template program generator speed tests:");
                Console.WriteLine("=======================================");
                sw.Reset();
                sw.Start();
                var programGenerator = new ProgramGenerator();
                for (int i = 0; i < 5; i++)
                {
                    sw.Reset();
                    sw.Start();
                    var ti = new TemplateInfo
                    {
                        TemplateBody         = Resources.Main,
                        GlobalsTypes         = globalsTypes,
                        ReferencedAssemblies = refAssemblies
                    };
                    programGenerator.GenerateTemplateProgram(ref ti);
                    sw.Stop();
                    Console.WriteLine("{0}: {1} ms", i + 1, sw.ElapsedMilliseconds);
                }
                sw.Stop();

                // Template generation speed tests
                Console.WriteLine();
                Console.WriteLine("Template compilation speed tests:");
                Console.WriteLine("=================================");
                var template = new Template(Resources.Main, globalsTypes, refAssemblies);
                for (int i = 0; i < 5; i++)
                {
                    sw.Reset();
                    sw.Start();
                    template.Compile();
                    sw.Stop();
                    Console.WriteLine("{0}: {1} ms", i + 1, sw.ElapsedMilliseconds);
                }

                // FS Template cache no. 1
                Console.WriteLine();
                Console.WriteLine("FS template cache no.1");
                Console.WriteLine("======================");
                string cacheFolder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Template Cache");
                if (!Directory.Exists(cacheFolder))
                {
                    Directory.CreateDirectory(cacheFolder);
                }
                var cache1 = new FileSystemTemplateCache(cacheFolder, true, @"Demo_{key}.dll");
                template.TemplateCache = cache1;
                string result = "";
                for (int i = 0; i < 5; i++)
                {
                    sw.Reset();
                    sw.Start();
                    result = template.Render(globals);
                    sw.Stop();
                    Console.WriteLine("{0}: {1} ms", i + 1, sw.ElapsedMilliseconds);
                }
                Console.WriteLine();

                // FS Template cache no. 2
                Console.WriteLine();
                Console.WriteLine("FS template cache no.2 (loading generated templates):");
                Console.WriteLine("=====================================================");
                var cache2 = new FileSystemTemplateCache(cacheFolder, false, @"Demo_{key}.dll");
                template.TemplateCache = cache2;
                for (int i = 0; i < 5; i++)
                {
                    sw.Reset();
                    sw.Start();
                    template.Render(globals);
                    sw.Stop();
                    Console.WriteLine("{0}: {1} ms", i + 1, sw.ElapsedMilliseconds);
                }

                // Memory Template cache
                Console.WriteLine();
                Console.WriteLine("Memory template cache:");
                Console.WriteLine("======================");
                var cache3 = new MemoryTemplateCache();
                template.TemplateCache = cache3;
                for (int i = 0; i < 5; i++)
                {
                    sw.Reset();
                    sw.Start();
                    template.Render(globals);
                    sw.Stop();
                    Console.WriteLine("{0}: {1} ms", i + 1, sw.ElapsedMilliseconds);
                }

                Console.WriteLine();
                Console.WriteLine("Render result:");
                Console.WriteLine("==============");
                Console.WriteLine(result);
            }
            catch (TemplateParseException ex)
            {
                Console.WriteLine("");
                Console.WriteLine("-------------------------------");
                Console.WriteLine(ex.Message);
                Console.WriteLine("-------------------------------");
            }
            catch (CompileSourceException ex)
            {
                Console.WriteLine("");
                Console.WriteLine("-------------------------------");
                Console.WriteLine(ex.Message);
                Console.WriteLine("-------------------------------");
            }
            catch (RenderTemplateException ex)
            {
                Console.WriteLine("");
                Console.WriteLine("-------------------------------");
                Console.WriteLine(ex.Message);
                Console.WriteLine("-------------------------------");
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("-------------------------------");
                Console.WriteLine(ex.Message);
                Console.WriteLine("-------------------------------");
            }

            Console.WriteLine("");
            Console.WriteLine("Press any key ...");
            Console.ReadKey();
        }