示例#1
0
        ScriptTable ParseTable(CodeTable table)
        {
            ScriptContext context = new ScriptContext(m_script, null, this, Executable_Block.None);
            ScriptTable   ret     = m_script.CreateTable();

            foreach (ScriptScriptFunction func in table.Functions)
            {
                func.SetTable(ret);
                ret.SetValue(func.Name, func);
                context.SetVariableForce(func.Name, func);
            }
            foreach (CodeTable.TableVariable variable in table.Variables)
            {
                ScriptObject value = context.ResolveOperand(variable.value);
                if (value is ScriptScriptFunction)
                {
                    ScriptScriptFunction func = (ScriptScriptFunction)value;
                    if (func.IsStaticFunction)
                    {
                        func.SetTable(ret);
                    }
                }
                ret.SetValue(variable.key, value);
                context.SetVariableForce(variable.key.ToString(), value);
            }
            return(ret);
        }
示例#2
0
        private ScriptTable ParseTable(CodeTable table)
        {
            ScriptContext context = new ScriptContext(this.m_script, null, this, Executable_Block.None);
            ScriptTable   table2  = this.m_script.CreateTable();

            //todo
            //table2.Name = table.StackInfo.Breviary.Substring(table.StackInfo.Breviary.LastIndexOf('/')+1);
            //UnityEngine.Debug.Log(table2.Name);
            foreach (ScriptScriptFunction function in table.Functions)
            {
                table2.SetValue(function.Name, function);
                context.SetVariableForce(function.Name, function);
            }
            foreach (CodeTable.TableVariable variable in table.Variables)
            {
                ScriptObject obj2 = context.ResolveOperand(variable.value);
                table2.SetValue(variable.key, obj2);
                context.SetVariableForce(variable.key.ToString(), obj2);
            }
            return(table2);
        }