protected virtual bool declareVariable(Association <ESBindingReference, FileInfo> association) { var file = association.Value; var name = ESFileUtility.filenameWithoutExtensionsFrom(file); if (IsVerbose) { Console.WriteLine("Declaring variable: " + name + " in: " + ThisNamespace.NameString); } var binding = ThisNamespace.declareVariable(name, DefaultVariableAccessPrivilege, null); if (binding == null) { Console.WriteLine("Name binding collision: " + name + " in: " + ThisNamespace.QualifiedName); return(false); } association.Key = binding; return(true); }
public EssenceSharpOptions(IDictionary <string, object> options) : base(options) { essenceSharpPath = GetOption(options, essenceSharpPathKey, ESFileUtility.defaultEssenceSharpPath()); assemblyNameBindings = getStringMapOption(options, assemblyNameBindingsKey); assemblyPathBindings = getStringMapOption(options, assemblyPathBindingsKey); loadLibrariesVerbosely = GetOption(options, loadLibrariesVerboselyKey, false); reportTimings = GetOption(options, reportTimingsKey, false); var pathNamesList = GetOption(options, librarySearchPathsKey, new ReadOnlyCollection <String>(new String[0])); foreach (var name in pathNamesList) { librarySearchPaths.Add(name); } var libraryNamesList = GetOption(options, libraryNamesKey, new ReadOnlyCollection <String>(new String[0])); foreach (var name in libraryNamesList) { libraryNames.Add(name); } }
protected void bindToLanguageOptions(Dictionary <String, Object> protoOptions) { var searchPathBuilder = new StringBuilder(); var userPathnames = LanguageOptions.GetSearchPathsOption(protoOptions); if (userPathnames != null) { foreach (var pathname in userPathnames) { searchPathBuilder.Append(Environment.ExpandEnvironmentVariables(pathname)); searchPathBuilder.Append(Path.PathSeparator); } } ObjectSpace.EssenceSharpPath = LanguageOptions.GetOption(protoOptions, EssenceSharpOptions.essenceSharpPathKey, ESFileUtility.defaultEssenceSharpPath()); searchPathBuilder.Append(ObjectSpace.SharedScriptsPath); protoOptions[EssenceSharpOptions.scriptSearchPathsKey] = searchPathBuilder.ToString(); options = new EssenceSharpOptions(protoOptions); options.assemblyNameBindingsDo((qualifiedNsName, assemblyName) => ObjectSpace.bindNamespaceToAssemblyNamed(qualifiedNsName, assemblyName)); options.assemblyPathBindingsDo((qualifiedNsName, assemblyPath) => ObjectSpace.bindNamespaceToAssemblyAt(qualifiedNsName, new FileInfo(assemblyPath))); foreach (var pathnamePrefix in options.LibrarySearchPaths) { ObjectSpace.LibraryPathBinder.searchPathAddLastIfAbsent(pathnamePrefix); } foreach (var pathnamePrefix in options.SearchPaths) { ObjectSpace.ScriptPathBinder.searchPathAddLastIfAbsent(pathnamePrefix); } }