示例#1
0
 public BootstrapLanguage(CilGrammarSource source, LanguageData data)
 {
     this.source        = source;
     this.data          = data;
     this.grammarAction = BuildExecuteRuleAction();
     this.merge         = (int token, object x, object y, object context, IStackLookback <Msg> stackLookback) => y;
 }
示例#2
0
        public void BuildTest()
        {
            const string derivedDll = "CSharpParser.Derived.dll";

            if (File.Exists(derivedDll))
            {
                File.Delete(derivedDll);
            }

            var timer = new Stopwatch();

            timer.Start();

            var name     = new CilGrammarSource(typeof(ICsGrammar));
            var provider = new IronText.MetadataCompiler.LanguageDataProvider(name, false);

            IronText.Build.ResourceContext.Instance.LoadOrBuild(provider);
            var data = provider.Resource;

            timer.Stop();

            // ShowReduceStates(data);
            //ShowSimilarStates(data);
            //ShowSimilarTokens(data);

            Console.WriteLine("Build time = {0}sec", timer.Elapsed.TotalSeconds);
        }
        public LanguageDerivedBuilder(Type definitionType)
        {
            this.languageName = new CilGrammarSource(definitionType);

            var dataProvider = new LanguageDataProvider(languageName, false);

            ResourceContext.Instance.LoadOrBuild(dataProvider, out this.data);

            // TODO: Share abstraction impelementation between languages i.e. shared plan
            this.implementationGenerator = new ImplementationGenerator(
                null,
                IsMethodWithNonNullResult);
        }
示例#4
0
        public void BuildTest()
        {
            const string derivedDll = "CSharpParser.Derived.dll";
            if (File.Exists(derivedDll))
            {
                File.Delete(derivedDll);
            }

            var timer = new Stopwatch();
            timer.Start();

            var name = new CilGrammarSource(typeof(ICsGrammar));
            var provider = new IronText.MetadataCompiler.LanguageDataProvider(name, false);
            IronText.Build.ResourceContext.Instance.LoadOrBuild(provider);
            var data = provider.Resource;
            timer.Stop();

            // ShowReduceStates(data);
            //ShowSimilarStates(data);
            //ShowSimilarTokens(data);

            Console.WriteLine("Build time = {0}sec", timer.Elapsed.TotalSeconds);
        }
示例#5
0
 public LanguageBase(CilGrammarSource name) 
 { 
     this.name = name;
     this.merge = DefaultMerge;
 }
 public CompiledLanguageProvider(CilGrammarSource languageName, IExternalResourceProvider <Assembly> assemblyProvider)
 {
     this.languageName     = languageName;
     this.assemblyProvider = assemblyProvider;
 }