public StringLiteralReference(StillOneScriptCore.EntityModel.CustomFunctionModel.Support.FunctionContext context, string val)
            : base(context)
        {
            mNativeVal = val;

            mConvertedValue = this.Context.EngineEnvironment.Convert(mNativeVal);
        }
        public void AddConvertor(StillOneScriptCore.EntityModel.LngObjectsModel._Object obj, bool isRepresentNull)
        {
            lock(LockObj)
            {
                ValidateObj(obj, isRepresentNull);

                var tmpClass = obj.AsClass;

                if (isRepresentNull)
                {
                    if (mNullConverter != null)
                    {
                        throw new System.Exception("Converter Converter for `null` was added yet.");
                    }

                    mNullConverter = tmpClass;
                }
                else
                {
                    if (mConvertorsItems.ContainsKey(obj.MappedType))
                    {
                        throw new System.Exception("Converter Converter for type `" + obj.MappedType.FullName + "` was added yet.");
                    }

                    mConvertorsItems.Add(obj.MappedType, tmpClass);
                }
            }
        }
        public StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.Executed.ResultOfStatement Call(StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.Executed.BaseStatement firstStatement)
        {
            var tmpResult = new StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.Executed.ResultOfStatement();

            var tmpCurrStatement = firstStatement;

            while (true)
            {
                if (tmpCurrStatement == null)
                {
                    tmpResult.OpResultKind = ResultOfStatementKind.Finish;

                    return tmpResult;
                }

                tmpResult = tmpCurrStatement.Call();

                switch (tmpResult.OpResultKind)
                {
                    case ResultOfStatementKind.CallNext:
                        tmpCurrStatement = tmpResult.NextStatement;

                        continue;

                    case ResultOfStatementKind.Finish:
                        tmpResult.OpResultKind = ResultOfStatementKind.Finish;

                        return tmpResult;
                }
            }
        }
Пример #4
0
 protected void BaseStatement_CreateExecutedSupport(StillOneScriptCore.EntityModel.CustomFunctionModel.Support.ExecutedFunctionContext context, StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.Executed.BaseStatement item)
 {
     if(mNextStatement != null)
     {
         item.NextStatement = mNextStatement.CreateExecuted(context);
     }
 }
Пример #5
0
 protected void BaseStatement_SupportClone(StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.BaseStatement item, StillOneScriptCore.EntityModel.CustomFunctionModel.Support.FunctionContext functionContext)
 {
     if (mNextStatement != null)
     {
         item.NextStatement = mNextStatement.Clone(functionContext);
     }
 }
 public void AddParameter(StillOneScriptCore.EntityModel.CustomFunctionModel.Operators.Executed.FunctionParameter parameter)
 {
     lock (LockObj)
     {
         mParams.Add(parameter);
     }
 }
Пример #7
0
        public CommonStorage(StillOneScriptCore.Engine.EngineEnvironment environment)
        {
            mConvertorStorage = new StillOneScriptCore.Engine.Storages.ObjectsStorage.ConvertorStorage();

            mMembersConvertor = new StillOneScriptCore.Engine.Storages.ObjectsStorage.MembersConvertor(environment);

            mVariablesConvertor = new StillOneScriptCore.Engine.Storages.ObjectsStorage.VariablesConvertor(environment);
        }
Пример #8
0
        public void Run(StillOneScriptCore.Engine.EngineEnvironment environment)
        {
            lock(LockObj)
            {
                var tmpConsoleFactory = new Factories.ConsoleFactory(environment);

                tmpConsoleFactory.Run();
            }
        }
Пример #9
0
        public InheritanceInfo(StillOneScriptCore.EntityModel.LngObjectsModel._Object superClass)
        {
            if (superClass == null)
            {
                throw new System.ArgumentNullException("superClass");
            }

            mSuperClass = superClass;
        }
        public _P_NativeInstanceMethod(object obj, System.Reflection.MethodInfo methodInfo, StillOneScriptCore.Engine.IEnvironment environment)
            : base(methodInfo, environment)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            mObject = obj;
        }
        public override Executed.BaseStatement CreateExecuted(StillOneScriptCore.EntityModel.CustomFunctionModel.Support.ExecutedFunctionContext context)
        {
            var tmpObj = new Executed.CodeBlockStatement(context);

            tmpObj.FirstStatement = mFirstStatement.CreateExecuted(context);
         
            this.BaseStatement_CreateExecutedSupport(context, tmpObj);
            
            return tmpObj;
        }
Пример #12
0
        public void Recovery(StillOneScriptCore.Parser.Lexer.Token token)
        {
            var tmpNewList = new List<StillOneScriptCore.Parser.Lexer.Token>() { token };

            if (mList.Count > 0)
            {
                tmpNewList.AddRange(mList.ToList());
            }

            mList = new Queue<StillOneScriptCore.Parser.Lexer.Token>(tmpNewList);
        }
Пример #13
0
        public StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_CustomFunction Clone(StillOneScriptCore.Engine.IEnvironment engineEnvironment)
        {
            var tmpCustomFun = new StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_CustomFunction(engineEnvironment);

            if(mStatement != null)
            {
                tmpCustomFun.Statement = mStatement.Clone(tmpCustomFun.FunctionContext);
            }

            return tmpCustomFun;
        }
Пример #14
0
        public void Run(StillOneScriptCore.Engine.EngineEnvironment environment)
        {
            lock(LockObj)
            {
                environment.Storage.ObjectsStorage = new StillOneScriptCore.Engine.Storages.ObjectsStorage.Storage();

                CreateWorkedObjectsFactories(environment);

                RunWorkedObjectsFactories();
            }
        }
Пример #15
0
        public void Run(StillOneScriptCore.Engine.EngineEnvironment environment)
        {
            lock (LockObj)
            {
                var tmpObj = new StillOneScriptCore.Engine.Storages.OperatorsStorage.OperatorsRegistry();

                environment.Storage.OperatorsRegistry = tmpObj;

                environment.Storage.OperatorsRegistry.STLOperatorsConstants.GetMemberOperator = tmpObj.RegOperator(".");
            }
        }
        public _P_NativeObjectMembersInitializator(System.Type type, StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._I_P_NativeObject instance, MappingOption mappingOption, List<String> membersNames, StillOneScriptCore.Engine.IEnvironment environment)
        {
            this.mType = type;
            mInstance = instance;
            mMappingOption = mappingOption;
            mMembersNames = membersNames;
            mEnvironment = environment;

            InitInstance();

            InitMembers();
        }
        public void AddFeature(StillOneScriptCore.EntityModel.LngObjectsModel.Support.FeaturesOfMember feature)
        {
            lock (LockObj)
            {
                if (mSupports.Contains(feature))
                {
                    return;
                }

                mSupports.Add(feature);
            }
        }
Пример #18
0
        public _P_NativeClass(System.Type type, MappingOption mappingOption, List<String> membersNames, StillOneScriptCore.Engine.IEnvironment environment)
        {
            if(type == null)
            {
                throw new ArgumentNullException("type");
            }

            this.Environment = environment;

            mType = type;

            var tmpInitializator = new StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_NativeObjectMembersInitializator(mType, this, mappingOption, membersNames, environment);
        }
        public override EntityModel.CustomFunctionModel.Statements.BaseStatement Clone(StillOneScriptCore.EntityModel.CustomFunctionModel.Support.FunctionContext functionContext)
        {
            var tmpObj = new StillOneScriptCore.EntityModel.CustomFunctionModel.Statements.CodeBlockStatement(functionContext);

            if (mFirstStatement != null)
            {
                tmpObj.FirstStatement = mFirstStatement.Clone(functionContext);
            }

            this.BaseStatement_SupportClone(tmpObj, functionContext);

            return tmpObj;
        }
Пример #20
0
        protected _P_BaseMethod(System.Reflection.MethodInfo methodInfo, StillOneScriptCore.Engine.IEnvironment environment)
        {
            // disable once DoNotCallOverridableMethodsInConstructor
            this.Environment = environment;

            this.AddFeature(StillOneScriptCore.EntityModel.LngObjectsModel.Support.FeaturesOfMember.Callable);

            mMethodInfo = methodInfo;

            if (mMethodInfo != null)
            {
                InitDeclaring();
            }
        }
Пример #21
0
        private void CreateWorkedObjectsFactories(StillOneScriptCore.Engine.IEnvironment environment)
        {
            mFactories = new List<StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.BaseFactory>();

            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.SuperTypeFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.NullFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.VoidFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.UndefinedFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.NumberFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.BooleanFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.StringFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.FunctionFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.MethodFactory(environment));
            mFactories.Add(new StillOneScriptCore.EntityModel.WorkedObjectsModel.Factories.VariableFactory(environment));
        }
        public _P_NativeInstance(object obj, StillOneScriptCore.Engine.IEnvironment environment)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            mObject = obj;

            mType = mObject.GetType();

            mLngCallableObject = mObject as ILngCallableObject;

            this.Environment = environment;
        }
Пример #23
0
        public void RemoveInstance(StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_BaseInstace instance)
        {
            lock (LockObj)
            {
                if (instance == null)
                {
                    throw new System.ArgumentNullException("instance");
                }

                if (mInstances.Contains(instance))
                {
                    instance.Class = null;

                    mInstances.Remove(instance);
                }
            }
        }
Пример #24
0
        public StillOneScriptCore.EntityModel.LngObjectsModel.Support.IBoundItem Bind(List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.IBoundItem> source, List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal.Parameter> parameters, StillOneScriptCore.EntityModel.LngObjectsModel.Support.ParamsBinderOptions option)
        {
            lock (LockObj)
            {
                if(StillOneScriptCore.Common.TypeHelpers.ListHelper.IsEmpty(parameters))
                {
                    return BindWithOutParams(source);
                }

                if(option == ParamsBinderOptions.ByPositions)
                {
                    return BindByPositionsParams(source, parameters);
                }

                //TODO: finish me!
                throw new NotImplementedException();
                //return null;
            }
        }
        public void AddItem(StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_BaseInstace instance, StillOneScriptCore.EntityModel.LngObjectsModel._Class cls)
        {
            lock(LockObj)
            {
                if (instance == null)
                {
                    throw new ArgumentNullException("instance");
                }

                if (cls == null)
                {
                    throw new ArgumentNullException("cls");
                }

                NAddItem(cls, instance);

                UpdateRanks();
            }
        }
Пример #26
0
        public void Run(StillOneScriptCore.Engine.EngineEnvironment environment)
        {
            lock(LockObj)
            {
                mObjectsStorageFactory = new StillOneScriptCore.Engine.Storages.ObjectsStorage.Factory();

                mOperatorsStorageFactory = new StillOneScriptCore.Engine.Storages.OperatorsStorage.Factory();

                environment.Storage = new StillOneScriptCore.Engine.Storages.CommonStorage(environment);

                mObjectsStorageFactory.Run(environment);

                mOperatorsStorageFactory.Run(environment);

                mSTLFactory = new STL.Factory();

                mSTLFactory.Run(environment);
            }
        }
Пример #27
0
        public StillOneScriptCore.EntityModel.LngObjectsModel._Object Convert(StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_BaseMember member)
        {
            lock(LockObj)
            {
                if(this.mCache.ContainsKey(member))
                {
                    return this.mCache[member];
                }

                StillOneScriptCore.EntityModel.LngObjectsModel._Instance tmpObj = null;

                if(member.IsMethod)
                {
                    tmpObj = this.EngineEnvironment.ObjectsConstants.Method.CreateInstanceByExistingBox(new StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_NativeInstance(member, StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal.MappingOption.ByLNGMap, this.EngineEnvironment));
                }
                else
                {
                    if(member.IsFunction)
                    {
                        tmpObj = this.EngineEnvironment.ObjectsConstants.Function.CreateInstanceByExistingBox(new StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_NativeInstance(member, StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal.MappingOption.ByLNGMap, this.EngineEnvironment));
                    }
                    else
                    {
                        throw new System.NotImplementedException();
                    }
                }

                if (tmpObj == null)
                {
                    return null;
                }

                this.mCache[member] = tmpObj;

                member._Object = tmpObj;

                return tmpObj;
            }
        }
        public StillOneScriptCore.EntityModel.LngObjectsModel._Object Convert(StillOneScriptCore.EntityModel.WorkedObjectsModel._BaseVariable variable)
        {
            lock(LockObj)
            {
                if (this.mCache.ContainsKey(variable))
                {
                    return this.mCache[variable];
                }

                var tmpObj = this.EngineEnvironment.ObjectsConstants.Variable.CreateInstanceByExistingBox(new StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_NativeInstance(variable, StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal.MappingOption.ByLNGMap, this.EngineEnvironment));

                if (tmpObj == null)
                {
                    return null;
                }

                this.mCache[variable] = tmpObj;

                variable._Object = tmpObj;

                return tmpObj;
            }
        }
Пример #29
0
        public void AddName(String name, StillOneScriptCore.EntityModel.LngObjectsModel._Object obj)
        {
            lock(LockObj)
            {
                if (string.IsNullOrWhiteSpace(name))
                {
                    throw new ArgumentNullException("name");
                }

                if(obj == null)
                {
                    throw new ArgumentNullException("obj");
                }

                if(mNamesDict.ContainsKey(name))
                {
                    return;
                }

                mNamesDict.Add(name, obj);

                EmitNameAdded(name);
            }
        }
Пример #30
0
 public _P_NativeClass(System.Type type, MappingOption mappingOption, StillOneScriptCore.Engine.IEnvironment environment)
     : this(type, mappingOption, null, environment)
 {
 }