本文整理汇总了C#中Xenon.Syntax.Log_MethodImpl.CanDebug方法的典型用法代码示例。如果您正苦于以下问题:C# Log_MethodImpl.CanDebug方法的具体用法?C# Log_MethodImpl.CanDebug怎么用?C# Log_MethodImpl.CanDebug使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xenon.Syntax.Log_MethodImpl
的用法示例。
在下文中一共展示了Log_MethodImpl.CanDebug方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddFunction
//────────────────────────────────────────
/// <summary>
/// ユーザー定義関数を登録します。
/// </summary>
/// <param name="sName"></param>
/// <param name="e_Func"></param>
/// <param name="log_Reports"></param>
public void AddFunction(string sName, Expression_Node_Function ec_CommonFunction, Log_Reports log_Reports)
{
Log_Method log_Method = new Log_MethodImpl(0);
log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "AddFunc", log_Reports);
if (log_Method.CanDebug(1))
{
}
//
//
if (this.dictionary_Item.ContainsKey(sName))
{
goto gt_Error_Exists;
}
this.dictionary_Item.Add(sName, ec_CommonFunction);
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole(" ユーザー定義関数の追加登録 [" + sName + "]");
}
goto gt_EndMethod;
//
//
#region 異常系
//────────────────────────────────────────
gt_Error_Exists:
if (log_Reports.CanCreateReport)
{
Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
r.SetTitle("▲設定エラー101!", log_Method);
r.Message = "ユーザー定義関数[" + sName + "]は既に定義されていますが、さらに定義されました。同じ名前のユーザー定義関数は1つしか定義してはいけません。";
log_Reports.EndCreateReport();
}
goto gt_EndMethod;
//────────────────────────────────────────
#endregion
//
//
gt_EndMethod:
log_Method.EndMethod(log_Reports);
}
示例2: ParseAttr_InAnotherLibrary
//────────────────────────────────────────
/// <summary>
/// 【追加 2012-07-05】
/// </summary>
/// <param name="s_Cur"></param>
/// <param name="e_Cur"></param>
/// <param name="bRequired_NameAttr"></param>
/// <param name="bRequired_ValueAttrIsChild"></param>
/// <param name="log_Reports"></param>
public static void ParseAttr_InAnotherLibrary(
Configurationtree_Node cur_Cf,
Expression_Node_String cur_Ec,
bool bRequired_NameAttr,//name属性が必須な場合、真。
bool bRequired_ValueAttrIsChild,//value属性を、子<f-str>にする場合、真。
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_ConfigurationtreeToExpression.Name_Library, "SToE_F14n16_AbstractImpl_", "ParseAttr_InAnotherLibrary",log_Reports);
if (log_Method.CanDebug(1))
{
//d_ParsingLog.Increment("(5.FElem汎用)"+s_Cur.Name_Node);
}
ConfigurationtreeToExpression_F14_FncImpl_ dammy = new ConfigurationtreeToExpression_F14_FncImpl_();//メソッドが使いたいだけなので、何でもいい。
dammy.ParseAttr_InConfigurationtreeToExpression(
cur_Cf,
cur_Ec,
bRequired_NameAttr,
bRequired_ValueAttrIsChild,
log_Reports
);
goto gt_EndMethod;
//
//
gt_EndMethod:
if (Log_ReportsImpl.BDebugmode_Static)
{
//d_ParsingLog.Decrement(s_Cur.Name_Node);
}
log_Method.EndMethod(log_Reports);
}
示例3: Execute5_Main
//────────────────────────────────────────
/// <summary>
///
/// </summary>
public override string Execute5_Main(Log_Reports log_Reports)
{
Log_Method log_Method = new Log_MethodImpl(0);
log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute5_Main",log_Reports);
string sFncName;
this.TrySelectAttribute(out sFncName, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);
// デバッグ
if (log_Reports.CanStopwatch)
{
log_Method.Log_Stopwatch.Message = "Nアクション[" + sFncName + "]実行";
log_Method.Log_Stopwatch.Begin();
}
// タスク・デスクリプション
if (this.Functionparameterset.Sender is Customcontrol)
{
Customcontrol fcCc = (Customcontrol)this.Functionparameterset.Sender;
string sName_Usercontrol = fcCc.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(
EnumHitcount.Unconstraint,
log_Reports
);
log_Reports.Comment_EventCreationMe += "/追記:[" + sName_Usercontrol + "]コントロールが、[" + sFncName + "]アクションを実行。";
}
else
{
log_Reports.Comment_EventCreationMe += "/追記:[" + sFncName + "]アクションを実行。";
}
if (this.EnumEventhandler == EnumEventhandler.O_Lr)
{
//
//
//
//
Expression_Node_String e_ArgFilePath;
this.TrySelectAttribute(out e_ArgFilePath, Expression_Node_Function17Impl_OLD.PM_FILEPATH, EnumHitcount.One_Or_Zero, log_Reports);
// ファイルパス
if (null == e_ArgFilePath)
{
if (log_Reports.Successful)
{
// 正常時
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole("①[" + Expression_Node_Function17Impl_OLD.PM_FILEPATH + "]はヌルだった。");
}
throw new Exception("バリデーション設定ファイルのファイルパスを1つ1つ当たるプログラムが未実装です。");
//// 変数名。
//Expression_Node_String e_Atom;
//this.TrySelectAttribute(out e_Atom, Ec_Sf17Impl_OLD.S_PM_NAME_VAR_FILEPATH, false, EnumHitcount.Unconstraint, log_Reports);
//// ファイルパス。
//log_Reports.Log_Callstack.Push(log_Method, "④");
//Expression_Node_Filepath efp = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(e_Atom, true, log_Reports);
//log_Reports.Log_Callstack.Pop(log_Method, "④");
//e_ArgFilePath = efp;
//this.SetAttribute(Ec_Sf17Impl_OLD.S_PM_FILEPATH, efp, log_Reports);
}
else
{
}
}
else
{
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole( "②");
}
}
//絶対ファイルパス
string sFpatha_vcnf;
if (log_Reports.Successful)
{
// 正常時
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole( "③");
}
sFpatha_vcnf = e_ArgFilePath.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
if (!log_Reports.Successful)
{
// 既エラー。
goto gt_EndMethod;
}
}
//.........这里部分代码省略.........
示例4: Clear
/// <summary>
/// クリアーします。
/// </summary>
public void Clear(MemoryApplication owner_MemoryApplication)
{
Log_Method log_Method = new Log_MethodImpl(1, Log_ReportsImpl.BDebugmode_Static);
Log_Reports log_Reports_ThisMethod = new Log_ReportsImpl(log_Method);
log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "Clear",log_Reports_ThisMethod);
//
this.owner_MemoryApplication = owner_MemoryApplication;
if (null == this.DictionaryExpression_Item)
{
this.dictionaryExpression_Item = new Dictionary<string, Expression_Node_String>();
}
else
{
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole("次の変数を消します。");
log_Method.WriteDebug_ToConsole("────────────────────");
foreach (KeyValuePair<string, Expression_Node_String> kvp in this.DictionaryExpression_Item)
{
log_Method.WriteDebug_ToConsole(" " + kvp.Key + "=" + kvp.Value.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports_ThisMethod));
}
log_Method.WriteDebug_ToConsole("────────────────────");
}
this.DictionaryExpression_Item.Clear();
}
this.parent_Variablesconfig_Configurationtree = null;
goto gt_EndMethod;
//
gt_EndMethod:
log_Method.EndMethod(log_Reports_ThisMethod);
log_Reports_ThisMethod.EndLogging(log_Method);
}
示例5: Load
//────────────────────────────────────────
/// <summary>
/// 「変数設定ファイル」のテーブルを読み取り、変数を登録します。
/// </summary>
/// <param oVariableName="varOTable"></param>
/// <param oVariableName="log_Reports"></param>
public void Load(
Table_Humaninput o_Table_Var,
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(1, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "Load",log_Reports);
//
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole("「変数登録ファイル」を Load します。");
}
//
//
//
//
if (null == o_Table_Var)
{
goto gt_Error_NullTable;
}
if (null != this.parent_Variablesconfig_Configurationtree)
{
goto gt_Error_DoubleLoad;
}
string err_SFolder;
string err_SName;
if (log_Reports.Successful)
{
this.parent_Variablesconfig_Configurationtree = new Configurationtree_NodeImpl(NamesNode.S_VARIABLE_CONFIG, o_Table_Var.Expression_Filepath_ConfigStack.Cur_Configuration);
if (!log_Reports.Successful)
{
// 既エラー。
goto gt_EndMethod;
}
foreach (DataRow dataRow in o_Table_Var.DataTable.Rows)
{
string sStringValue;// = "";
// ソース情報として使うだけ。
Configurationtree_Node cf_VarRecord1 = new Configurationtree_NodeImpl(NamesNode.S_VARIABLE_RECORD, parent_Variablesconfig_Configurationtree);
// 注意: dataRow[]の連想配列は大文字・小文字を区別しないのが欠点。
//NAME列
{
string sFldName = NamesFld.S_NAME;//フィールド名。
if (o_Table_Var.ContainsField(sFldName,true,log_Reports))
{
if (String_HumaninputImpl.TryParse(
dataRow[sFldName],
out sStringValue,
o_Table_Var.Name,
sFldName,
log_Method,
log_Reports))
{
}
else
{
sStringValue = "";
}
if (!log_Reports.Successful)
{
// エラー
goto gt_EndMethod;
}
cf_VarRecord1.Dictionary_Attribute.Set(PmNames.S_NAME.Name_Pm, sStringValue, log_Reports);
}
}
// FOLDER列 (オプション)
{
string sFldName = NamesFld.S_FOLDER;
if (o_Table_Var.ContainsField(sFldName, false, log_Reports))
{
if (String_HumaninputImpl.TryParse(
dataRow[sFldName],
out sStringValue,
o_Table_Var.Name,
sFldName,
log_Method,
log_Reports))
{
}
else
{
//.........这里部分代码省略.........
示例6: Translate
//────────────────────────────────────────
public void Translate(
Configurationtree_Node cur_Conf,
Expressionv_4ADisplayImpl parent_Exprv,
MemoryApplication memoryApplication,
Log_TextIndented_ConfigurationtreeToExpression pg_ParsingLog,
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_ConfigurationtreeToExpression.Name_Library, this, "SToE",log_Reports);
if (log_Method.CanDebug(1))
{
pg_ParsingLog.Increment("(37)" + cur_Conf.Name);
}
//
//
//
//
//
// 自
//
//
//
Expressionv_5FAllFieldsIsEmptyImpl cur_Exprv = new Expressionv_5FAllFieldsIsEmptyImpl(parent_Exprv, cur_Conf, memoryApplication);
//
//
//
// 子
//
//
//
{
this.ParseChild_InConfigurationtreeToExpression(
cur_Conf,
cur_Exprv,
memoryApplication,
pg_ParsingLog,
log_Reports
);
}
//
//
//
// 親へ連結
//
//
//
parent_Exprv.List_Expression_Child.Add(
cur_Exprv,
log_Reports
);
// #デバッグ中
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole(" ★★ <f-all-fields-is-empty> 子要素数=[" + cur_Exprv.List_Expression_Child.Count + "] 属性数=[" + cur_Exprv.Dictionary_Expression_Attribute.Count + "]");
}
goto gt_EndMethod;
//
//
//
//
gt_EndMethod:
if (Log_ReportsImpl.BDebugmode_Static)
{
pg_ParsingLog.Decrement(cur_Conf.Name);
}
log_Method.EndMethod(log_Reports);
}
示例7: XmlToConfigurationtree
//.........这里部分代码省略.........
}
else if (
// 親<data >
NamesNode.S_DATA == parent_Cf.Name
)
{
bool bHit = parent_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out parent_SName_Fnc, false, log_Reports);
bool bHit3 = parent_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_MEMORY, out parent_SAmemory, true, log_Reports);
if (
ValuesAttr.S_RECORDS == parent_SAmemory ||
ValuesAttr.S_VARIABLE == parent_SAmemory
)
{
//
// 親 <data memory=”records”>
// 親 <data memory=”variable”>
//
//
// 属性としては追加する。
//
string sName_Fnc;
bool bHit2 = cur_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName_Fnc, false, log_Reports);
if (bHit2)
{
string sValue_Arg;
cur_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_VALUE, out sValue_Arg, false, log_Reports);
// 「S■data-source」の(<arg5 name属性>としてtarget値を追加。
// 属性とする。
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole( "<データ target=[" + parent_SAmemory + "]>に属性追加 [" + sName_Fnc + "]←[" + sValue_Arg + "]");
}
parent_Cf.Dictionary_Attribute.Add(sName_Fnc, sValue_Arg, parent_Cf, true, log_Reports);
}
}
else
{
// エラー
err_Parent_SName = parent_Cf.Name;
goto gt_Error_Target;
}
}
else
{
// 親が<data>以外。
bool bHit = parent_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out parent_SName_Fnc, true, log_Reports);//name属性が無い親もある??
if (!log_Reports.Successful)
{
log_Method.WriteWarning_ToConsole("s_Parent.Name_Node=[" + parent_Cf.Name + "]");
}
else
{
}
if (
NamesNode.S_FNC != parent_Cf.Name &&
NamesNode.S_VALIDATOR != parent_Cf.Name &&
NamesNode.S_COMMON_FUNCTION != parent_Cf.Name &&
NamesFnc.S_SWITCH != parent_SName_Fnc //旧仕様に対応
)
示例8: On_P08_SpToVar_
/// <summary>
/// (8)「エディター設定ファイル」に記述されている<f-set-var>要素を、「エディター設定ファイル・モデル」に格納。Cf→M
/// </summary>
/// <param name="st_PrevProject_OrNull"></param>
/// <param name="log_Reports"></param>
private void On_P08_SpToVar_(
out MemoryAaeditorxml_Editor out_moAaeditorxml_Editor,
Expression_Node_Filepath ec_Fpath_AaEditorXml,
Expression_Node_Filepath ec_Fopath_Editor,
MemoryAatoolxml_Editor moAatoolxml_SelectedEditor,
Log_Reports log_Reports)
{
Log_Method log_Method = new Log_MethodImpl(0);
log_Method.BeginMethod(Info_Functions.Name_Library, this, "On_P08_SpToVar_",log_Reports);
//
//
//
//(13c)『Aa_Editor.xml』ロード
//
//
//
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole("(13c)『Aa_Editor.xml』ロード");
}
MemoryAaeditorxml moAaeditorxml = new MemoryAaeditorxmlImpl(this.Owner_MemoryApplication);
//moAaeditorxml.Clear1(log_Reports);
if (log_Reports.Successful)
{
moAaeditorxml.Load_AutoSystemVariable(
ec_Fopath_Editor,
log_Reports
);
}
//
out_moAaeditorxml_Editor = new MemoryAaeditorxml_EditorImpl(ec_Fpath_AaEditorXml.Cur_Configuration);
if (log_Reports.Successful)
{
out_moAaeditorxml_Editor.LoadFile_Aaxml(
ec_Fpath_AaEditorXml,
this.Owner_MemoryApplication.MemoryVariables,
log_Reports
);
}
if (log_Reports.Successful)
{
moAaeditorxml.LoadFile(
ec_Fopath_Editor,
log_Reports
);
}
goto gt_EndMethod;
//
//
gt_EndMethod:
log_Method.EndMethod(log_Reports);
}
示例9: Translate
//────────────────────────────────────────
public override void Translate(
Configurationtree_Node cur_Cf,
Expression_Node_String parent_Ec,
MemoryApplication memoryApplication,
Log_TextIndented_ConfigurationtreeToExpression pg_ParsingLog,
Log_Reports log_Reports
)
{
// throw new Exception(Info_SToE.LibraryName + ":" + this.GetType().Name + "#SToE: このメソッドは廃止方針です。");
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_ConfigurationtreeToExpression.Name_Library, this, "SToE",log_Reports);
if (log_Method.CanDebug(1))
{
pg_ParsingLog.Increment("(18)" + cur_Cf.Name);
}
//
//
//
//
//
//
//
// 自
//
//
//
Expression_Node_String ec_Value;
{
ec_Value = new Expression_Node_StringImpl(parent_Ec, cur_Cf);
ec_Value.AppendTextNode(
cur_Cf.Name,
cur_Cf,
log_Reports
);
}
//
//
//
// 自
//
//
//
Expression_Node_StringImpl ec_Ap1p = new Expression_Node_StringImpl(parent_Ec, cur_Cf);
ec_Ap1p.SetAttribute(
PmNames.S_NAME.Name_Pm,
ec_Value,
log_Reports
);
StringBuilder sb = new StringBuilder();
sb.Append("p");
sb.Append(this.NP1p);
sb.Append("p");
//
//
//
// 属性
//
//
//
parent_Ec.SetAttribute(
sb.ToString(),
((Expression_Node_String)ec_Ap1p),
log_Reports
);
//
// 子要素
//
this.ParseChild_InConfigurationtreeToExpression(
cur_Cf,
ec_Ap1p,
memoryApplication,
pg_ParsingLog,
log_Reports
);
goto gt_EndMethod;
//
//
//
//
gt_EndMethod:
if (Log_ReportsImpl.BDebugmode_Static)
{
pg_ParsingLog.Decrement(cur_Cf.Name);
}
log_Method.EndMethod(log_Reports);
}
示例10: Translate
//────────────────────────────────────────
public void Translate(
Configurationtree_Node cur_Cf,//<a-empty-field>
Expression_Node_String parent_Expr,//Expressionv_5FAllTrueImpl
MemoryApplication memoryApplication,
Log_TextIndented_ConfigurationtreeToExpression pg_ParsingLog,
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_ConfigurationtreeToExpression.Name_Library, this, "SToE",log_Reports);
if (log_Method.CanDebug(1))
{
pg_ParsingLog.Increment("(39)" + cur_Cf.Name);
}
//
//
//
//
//
//
//
// 自
//
//
//
Expressionv_6AEmptyFieldImpl ecv_AEmptyFld = new Expressionv_6AEmptyFieldImpl(parent_Expr, cur_Cf, memoryApplication);
//
//
//
// 属性
//
//
//
{
{
PmName pmName = PmNames.S_TYPE;
string sValue;
bool bHit = cur_Cf.Dictionary_Attribute.TryGetValue(pmName, out sValue, false, log_Reports);
if (bHit)
{
Expression_Leaf_String ec_Leaf = new Expression_Leaf_StringImpl(sValue, parent_Expr, cur_Cf);
ecv_AEmptyFld.SetAttribute(pmName.Name_Pm, ec_Leaf, log_Reports);
//evAEmptyFld.Dictionary_SAttribute.Add(sAttrName, s_Cur.SAttrDic.Get(sAttrName, true, log_Reports));
}
else
{
// クリアー上書きしない。
}
}
{
PmName pmName = PmNames.S_DESCRIPTION;
string sValue;
bool bHit = cur_Cf.Dictionary_Attribute.TryGetValue(pmName, out sValue, false, log_Reports);
if (bHit)
{
Expression_Leaf_String ec_Leaf = new Expression_Leaf_StringImpl(sValue, parent_Expr, cur_Cf);
ecv_AEmptyFld.SetAttribute(pmName.Name_Pm, ec_Leaf, log_Reports);
}
else
{
// クリアー上書きしない。
}
}
}
//
//
//
// 親へ連結
//
//
//
{
// TODO:?
parent_Expr.List_Expression_Child.Add(ecv_AEmptyFld, log_Reports);
}
//
//
//
// 子
//
//
//
{
// <f-cell>要素のリスト
this.ParseChild_InConfigurationtreeToExpression(
cur_Cf,
ecv_AEmptyFld,
memoryApplication,
pg_ParsingLog,
log_Reports
);
}
//.........这里部分代码省略.........
示例11: Parse_SAttribute
//.........这里部分代码省略.........
}
else if (NamesFnc.S_RECORD_SET_SAVE_TO2 == sName_Fnc)
{
foreach (XmlAttribute xAttr in cur_X.Attributes)
{
string xName_AttrTrim = xAttr.Name.Trim();
if (
PmNames.S_REQUIRED.Name_Attribute == xAttr.Name // 特にS→Eにパースは無い
|| PmNames.S_FROM.Name_Attribute == xAttr.Name // Xn_L07_SToE:SToE_F_5FElem/Xn_L07_SToE:SToE_F_A6FromImpl
|| PmNames.S_STORAGE.Name_Attribute == xAttr.Name // 特にS→Eにパースは無い
|| PmNames.S_FIELD.Name_Attribute == xAttr.Name // 特にS→Eにパースは無い
)
{
//
// 属性=””
cur_Cf.Dictionary_Attribute.Add(xAttr.Name, xAttr.Value, cur_Cf, true, log_Reports);
}
else
{
//
// エラー。
err_XAttr = xAttr;
goto gt_Error_UndefinedAttr;
}
}//foreach
}
else
{
foreach (XmlNode xAttr in cur_X.Attributes)
{
// とりあえず、どんな属性名でも受け入れる。
if(log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole( "<fnc name=”[" + sName_Fnc + "]”>の属性 " + xAttr.Name + "=”" + xAttr.Value + "”");
}
//
// value=""
//
// ⑥
PmName pmName = PmNames.FromSAttribute(xAttr.Name);
if (null != pmName)
{
cur_Cf.Dictionary_Attribute.Add(pmName.Name_Pm, xAttr.Value, cur_Cf, true, log_Reports);
}
else
{
cur_Cf.Dictionary_Attribute.Add(xAttr.Name, xAttr.Value, cur_Cf, true, log_Reports);
}
//
// 子<arg1>は、ここでは処理しない。
//
}
}
goto gt_EndMethod;
//
//
#region 異常系
//────────────────────────────────────────
gt_Error_UndefinedAttr:
if (log_Reports.CanCreateReport)
示例12: CreateMyself
//────────────────────────────────────────
protected override Configurationtree_Node CreateMyself(
XmlElement cur_X,
Configurationtree_Node parent_Cf,
MemoryApplication memoryApplication,
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(1);
log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "CreateMyself",log_Reports);
if (log_Method.CanDebug(1))
{
}
//
//
Configurationtree_Node cur_Cf = null;
//
// name属性は必須。
//
string sName_Fnc = cur_X.GetAttribute(PmNames.S_NAME.Name_Attribute);
if ("" == sName_Fnc)
{
goto gt_Error_UndefinedFncNameAttr;
}
//
//
if (
NamesFnc.S_CELL == sName_Fnc || //Sf:cell;
NamesFnc.S_WHERE == sName_Fnc || //Sf:where;
NamesFnc.S_REC_COND == sName_Fnc || //Sf:rec-cond;
NamesFnc.S_VALUE_CONTROL == sName_Fnc ||
NamesFnc.S_CASE == sName_Fnc || //Sf:case;”
NamesFnc.S_LISTBOX_LABELS == sName_Fnc || //Sf:list-box-labels;
NamesFnc.S_SWITCH == sName_Fnc || //Sf:switch;
NamesFnc.S_ITEM_LABEL2 == sName_Fnc || //Sf:item-label;
NamesFnc.S_ITEM_VALUE == sName_Fnc || //Sf:item-value;
NamesFnc.S_ITEM_GRAY_OUT == sName_Fnc || //Sf:item-gray-out;
NamesFnc.S_TEXT_TEMPLATE == sName_Fnc || //Sf:text-template;
NamesFnc.S_EMPTY_FIELD == sName_Fnc ||
NamesFnc.S_ALL_TRUE == sName_Fnc
)
{
cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_FNC, parent_Cf);
}
else if (NamesNode.S_DATA == cur_X.Name)
{
// 【追加】
cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_DATA, parent_Cf);
}
else if (NamesFnc.S_RECORD_SET_SAVE_TO2 == sName_Fnc)
{
// ノード名は fnc では。
cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_A_RECORD_SET_SAVE_TO, parent_Cf);
}
else
{
// <fnc name=”Sa:入力値の確定;”>
// などがここにくる。
cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_FNC, parent_Cf);
}
goto gt_EndMethod;
//
//
#region 異常系
//────────────────────────────────────────
gt_Error_UndefinedFncNameAttr:
if (log_Reports.CanCreateReport)
{
Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
r.SetTitle("▲エラー412!", log_Method);
Log_TextIndented s = new Log_TextIndentedImpl();
s.Append("<fnc>要素に、name属性が指定されていませんでした。");
s.Newline();
s.Newline();
// ヒント
s.Append(r.Message_Configuration(parent_Cf));
r.Message = s.ToString();
log_Reports.EndCreateReport();
}
goto gt_EndMethod;
//────────────────────────────────────────
#endregion
//
//
gt_EndMethod:
log_Method.EndMethod(log_Reports);
return cur_Cf;
}
示例13: LinkToParent
//────────────────────────────────────────
/// <summary>
/// 親要素に、この要素を追加。
/// </summary>
protected override void LinkToParent(
Configurationtree_Node cur_Cf, Configurationtree_Node parent_Cf, MemoryApplication memoryApplication, Log_Reports log_Reports)
{
Log_Method log_Method = new Log_MethodImpl(0);
log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "LinkToParent",log_Reports);
//
// name属性は必須。
//
string sName_Fnc;
cur_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName_Fnc, true, log_Reports);
if (!log_Reports.Successful)
{
goto gt_EndMethod;
//goto gt_Error_UndefinedFncNameAttr;
}
string parent_SName_Fnc;
{
//
// ※注意 <data >も、<fnc >扱い。name属性を持っていない。
//
bool bRequired = false;
parent_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out parent_SName_Fnc, bRequired, log_Reports);
if (!log_Reports.Successful)
{
goto gt_EndMethod;
//goto gt_Error_UndefinedFncNameAttr;
}
}
if (NamesFnc.S_WHERE == sName_Fnc)
{
//
//
//
// 親へ連結。
//
//
//
parent_Cf.List_Child.Add(
cur_Cf,
log_Reports
);
// デバッグ出力
if (log_Method.CanDebug(1))
{
Log_TextIndented s = new Log_TextIndentedImpl();
parent_Cf.ToText_Locationbreadcrumbs(s);
//log_Method.WriteDebug_ToConsole( "<fnc name=”[" + sFncName + "]”>要素 親要素「S■[" + s_Parent.Name_Node + "]」の子リストに、自分を追加。 子要素の数は[" + s_Cur.CountChildNodes + "]でした。");
log_Method.WriteDebug_ToConsole("<fnc name=”[" + sName_Fnc + "]”>要素 親要素「S■[" + parent_Cf.Name + "]」の『属性[" + cur_Cf.Name + "]』に、自分「S■[" + cur_Cf.Name + "]」を追加。 子要素の数は[" + cur_Cf.List_Child.Count + "]でした。 Place=[" + s.ToString() + "]");
}
}
else if (NamesFnc.S_CASE == sName_Fnc)
{
//
// 親要素は Sf:switch; である必要があります。
//
if (NamesFnc.S_SWITCH != parent_SName_Fnc)
{
if (log_Reports.CanCreateReport)
{
Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
r.SetTitle("▲エラー308!", log_Method);
Log_TextIndented s = new Log_TextIndentedImpl();
s.Append("Sf:case;系要素の親は f-switch を期待します。");
s.Newline();
s.Newline();
s.Append("親ノード名=[");
s.Append(parent_Cf.Name);
s.Append("]");
s.Newline();
s.Newline();
// ヒント
s.Append(r.Message_Configuration(parent_Cf));
r.Message = s.ToString();
log_Reports.EndCreateReport();
}
goto gt_EndMethod;
}
// 要素の(OAelemListではなく)OAcaseListに、この Sf:case; 要素を追加。
//
//
//
// 親へ連結。
//.........这里部分代码省略.........
示例14: Translate
//────────────────────────────────────────
/// <summary>
/// <arg1>
/// </summary>
/// <param name="oFStrNode"></param>
/// <param name="nFAelem"></param>
/// <param name="moOpyopyo"></param>
/// <param name="log_Reports"></param>
public override void Translate(
Configurationtree_Node cur_Cf,//「S■arg1」
Expression_Node_String parent_Ec,//親「E■fnc」
MemoryApplication memoryApplication,
Log_TextIndented_ConfigurationtreeToExpression pg_ParsingLog,
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_ConfigurationtreeToExpression.Name_Library, this, "SToE",log_Reports);
//
// デバッグオープンの前に。
//
// 「S■arg1 name=”★”」属性
//
string sName_MyFnc;
cur_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName_MyFnc, false, log_Reports);
if (log_Method.CanDebug(1))
{
Dictionary<string, string> s_Dic = new Dictionary<string, string>();
s_Dic.Add(PmNames.S_NAME.Name_Pm, sName_MyFnc);
pg_ParsingLog.Increment("(6.arg1・3要素)" + cur_Cf.Name, s_Dic);
}
//
//
if (log_Method.CanDebug(2))
{
log_Method.WriteDebug_ToConsole("「S■arg1・3」要素 解析開始┌────────────────┐ 自arg1・3は、e_Parent=[" + parent_Ec.Cur_Configuration.Name + "]の”" + sName_MyFnc + "”属性になる。");
}
string parent_SName_Fnc;
{
// ヒット必須にするとエラーになる?
parent_Ec.TrySelectAttribute(out parent_SName_Fnc, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);
if (!log_Reports.Successful)
{
goto gt_EndMethod;
}
//if (0 < d_InMethod.NDebugLevel)
//{
// if (NamesNode.S_FNC != e_Parent.Cur_Configurationtree.Name)
// {
// d_InMethod.WriteDebug_ToConsole(1, "fnc以外の親要素「E■[" + e_Parent.Cur_Configurationtree.Name + "]」");
// }
//}
}
//
//
//
// 自
//
//
//
Expression_Node_String cur_Ec = new Expression_Node_StringImpl(parent_Ec, cur_Cf);
//
//
//
// 属性
//
//
//
if (log_Reports.Successful)
{
// 元からあった。
this.ParseAttr_InConfigurationtreeToExpression(
cur_Cf,
cur_Ec,
true,//name属性は必須。
true,//value属性は、子<f-str>にする。
log_Reports
);
}
//
//
//
// 子
//
//
//
if (log_Reports.Successful)
{
this.ParseChild_InConfigurationtreeToExpression(
cur_Cf,
cur_Ec,
//.........这里部分代码省略.........
示例15: Execute5_Main
//────────────────────────────────────────
/// <summary>
/// 値を算出します。
/// </summary>
/// <returns></returns>
public override string Execute5_Main(
Log_Reports log_Reports
)
{
Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
log_Method.BeginMethod(Info_Expr.Name_Library, this, "Execute5_Main", log_Reports);
//
//
StringBuilder sb_Result = new StringBuilder();
//
//
//
// 子
//
//
//
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole(" ┌────┐ 子要素数=[" + this.List_Expression_Child.Count + "]");
}
List<Expression_Node_String> ecList_Child = this.List_Expression_Child.SelectList(EnumHitcount.Unconstraint, log_Reports);
foreach (Expression_Node_String ec_Child in ecList_Child)
{
//
// 子ノード名、子ファンク名
//
string sChildNodeName = ec_Child.Cur_Configuration.Name;
string sChildFncName = "";
{
EnumHitcount hits;
if (
NamesNode.S_ARG == sChildNodeName ||
NamesNode.S_FNC == sChildNodeName
)
{
// <arg >の場合。
// <fnc >の場合。
hits = EnumHitcount.One;
}
else
{
hits = EnumHitcount.One_Or_Zero;
}
bool bHit = ec_Child.TrySelectAttribute(out sChildFncName, PmNames.S_NAME.Name_Pm, hits, log_Reports);
}
//
//
if (
// 子「S■arg name=”case”」
NamesNode.S_ARG == sChildNodeName &&
PmNames.S_VALUE_CASE.Name_Pm == sChildFncName)
{
// Sf:case;要素の子<arg>は無視します。
}
else
{
string sValue = ec_Child.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole(" ・子[" + sChildNodeName + "] name=”[" + sChildFncName + "]” 属性数=[" + ec_Child.Dictionary_Expression_Attribute.Count + "] 値=”[" + sValue + "]”");
}
sb_Result.Append(sValue);
}
}
if (log_Method.CanDebug(1))
{
log_Method.WriteDebug_ToConsole( " └────┘");
}
//
//
//
//
log_Method.EndMethod(log_Reports);
return sb_Result.ToString();
}