Exemple #1
0
        /// <summary>
        /// Builds the fixture parser
        /// </summary>
        /// <returns>The fixture parser assembly</returns>
        private static AssemblyReflection BuildFixtureParser()
        {
            Stream          stream1 = typeof(Program).Assembly.GetManifestResourceStream("Hime.Tests.Driver.Resources.Fixture.gram");
            Stream          stream2 = typeof(CompilationTask).Assembly.GetManifestResourceStream("Hime.SDK.Sources.Input.HimeGrammar.gram");
            CompilationTask task    = new CompilationTask();

            task.AddInputRaw(stream1);
            task.AddInputRaw(stream2);
            task.GrammarName = "Fixture";
            task.CodeAccess  = Modifier.Public;
            task.Method      = ParsingMethod.LALR1;
            task.Mode        = Mode.Assembly;
            task.Namespace   = "Hime.Tests.Driver";
            task.Execute();
            return(new AssemblyReflection("Fixture.dll"));
        }
Exemple #2
0
        /// <summary>
        /// Generates the parser for the command line
        /// </summary>
        /// <returns>The number of errors (should be 0)</returns>
        private static int GenerateCLParser()
        {
            Stream          stream = typeof(Program).Assembly.GetManifestResourceStream("Hime.HimeCC.Sources.CommandLine.gram");
            CompilationTask task   = new CompilationTask();

            task.Mode = Mode.Source;
            task.AddInputRaw(stream);
            task.Namespace  = "Hime.HimeCC";
            task.CodeAccess = Modifier.Internal;
            task.Method     = ParsingMethod.LALR1;
            Report report = task.Execute();

            return(report.Errors.Count);
        }