public ClassProvided ResolveClass(string name)
        {
            // try self-originated protected types first
            var localExpr = _locals.Classes.Get(name);

            if (localExpr != null)
            {
                return(localExpr);
            }

            try {
                var expression = _path.GetAnyModuleExpectSingle(name, _moduleUses);
                if (expression != null)
                {
                    if (!_isFireAndForget && !NameAccessModifierExtensions.Visible(expression.First.Visibility, expression.First.ModuleName, _moduleName))
                    {
                        return(null);
                    }

                    _moduleDependencies.AddPathClass(name, expression.Second);
                    return(expression.First);
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.CLASSPROVIDED, name, e);
            }

            return(null);
        }
Esempio n. 2
0
        public ExpressionScriptProvided Resolve(
            string name,
            int numParameters)
        {
            var key = new NameAndParamNum(name, numParameters);

            // try self-originated protected types first
            ExpressionScriptProvided localExpr = _locals.Scripts.Get(key);
            if (localExpr != null) {
                return localExpr;
            }

            try {
                var expression = _path.GetAnyModuleExpectSingle(
                    new NameAndParamNum(name, numParameters),
                    _moduleUses);
                if (expression != null) {
                    if (!_isFireAndForget &&
                        !NameAccessModifierExtensions.Visible(
                        expression.First.Visibility,
                        expression.First.ModuleName,
                        _moduleName)) {
                        return null;
                    }

                    _moduleDependencies.AddPathScript(key, expression.Second);
                    return expression.First;
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.SCRIPT, name, e);
            }

            return null;
        }
Esempio n. 3
0
        public ExpressionDeclItem Resolve(string name)
        {
            // try self-originated protected types first
            ExpressionDeclItem localExpr = _locals.Expressions.Get(name);
            if (localExpr != null) {
                return localExpr;
            }

            try {
                var expression = _path.GetAnyModuleExpectSingle(name, _moduleUses);
                if (expression != null) {
                    if (!_isFireAndForget && !NameAccessModifierExtensions.Visible(
                        expression.First.Visibility,
                        expression.First.ModuleName,
                        _moduleName)) {
                        return null;
                    }

                    _moduleDependencies.AddPathExpression(name, expression.Second);
                    return expression.First;
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.EXPRDECL, name, e);
            }

            return null;
        }
        public ContextMetaData GetContextInfo(string contextName)
        {
            // try self-originated protected types first
            ContextMetaData localContext = locals.Contexts.Get(contextName);
            if (localContext != null) {
                return localContext;
            }

            try {
                Pair<ContextMetaData, string> pair = path.GetAnyModuleExpectSingle(contextName, moduleUses);
                if (pair != null) {
                    if (!isFireAndForget &&
                        !NameAccessModifierExtensions.Visible(
                            pair.First.ContextVisibility,
                            pair.First.ContextModuleName,
                            moduleName)) {
                        return null;
                    }

                    moduleDependencies.AddPathContext(contextName, pair.Second);
                    return pair.First;
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.CONTEXT, contextName, e);
            }

            return null;
        }
        public NamedWindowMetaData Resolve(string namedWindowName)
        {
            // try self-originated protected types first
            var localNamedWindow = locals.NamedWindows.Get(namedWindowName);
            if (localNamedWindow != null) {
                return localNamedWindow;
            }

            try {
                var pair = path.GetAnyModuleExpectSingle(namedWindowName, moduleUses);
                if (pair != null) {
                    if (!isFireAndForget &&
                        !NameAccessModifierExtensions.Visible(
                        pair.First.EventType.Metadata.AccessModifier,
                        pair.First.NamedWindowModuleName,
                        moduleName)) {
                        return null;
                    }

                    moduleDependencies.AddPathNamedWindow(namedWindowName, pair.Second);
                    return pair.First;
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.NAMEDWINDOW, namedWindowName, e);
            }

            return null;
        }
        public TableMetaData Resolve(string tableName)
        {
            TableMetaData metaData = compileTimeRegistry.GetTable(tableName);
            if (metaData != null) {
                return metaData;
            }

            try {
                var data = pathTables.GetAnyModuleExpectSingle(tableName, moduleUses);
                if (data != null) {
                    if (!isFireAndForget && 
                        !NameAccessModifierExtensions.Visible(
                        data.First.TableVisibility,
                        data.First.TableModuleName,
                        moduleName)) {
                        return null;
                    }

                    moduleDependencies.AddPathTable(tableName, data.Second);
                    return data.First;
                }
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.TABLE, tableName, e);
            }

            return null;
        }
        private VariableMetaData ResolvePath(string variableName)
        {
            try {
                var pair = _pathVariables.GetAnyModuleExpectSingle(variableName, _moduleUses);
                if (pair == null) {
                    return null;
                }

                if (!_isFireAndForget &&
                    !NameAccessModifierExtensions.Visible(
                        pair.First.VariableVisibility,
                        pair.First.VariableModuleName,
                        _moduleName)) {
                    return null;
                }

                _moduleDependencies.AddPathVariable(variableName, pair.Second);
                return pair.First;
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.VARIABLE, variableName, e);
            }
        }
Esempio n. 8
0
        private EventType ResolvePath(string typeName)
        {
            try {
                var typeAndModule = Path.GetAnyModuleExpectSingle(typeName, moduleUses);
                if (typeAndModule == null) {
                    return null;
                }

                if (!isFireAndForget &&
                    !NameAccessModifierExtensions.Visible(
                        typeAndModule.First.Metadata.AccessModifier,
                        typeAndModule.Second,
                        moduleName)) {
                    return null;
                }

                moduleDependencies.AddPathEventType(typeName, typeAndModule.Second);
                return typeAndModule.First;
            }
            catch (PathException e) {
                throw CompileTimeResolverUtil.MakePathAmbiguous(PathRegistryObjectType.EVENTTYPE, typeName, e);
            }
        }