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); } }
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)); } } }
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); } }
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); } } } }
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); }
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); } } } } }
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); } } }
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(); } }
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(); } } }
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; } } }
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)); } } }
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(); } }
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(); } } }
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(); } }
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); }
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); }
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); }
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); }
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); } } }
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); }
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); }
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); }
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); } } } }
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); } } } } } }
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); } } }
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); } } }
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; }