public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.FunctionData callData = param as Dsl.FunctionData;
     if (null != callData)
     {
         m_ParamNum = callData.GetParamNum();
         if (m_ParamNum > 0)
         {
             m_AttrName.InitFromDsl(callData.GetParam(0));
         }
         if (m_ParamNum > 1)
         {
             m_DefaultValue.InitFromDsl(callData.GetParam(1));
         }
     }
 }
        internal static Dsl.ISyntaxComponent Convert(Dsl.ISyntaxComponent p, int paramClass)
        {
            var pvd = p as Dsl.ValueData;

            if (null != pvd && pvd.IsId() && (paramClass == (int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD ||
                                              paramClass == (int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_POINTER ||
                                              paramClass == (int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_PERIOD))
            {
                pvd.SetType(Dsl.ValueData.STRING_TOKEN);
                return(pvd);
            }
            else
            {
                return(p);
            }
        }
Exemplo n.º 3
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && callData.GetId() == "blackboardget")
     {
         m_ParamNum = callData.GetParamNum();
         if (m_ParamNum > 0)
         {
             m_AttrName.InitFromDsl(callData.GetParam(0));
         }
         if (m_ParamNum > 1)
         {
             m_DefaultValue.InitFromDsl(callData.GetParam(1));
         }
     }
 }
Exemplo n.º 4
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.ValueData valueData = param as Dsl.ValueData;
     if (null != valueData)
     {
         string id     = param.GetId();
         int    idType = param.GetIdType();
         if (idType == Dsl.ValueData.ID_TOKEN && id.StartsWith("$"))
         {
             if (0 == id.CompareTo("$$"))
             {
                 SetArgument(c_Iterator);
             }
             else
             {
                 string idName = id.Substring(1);
                 if (idName.Length > 0 && char.IsDigit(idName[0]))
                 {
                     SetArgument(int.Parse(idName));
                 }
                 else
                 {
                     SetStack(id);
                 }
             }
         }
         else if (idType == Dsl.ValueData.ID_TOKEN && id.StartsWith("@"))
         {
             if (id.StartsWith("@@"))
             {
                 SetGlobal(id);
             }
             else
             {
                 SetLocal(id);
             }
         }
         else
         {
             CalcInitValue(param);
         }
     }
     else
     {
         CalcInitValue(param);
     }
 }
Exemplo n.º 5
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     m_LoadedArgs = new List <IStoryValue>();
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         Load(callData);
     }
     else
     {
         Dsl.FunctionData funcData = param as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData);
         }
     }
 }
 protected override void Load(Dsl.FunctionData funcData, SkillInstance instance)
 {
     if (funcData.IsHighOrder)
     {
         LoadCall(funcData.LowerOrderFunction, instance);
     }
     else if (funcData.HaveParam())
     {
         LoadCall(funcData, instance);
     }
     if (funcData.HaveStatement())
     {
         for (int i = 0; i < funcData.GetParamNum(); ++i)
         {
             Dsl.ISyntaxComponent statement = funcData.GetParam(i);
             Dsl.FunctionData     stCall    = statement as Dsl.FunctionData;
             if (null != stCall)
             {
                 string id  = stCall.GetId();
                 string key = stCall.GetParamId(0);
                 object val = string.Empty;
                 if (id == "int")
                 {
                     val = int.Parse(stCall.GetParamId(1));
                 }
                 else if (id == "long")
                 {
                     val = long.Parse(stCall.GetParamId(1));
                 }
                 else if (id == "float")
                 {
                     val = float.Parse(stCall.GetParamId(1));
                 }
                 else if (id == "double")
                 {
                     val = double.Parse(stCall.GetParamId(1));
                 }
                 else if (id == "string")
                 {
                     val = stCall.GetParamId(1);
                 }
                 m_Params.Add(key, val);
             }
         }
     }
 }
Exemplo n.º 7
0
 public bool Load(Dsl.ISyntaxComponent dsl, DslCalculator calculator)
 {
     m_Calculator = calculator;
     Dsl.ValueData valueData = dsl as Dsl.ValueData;
     if (null != valueData)
     {
         return(Load(valueData));
     }
     else
     {
         Dsl.CallData callData = dsl as Dsl.CallData;
         if (null != callData)
         {
             bool ret = Load(callData);
             if (!ret)
             {
                 int num = callData.GetParamNum();
                 List <IExpression> args = new List <IExpression>();
                 for (int ix = 0; ix < num; ++ix)
                 {
                     Dsl.ISyntaxComponent param = callData.GetParam(ix);
                     args.Add(calculator.Load(param));
                 }
                 return(Load(args));
             }
             return(ret);
         }
         else
         {
             Dsl.FunctionData funcData = dsl as Dsl.FunctionData;
             if (null != funcData)
             {
                 return(Load(funcData));
             }
             else
             {
                 Dsl.StatementData statementData = dsl as Dsl.StatementData;
                 if (null != statementData)
                 {
                     return(Load(statementData));
                 }
             }
         }
     }
     return(false);
 }
Exemplo n.º 8
0
    private static void ReadTransform(Dsl.ISyntaxComponent comp, GameObject obj)
    {
        var funcData = comp as Dsl.FunctionData;

        if (null != funcData)
        {
            foreach (var statement in funcData.Statements)
            {
                string id = statement.GetId();
                if (id == "position")
                {
                    var call = statement as Dsl.CallData;
                    if (null != call)
                    {
                        float x = float.Parse(call.GetParamId(0));
                        float y = float.Parse(call.GetParamId(1));
                        float z = float.Parse(call.GetParamId(2));
                        obj.transform.localPosition = new Vector3(x, y, z);
                    }
                }
                else if (id == "rotation")
                {
                    var call = statement as Dsl.CallData;
                    if (null != call)
                    {
                        float x = float.Parse(call.GetParamId(0));
                        float y = float.Parse(call.GetParamId(1));
                        float z = float.Parse(call.GetParamId(2));
                        obj.transform.localEulerAngles = new Vector3(x, y, z);
                    }
                }
                else if (id == "scale")
                {
                    var call = statement as Dsl.CallData;
                    if (null != call)
                    {
                        float x = float.Parse(call.GetParamId(0));
                        float y = float.Parse(call.GetParamId(1));
                        float z = float.Parse(call.GetParamId(2));
                        obj.transform.localScale = new Vector3(x, y, z);
                    }
                }
            }
        }
    }
Exemplo n.º 9
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 0)
         {
             m_DictId.InitFromDsl(callData.GetParam(0));
         }
         for (int i = 1; i < num; ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_FormatArgs.Add(val);
         }
     }
 }
Exemplo n.º 10
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         m_ParamNum = callData.GetParamNum();
         if (1 == m_ParamNum)
         {
             m_X.InitFromDsl(callData.GetParam(0));
         }
         else if (2 == m_ParamNum)
         {
             m_X.InitFromDsl(callData.GetParam(0));
             m_Y.InitFromDsl(callData.GetParam(1));
         }
         TryUpdateValue();
     }
 }
Exemplo n.º 11
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         m_ParamNum = callData.GetParamNum();
         if (m_ParamNum > 1)
         {
             m_Var.InitFromDsl(callData.GetParam(0));
             m_Key.InitFromDsl(callData.GetParam(1));
             if (m_ParamNum > 2)
             {
                 m_DefValue.InitFromDsl(callData.GetParam(2));
             }
             TryUpdateValue();
         }
     }
 }
Exemplo n.º 12
0
        public void Set(Dsl.ISyntaxComponent p)
        {
            string val  = p.GetId();
            int    type = p.GetIdType();

            if (!string.IsNullOrEmpty(val))
            {
                if (type == Dsl.CallData.NUM_TOKEN)
                {
                    m_Key   = string.Empty;
                    m_Value = (T)Convert.ChangeType(val, typeof(T));
                }
                else
                {
                    m_Key = val;
                }
            }
        }
Exemplo n.º 13
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && (callData.GetParamNum() == 2 || callData.GetParamNum() == 3))
     {
         m_ParamNum = callData.GetParamNum();
         m_Pt.InitFromDsl(callData.GetParam(0));
         if (m_ParamNum == 3)
         {
             m_Pt2.InitFromDsl(callData.GetParam(1));
             m_Offset.InitFromDsl(callData.GetParam(2));
         }
         else
         {
             m_Offset.InitFromDsl(callData.GetParam(1));
         }
     }
 }
Exemplo n.º 14
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && callData.GetId() == "substring" && callData.GetParamNum() > 0)
     {
         m_ParamNum = callData.GetParamNum();
         m_String.InitFromDsl(callData.GetParam(0));
         if (m_ParamNum > 1)
         {
             m_Start.InitFromDsl(callData.GetParam(1));
         }
         if (m_ParamNum > 2)
         {
             m_Length.InitFromDsl(callData.GetParam(2));
         }
         TryUpdateValue();
     }
 }
Exemplo n.º 15
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && callData.GetId() == "listget")
     {
         m_ParamNum = callData.GetParamNum();
         if (m_ParamNum > 1)
         {
             m_ListValue.InitFromDsl(callData.GetParam(0));
             m_IndexValue.InitFromDsl(callData.GetParam(1));
             if (m_ParamNum > 2)
             {
                 m_DefaultValue.InitFromDsl(callData.GetParam(2));
             }
             TryUpdateValue();
         }
     }
 }
Exemplo n.º 16
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         if (callData.GetParamNum() == 1)
         {
             m_X.InitFromDsl(new Dsl.ValueData("0"));
             m_Y.InitFromDsl(callData.GetParam(0));
         }
         else if (callData.GetParamNum() == 2)
         {
             m_X.InitFromDsl(callData.GetParam(0));
             m_Y.InitFromDsl(callData.GetParam(1));
         }
         TryUpdateValue();
     }
 }
Exemplo n.º 17
0
        private static bool CanRemoveClosure(Dsl.ISyntaxComponent param, ref bool first, ref Dsl.FunctionData closure)
        {
            var funcData = param as Dsl.FunctionData;

            if (null != funcData)
            {
                return(CanRemoveClosure(funcData, ref first, ref closure));
            }
            else
            {
                var stData = param as Dsl.StatementData;
                if (null != stData)
                {
                    return(CanRemoveClosure(stData, ref first, ref closure));
                }
            }
            closure = null;
            return(false);
        }
Exemplo n.º 18
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.FunctionData callData = param as Dsl.FunctionData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 0)
         {
             m_String.InitFromDsl(callData.GetParam(0));
         }
         for (int i = 1; i < callData.GetParamNum(); ++i)
         {
             StoryValue <string> val = new StoryValue <string>();
             val.InitFromDsl(callData.GetParam(i));
             m_KeyArgs.Add(val);
         }
         TryUpdateValue();
     }
 }
 public Dsl.FunctionData InitFromDsl(Dsl.ISyntaxComponent param, int startIndex, bool enableComments)
 {
     Dsl.FunctionData ret = null;
     if (enableComments)
     {
         var statementData = param as Dsl.StatementData;
         if (null != statementData && statementData.GetFunctionNum() == 2)
         {
             var first = statementData.First;
             var last  = statementData.Last;
             if (!first.HaveStatement() && (last.GetId() == "comment" || last.GetId() == "comments"))
             {
                 ret = last;
                 statementData.Functions.RemoveAt(1);
             }
         }
     }
     return(ret);
 }
Exemplo n.º 20
0
 public bool Init(Dsl.ISyntaxComponent config)
 {
     m_LoadSuccess = true;
     m_Config      = config;
     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);
                     Load(funcData);
                 }
                 else
                 {
                     Load(statementData);
                 }
             }
             else
             {
                 Load(statementData);
             }
         }
         else
         {
             //keyword
         }
     }
     return(m_LoadSuccess);
 }
Exemplo n.º 21
0
        protected override bool Load(Dsl.FunctionData funcData)
        {
            Dsl.CallData callData = funcData.Call;
            int          num      = callData.GetParamNum();

            for (int ix = 0; ix < num; ++ix)
            {
                Dsl.ISyntaxComponent cond = funcData.Call.GetParam(ix);
                m_Elements.Add(Calculator.Load(cond));
            }
            int fnum = funcData.GetStatementNum();

            for (int ix = 0; ix < fnum; ++ix)
            {
                IExpression subExp = Calculator.Load(funcData.GetStatement(ix));
                m_Expressions.Add(subExp);
            }
            return(true);
        }
Exemplo n.º 22
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.FunctionData callData = param as Dsl.FunctionData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 1)
         {
             m_Object.InitFromDsl(callData.GetParam(0));
             m_Method.InitFromDsl(callData.GetParam(1));
         }
         for (int i = 2; i < callData.GetParamNum(); ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_Args.Add(val);
         }
     }
 }
Exemplo n.º 23
0
 private static bool CanSplitPrefixPostfixOperator(Dsl.ISyntaxComponent data, out Dsl.FunctionData oper, out bool prefix)
 {
     oper   = null;
     prefix = false;
     Dsl.ISyntaxComponent var = null;
     if (DetectPrefixPostfixOperator(data, ref oper, ref var, ref prefix) && !DetectVariable(data, oper, var))
     {
         if (var is Dsl.ValueData)
         {
             return(true);
         }
         else
         {
             var fd = var as Dsl.FunctionData;
             if (fd.GetId() == "getinstance")
             {
                 var p1 = fd.GetParam(1);
                 if (p1 is Dsl.ValueData && !DetectVariable(data, oper, p1))
                 {
                     return(true);
                 }
             }
             else if (fd.GetId() == "getinterface")
             {
                 var p1 = fd.GetParam(0);
                 if (p1 is Dsl.ValueData && !DetectVariable(data, oper, p1))
                 {
                     return(true);
                 }
             }
             else if (fd.GetId() == "getstatic")
             {
                 var p1 = fd.GetParam(1);
                 if (p1 is Dsl.ValueData)
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Exemplo n.º 24
0
        internal static string CalcTypeString(Dsl.ISyntaxComponent comp)
        {
            string ret = comp.GetId();
            var    cd  = comp as Dsl.FunctionData;

            if (null != cd && cd.GetParamClass() == (int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD)
            {
                string prefix;
                if (cd.IsHighOrder)
                {
                    prefix = CalcTypeString(cd.LowerOrderFunction);
                }
                else
                {
                    prefix = cd.GetId();
                }
                ret = prefix + "." + cd.GetParamId(0);
            }
            return(ret);
        }
Exemplo n.º 25
0
 protected override bool Load(Dsl.StatementData statementData)
 {
     Dsl.FunctionData funcData1 = statementData.First;
     Dsl.FunctionData funcData2 = statementData.Second;
     if (funcData2.GetId() == ":")
     {
         Dsl.ISyntaxComponent cond = funcData1.Call.GetParam(0);
         Dsl.ISyntaxComponent op1  = funcData1.GetStatement(0);
         Dsl.ISyntaxComponent op2  = funcData2.GetStatement(0);
         m_Op1 = Calculator.Load(cond);
         m_Op2 = Calculator.Load(op1);
         m_Op3 = Calculator.Load(op2);
     }
     else
     {
         //error
         Console.WriteLine("DslCalculator error, {0} line {1}", statementData.ToScriptString(false), statementData.GetLine());
     }
     return(true);
 }
Exemplo n.º 26
0
        protected override void Load(Dsl.FunctionData funcData, SkillInstance instance)
        {
            Dsl.CallData callData = funcData.Call;
            if (null != callData)
            {
                Load(callData, instance);

                for (int i = 0; i < funcData.Statements.Count; ++i)
                {
                    Dsl.ISyntaxComponent statement = funcData.Statements[i];
                    Dsl.CallData         stCall    = statement as Dsl.CallData;
                    if (null != stCall)
                    {
                        string id  = stCall.GetId();
                        string key = stCall.GetParamId(0);
                        object val = string.Empty;
                        if (id == "int")
                        {
                            val = int.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "long")
                        {
                            val = long.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "float")
                        {
                            val = float.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "double")
                        {
                            val = double.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "string")
                        {
                            val = stCall.GetParamId(1);
                        }
                        m_Params.Add(key, val);
                    }
                }
            }
        }
Exemplo n.º 27
0
        protected override void Load(Dsl.FunctionData funcData, SkillInstance instance)
        {
            Dsl.CallData callData = funcData.Call;
            if (null != callData)
            {
                Load(callData, instance);

                Dsl.ISyntaxComponent statement = funcData.Statements.Find(st => st.GetId() == "transform");
                if (null != statement)
                {
                    Dsl.CallData stCall = statement as Dsl.CallData;
                    if (null != stCall)
                    {
                        if (stCall.GetParamNum() > 0)
                        {
                            Dsl.CallData param0 = stCall.GetParam(0) as Dsl.CallData;
                            if (null != param0)
                            {
                                m_Pos = DslUtility.CalcVector3(param0);
                            }
                        }
                        if (stCall.GetParamNum() > 1)
                        {
                            Dsl.CallData param1 = stCall.GetParam(1) as Dsl.CallData;
                            if (null != param1)
                            {
                                m_Dir = DslUtility.CalcEularRotation(param1);
                            }
                        }
                        if (stCall.GetParamNum() > 2)
                        {
                            Dsl.CallData param2 = stCall.GetParam(2) as Dsl.CallData;
                            if (null != param2)
                            {
                                m_Scale = DslUtility.CalcVector3(param2);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 28
0
        private static bool DetectPrefixPostfixOperator(Dsl.ISyntaxComponent data, ref Dsl.FunctionData oper, ref Dsl.ValueData var, ref bool prefix)
        {
            var funcData = data as Dsl.FunctionData;

            if (null != funcData)
            {
                return(DetectPrefixPostfixOperator(funcData, ref oper, ref var, ref prefix));
            }
            else
            {
                var stData = data as Dsl.StatementData;
                if (null != stData)
                {
                    return(DetectPrefixPostfixOperator(stData, ref oper, ref var, ref prefix));
                }
                else
                {
                    return(false);
                }
            }
        }
Exemplo n.º 29
0
        private static bool ExistFunctionObject(Dsl.ISyntaxComponent data)
        {
            var funcData = data as Dsl.FunctionData;

            if (null != funcData)
            {
                return(ExistFunctionObject(funcData));
            }
            else
            {
                var stData = data as Dsl.StatementData;
                if (null != stData)
                {
                    return(ExistFunctionObject(stData));
                }
                else
                {
                    return(false);
                }
            }
        }
Exemplo n.º 30
0
 protected override void Load(Dsl.FunctionData functionData)
 {
     Dsl.CallData callData = functionData.Call;
     if (null != callData)
     {
         if (callData.GetParamNum() > 0)
         {
             Dsl.ISyntaxComponent param = callData.GetParam(0);
             m_Count.InitFromDsl(param);
         }
         for (int i = 0; i < functionData.Statements.Count; i++)
         {
             IStoryCommand cmd = StoryCommandManager.Instance.CreateCommand(functionData.Statements[i]);
             if (null != cmd)
             {
                 m_LoadedCommands.Add(cmd);
             }
         }
     }
     IsCompositeCommand = true;
 }