Пример #1
0
 protected override void Load(Dsl.StatementData statementData, SkillInstance instance)
 {
     if (null != m_Load2)
     {
         m_Load2.call(m_Self, statementData, instance);
     }
 }
Пример #2
0
 protected override void Load(Dsl.StatementData statementData)
 {
     if (null != m_Plugin)
     {
         m_Plugin.LoadStatementData(statementData);
     }
 }
Пример #3
0
 public bool Init(Dsl.ISyntaxComponent config)
 {
     m_LoadSuccess = true;
     m_Config      = config;
     Dsl.CallData callData = config as Dsl.CallData;
     if (null != callData)
     {
         Load(callData);
     }
     else
     {
         Dsl.FunctionData funcData = config as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData);
         }
         else
         {
             Dsl.StatementData statementData = config as Dsl.StatementData;
             if (null != statementData)
             {
                 //是否支持语句类型的命令语法?
                 Load(statementData);
             }
             else
             {
                 //error
             }
         }
     }
     return(m_LoadSuccess);
 }
Пример #4
0
 protected override void Load(Dsl.StatementData statementData)
 {
     if (null != m_Load3)
     {
         m_Load3.call(m_Self, statementData);
     }
 }
Пример #5
0
 public void Init(Dsl.ISyntaxComponent config, SkillInstance instance)
 {
     m_Name = config.GetId();
     Dsl.CallData callData = config as Dsl.CallData;
     if (null != callData)
     {
         Load(callData, instance);
     }
     else
     {
         Dsl.FunctionData funcData = config as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData, instance);
         }
         else
         {
             Dsl.StatementData statementData = config as Dsl.StatementData;
             if (null != statementData)
             {
                 Load(statementData, instance);
             }
             else
             {
                 //error
             }
         }
     }
     InitProperties();
 }
 public void Load(Dsl.StatementData messageHandlerData)
 {
     Dsl.CallData     first  = messageHandlerData.First.Call;
     Dsl.FunctionData func   = messageHandlerData.Second;
     Dsl.CallData     second = func.Call;
     if (null != first && first.HaveParam())
     {
         int      paramNum = first.GetParamNum();
         string[] args     = new string[paramNum];
         for (int i = 0; i < paramNum; ++i)
         {
             args[i] = first.GetParamId(i);
         }
         m_MessageId = string.Join(":", args);
     }
     if (null != second && second.GetId() == "args" && second.HaveParam())
     {
         int paramNum = second.GetParamNum();
         if (paramNum > 0)
         {
             m_ArgumentNames = new string[paramNum];
             for (int i = 0; i < paramNum; ++i)
             {
                 m_ArgumentNames[i] = second.GetParamId(i);
             }
         }
     }
     RefreshCommands(func);
 }
 public void Init(Dsl.ISyntaxComponent config)
 {
     Dsl.CallData callData = config as Dsl.CallData;
     if (null != callData)
     {
         Load(callData);
     }
     else
     {
         Dsl.FunctionData funcData = config as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData);
         }
         else
         {
             Dsl.StatementData statementData = config as Dsl.StatementData;
             if (null != statementData)
             {
                 //是否支持语句类型的命令语法?
                 Load(statementData);
             }
             else
             {
                 //error
             }
         }
     }
 }
Пример #8
0
 protected override void Load(Dsl.StatementData statementData, SkillInstance instance)
 {
     if (null != m_Plugin)
     {
         m_Plugin.LoadStatementData(statementData, instance);
     }
 }
Пример #9
0
 public static void SetStatementParam(Dsl.StatementData statementData, int funcIndex, int stIndex, int paramIndex, string val)
 {
     if (funcIndex >= 0 && funcIndex < statementData.Functions.Count)
     {
         Dsl.FunctionData funcData = statementData.Functions[funcIndex];
         SetStatementParam(funcData, stIndex, paramIndex, val);
     }
 }
Пример #10
0
 public static void SetStatementParam(Dsl.StatementData statementData, int funcIndex, int stIndex, int paramIndex, string val)
 {
     if (funcIndex >= 0 && funcIndex < statementData.GetFunctionNum())
     {
         Dsl.FunctionData funcData = statementData.GetFunction(funcIndex);
         SetStatementParam(funcData, stIndex, paramIndex, val);
     }
 }
Пример #11
0
 protected override bool Load(Dsl.StatementData statementData)
 {
     if (null != m_Plugin)
     {
         return(m_Plugin.LoadStatementData(statementData));
     }
     return(base.Load(statementData));
 }
Пример #12
0
 public void LoadStatementData(Dsl.StatementData statementData)
 {
     for (int i = 0; i < statementData.Functions.Count; ++i)
     {
         var funcData = statementData.Functions[i];
         LoadFuncData(funcData);
     }
 }
Пример #13
0
 public bool Init(Dsl.ISyntaxComponent config)
 {
     m_LoadSuccess = true;
     m_Config      = config;
     Dsl.CallData callData = config as Dsl.CallData;
     if (null != callData)
     {
         Load(callData);
     }
     else
     {
         Dsl.FunctionData funcData = config as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData);
         }
         else
         {
             Dsl.StatementData statementData = config as Dsl.StatementData;
             if (null != statementData)
             {
                 int funcNum  = statementData.GetFunctionNum();
                 var lastFunc = statementData.Last;
                 var id       = lastFunc.GetId();
                 if (funcNum >= 2 && id == "comment" || id == "comments")
                 {
                     m_Comments = lastFunc;
                     statementData.Functions.RemoveAt(funcNum - 1);
                     if (statementData.GetFunctionNum() == 1)
                     {
                         funcData = statementData.GetFunction(0);
                         if (funcData.HaveStatement())
                         {
                             Load(funcData);
                         }
                         else
                         {
                             Load(funcData.Call);
                         }
                     }
                     else
                     {
                         Load(statementData);
                     }
                 }
                 else
                 {
                     Load(statementData);
                 }
             }
             else
             {
                 //keyword
             }
         }
     }
     return(m_LoadSuccess);
 }
Пример #14
0
 protected override void Load(Dsl.StatementData statementData, SkillInstance instance)
 {
     Dsl.FunctionData func1 = statementData.First;
     Dsl.FunctionData func2 = statementData.Second;
     if (null != func1 && null != func2) {
         Load(func1.Call, instance);
         LoadIf(func2.Call, instance);
     }
 }
Пример #15
0
 private static bool DetectPrefixPostfixOperator(Dsl.StatementData data, ref Dsl.FunctionData oper, ref Dsl.ValueData var, ref bool prefix)
 {
     foreach (var func in data.Functions)
     {
         if (DetectPrefixPostfixOperator(func, ref oper, ref var, ref prefix))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #16
0
 private static bool DetectVariable(Dsl.StatementData data, Dsl.FunctionData oper, Dsl.ValueData var)
 {
     foreach (var func in data.Functions)
     {
         if (DetectVariable(func, oper, var))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #17
0
 private static bool ExistFunctionObject(Dsl.StatementData data)
 {
     foreach (var func in data.Functions)
     {
         if (ExistFunctionObject(func))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #18
0
 static public int get_Last(IntPtr l)
 {
     try {
         Dsl.StatementData self = (Dsl.StatementData)checkSelf(l);
         pushValue(l, true);
         pushValue(l, self.Last);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Пример #19
0
 static public int Clear(IntPtr l)
 {
     try {
         Dsl.StatementData self = (Dsl.StatementData)checkSelf(l);
         self.Clear();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Пример #20
0
 protected override void Load(Dsl.StatementData statementData)
 {
     if (statementData.Functions.Count == 2)
     {
         Dsl.FunctionData first  = statementData.First;
         Dsl.FunctionData second = statementData.Second;
         if (null != first && null != second)
         {
             Load(first);
             LoadUserId(second);
         }
     }
 }
Пример #21
0
 protected override void Load(Dsl.StatementData statementData)
 {
     if (statementData.Functions.Count == 2)
     {
         Dsl.FunctionData first  = statementData.First;
         Dsl.FunctionData second = statementData.Second;
         if (null != first && null != first.Call && null != second && null != second.Call)
         {
             Load(first.Call);
             LoadCondition(second.Call);
         }
     }
 }
Пример #22
0
        protected virtual void Load(Dsl.StatementData statementData)
        {
            bool v = true;

            foreach (var func in statementData.Functions)
            {
                if (func.Call.GetParamNum() > 0 || func.GetStatementNum() > 0 || func.HaveExternScript())
                {
                    v = false;
                }
            }
            m_LoadSuccess = v;
        }
Пример #23
0
 static public int constructor(IntPtr l)
 {
     try {
         Dsl.StatementData o;
         o = new Dsl.StatementData();
         pushValue(l, true);
         pushValue(l, o);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Пример #24
0
 static public int GetFunctionNum(IntPtr l)
 {
     try {
         Dsl.StatementData self = (Dsl.StatementData)checkSelf(l);
         var ret = self.GetFunctionNum();
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Пример #25
0
        public bool Init(Dsl.ISyntaxComponent config)
        {
            bool ret = true;

            m_Config = config;
            m_Id     = config.GetId();
            Dsl.FunctionData funcData = config as Dsl.FunctionData;
            if (null != funcData)
            {
                Load(funcData);
            }
            else
            {
                Dsl.StatementData statementData = config as Dsl.StatementData;
                if (null != statementData)
                {
                    int funcNum  = statementData.GetFunctionNum();
                    var lastFunc = statementData.Last;
                    var id       = lastFunc.GetId();
                    if (funcNum >= 2 && (id == "comment" || id == "comments"))
                    {
                        m_Comments = lastFunc;
                        statementData.Functions.RemoveAt(funcNum - 1);
                        if (statementData.GetFunctionNum() == 1)
                        {
                            funcData = statementData.GetFunction(0);
                            ret      = Load(funcData);
                        }
                        else
                        {
                            ret = Load(statementData);
                        }
                    }
                    else
                    {
                        ret = Load(statementData);
                    }
                }
                else
                {
                    //keyword
                }
            }
            if (GameFramework.GlobalVariables.Instance.IsDevice)
            {
                //在设备上不保留配置信息了
                m_Comments = null;
                m_Config   = null;
            }
            return(ret);
        }
Пример #26
0
 protected override bool Load(Dsl.StatementData statementData)
 {
     foreach (var fData in statementData.Functions)
     {
         if (fData.GetId() == "if" || fData.GetId() == "elseif")
         {
             IfExp.Clause item = new IfExp.Clause();
             if (fData.Call.GetParamNum() > 0)
             {
                 Dsl.ISyntaxComponent cond = fData.Call.GetParam(0);
                 item.Condition = Calculator.Load(cond);
             }
             else
             {
                 //error
                 Console.WriteLine("DslCalculator error, {0} line {1}", fData.ToScriptString(false), fData.GetLine());
             }
             for (int ix = 0; ix < fData.GetStatementNum(); ++ix)
             {
                 IExpression subExp = Calculator.Load(fData.GetStatement(ix));
                 item.Expressions.Add(subExp);
             }
             m_Clauses.Add(item);
         }
         else if (fData.GetId() == "else")
         {
             if (fData != statementData.Last)
             {
                 //error
                 Console.WriteLine("DslCalculator error, {0} line {1}", fData.ToScriptString(false), fData.GetLine());
             }
             else
             {
                 IfExp.Clause item = new IfExp.Clause();
                 for (int ix = 0; ix < fData.GetStatementNum(); ++ix)
                 {
                     IExpression subExp = Calculator.Load(fData.GetStatement(ix));
                     item.Expressions.Add(subExp);
                 }
                 m_Clauses.Add(item);
             }
         }
         else
         {
             //error
             Console.WriteLine("DslCalculator error, {0} line {1}", fData.ToScriptString(false), fData.GetLine());
         }
     }
     return(true);
 }
Пример #27
0
 protected override bool Load(Dsl.StatementData statementData)
 {
     if (statementData.Functions.Count == 2)
     {
         Dsl.FunctionData first  = statementData.First;
         Dsl.FunctionData second = statementData.Second;
         if (null != first && null != second)
         {
             Load(first);
             LoadCondition(second);
         }
     }
     return(true);
 }
Пример #28
0
 static public int CopyFrom(IntPtr l)
 {
     try {
         Dsl.StatementData self = (Dsl.StatementData)checkSelf(l);
         Dsl.StatementData a1;
         checkType(l, 2, out a1);
         self.CopyFrom(a1);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Пример #29
0
 private static bool CanRemoveClosure(Dsl.StatementData param, ref bool first, ref Dsl.FunctionData closure)
 {
     foreach (var func in param.Functions)
     {
         if (CanRemoveClosure(func, ref first, ref closure))
         {
             return(true);
         }
         if (!first)
         {
             return(false);
         }
     }
     return(false);
 }
Пример #30
0
        protected override void Load(Dsl.StatementData statementData)
        {
            if (statementData.Functions.Count >= 2)
            {
                Dsl.FunctionData first  = statementData.First;
                Dsl.FunctionData second = statementData.Second;
                if (null != first && null != second)
                {
                    m_HaveSet = true;

                    Load(first);
                    LoadSet(second);
                }
            }
        }