Пример #1
0
        public IDataType TryGetTypeByName(string name)
        {
            IDataType dt;

            if (!_nameToType.TryGetValue(name, out dt))
            {
                _nameToType[name] = dt = Cache(_baseCompiler.TryGetTypeByName(name));
            }
            return(dt);
        }
Пример #2
0
        public AtomicValue Parse(string value, TypeName typeName, FileSourceInfo sourceInfo)
        {
            var dataType = _compiler.TryGetTypeByName(typeName.FullName);

            if (dataType == null)
            {
                throw new Exception("Data type not found: " + typeName.FullName);
            }

            return(Parse(value, dataType, sourceInfo));
        }
Пример #3
0
        Optional <IDataType> TryGetCompiledType(string typeName)
        {
            var baseDataType = _realCompiler.TryGetTypeByName(typeName);

            if (baseDataType != null)
            {
                return(Optional.Some(baseDataType));
            }

            foreach (var ns in Configuration.DefaultNamespaces)
            {
                var bd = _realCompiler.TryGetTypeByName(ns + "." + typeName);
                if (bd != null)
                {
                    return(Optional.Some(bd));
                }
            }

            return(Optional.None());
        }
Пример #4
0
        public IDataType TryGetTypeByName(string name)
        {
            IDataType res;

            if (!_nameToTypeCache.TryGetValue(name, out res))
            {
                if (!_ghostTypeDict.TryGetValue(name, out res))
                {
                    res = _baseCompiler.TryGetTypeByName(name);
                }
                if (res != null)
                {
                    _nameToTypeCache.Add(name, res);
                }
            }
            return(res);
        }