public bool Init(Dsl.ISyntaxComponent config) { Dsl.StatementData statementData = config as Dsl.StatementData; if (null != statementData) { var first = statementData.First; if (first.HaveId() && !first.HaveParamOrStatement()) { //命令行样式转换为函数样式 var func = new Dsl.FunctionData(); func.CopyFrom(first); func.SetParamClass((int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_PARENTHESIS); for (int i = 1; i < statementData.GetFunctionNum(); ++i) { var fd = statementData.GetFunction(i); if (fd.HaveId() && !fd.HaveParamOrStatement()) { func.AddParam(fd.Name); } else { func.AddParam(fd); } } config = func; } } m_Comments = m_Params.InitFromDsl(config, 0, true); m_Config = config; return(config is Dsl.FunctionData); }
public static bool TryTransformCommandLineLikeSyntax(Dsl.StatementData statementData, out Dsl.FunctionData result) { bool ret = false; result = null; if (null != statementData) { var first = statementData.First; if (first.HaveId() && !first.HaveParamOrStatement()) { //命令行样式转换为函数样式 var func = new Dsl.FunctionData(); func.CopyFrom(first); func.SetParamClass((int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_PARENTHESIS); for (int i = 1; i < statementData.GetFunctionNum(); ++i) { var fd = statementData.GetFunction(i); if (fd.HaveId() && !fd.HaveParamOrStatement()) { func.AddParam(fd.Name); } else { func.AddParam(fd); } } result = func; ret = true; } } 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) { var first = statementData.First; if (first.HaveId() && !first.HaveParamOrStatement()) { //命令行样式转换为函数样式 var func = new Dsl.FunctionData(); func.CopyFrom(first); func.SetParamClass((int)Dsl.FunctionData.ParamClassEnum.PARAM_CLASS_PARENTHESIS); for (int i = 1; i < statementData.GetFunctionNum(); ++i) { var fd = statementData.GetFunction(i); if (fd.HaveId() && !fd.HaveParamOrStatement()) { func.AddParam(fd.Name); } else { func.AddParam(fd); } } Load(func); } else { 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); }