public ILanguageRuntime Load(IGrammarSource source) { var provider = new NamedLanguageProvider(source); ILanguageRuntime result; ResourceContext.Instance.LoadOrBuild(provider, out result); return result; }
public ILanguageRuntime Load(IGrammarSource name) { var cilLanguageName = name as CilGrammarSource; if (cilLanguageName == null) { return null; } var typeName = cilLanguageName.LanguageTypeName; string[] assemblyNameCandidates = { cilLanguageName.SourceAssembly.GetName().Name, cilLanguageName.SourceAssembly.GetName().Name + ".Derived" }; foreach (var assemblyName in assemblyNameCandidates) { var fullTypeName = typeName + ", " + assemblyName; var type = Type.GetType(fullTypeName); if (type == null) { continue; } return (ILanguageRuntime)Activator.CreateInstance(type, cilLanguageName); } return null; }
public Grammar Read(IGrammarSource source, ILogging logging) { var cilSource = source as CilGrammarSource; if (cilSource == null) { return(null); } this.logging = logging; CilGrammar definition = null; logging.WithTimeLogging( cilSource.LanguageName, cilSource.Origin, () => { definition = new CilGrammar(cilSource, logging); }, "parsing language definition"); if (definition == null || !definition.IsValid) { return(null); } var grammar = BuildGrammar(definition); grammar.Options = (IronText.Reflection.RuntimeOptions)Attributes.First <LanguageAttribute>(cilSource.DefinitionType).Flags; return(grammar); }
public ILanguageRuntime Load(IGrammarSource name) { var cilLanguageName = name as CilGrammarSource; if (cilLanguageName == null) { return(null); } var typeName = cilLanguageName.LanguageTypeName; string[] assemblyNameCandidates = { cilLanguageName.SourceAssembly.GetName().Name, cilLanguageName.SourceAssembly.GetName().Name + ".Derived" }; foreach (var assemblyName in assemblyNameCandidates) { var fullTypeName = typeName + ", " + assemblyName; var type = Type.GetType(fullTypeName); if (type == null) { continue; } return((ILanguageRuntime)Activator.CreateInstance(type, cilLanguageName)); } return(null); }
public static ILanguageRuntime Get(IGrammarSource source) { ILanguageRuntime result; if (languages.TryGetValue(source, out result)) { return(result); } else { var loader = GetLoader() ?? new CilExistingLanguageLoader(); result = loader.Load(source); if (result == null) { throw new InvalidOperationException( string.Format( "Unable to load language '{0}'.", source.LanguageName)); } if (!IsBootstrap(result)) { languages[source] = result; } ((IInternalInitializable)result).Init(); } return(result); }
public Grammar Read(IGrammarSource source, ILogging logging) { var cilSource = source as CilGrammarSource; if (cilSource == null) { return null; } this.logging = logging; CilGrammar definition = null; logging.WithTimeLogging( cilSource.LanguageName, cilSource.Origin, () => { definition = new CilGrammar(cilSource, logging); }, "parsing language definition"); if (definition == null || !definition.IsValid) { return null; } var grammar = BuildGrammar(definition); grammar.Options = (IronText.Reflection.RuntimeOptions)Attributes.First<LanguageAttribute>(cilSource.DefinitionType).Flags; return grammar; }
public ILanguageRuntime Load(IGrammarSource source) { var provider = new NamedLanguageProvider(source); ILanguageRuntime result; ResourceContext.Instance.LoadOrBuild(provider, out result); return(result); }
internal ReportData( IGrammarSource source, LanguageData data, ParserConflictInfo[] parserConflicts, DotState[] parserStates) { this.source = source; this.data = data; this.parserConflicts = parserConflicts; this.parserStates = parserStates; }
public NamedLanguageProvider(IGrammarSource languageName) { this.languageName = languageName; }
public virtual Grammar GetGrammar(IGrammarSource grammarSource) { return(new Grammar(grammarSource.FilePath)); }
public LanguageDataProvider(IGrammarSource source, bool bootstrap) { this.source = source; this.bootstrap = bootstrap; this.Getter = Build; }