//────────────────────────────────────────
        public static void ParseChild_InAnotherLibrary(
            Configurationtree_Node cur_Cf,
            Expression_Node_String parent_Expr,//nAcase,nFelemの両方の場合がある。
            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, "SToE_AbstractImpl", "ParseChild_InAnotherLibrary",log_Reports);

            ConfigurationtreeToExpression_F14n16 dammy = new ConfigurationtreeToExpression_F14_FncImpl_();//メソッドが使いたいだけなので、何でもいい。
            dammy.ParseChild_InConfigurationtreeToExpression(
                cur_Cf,
                parent_Expr,
                memoryApplication,
                pg_ParsingLog,
                log_Reports
                );

            goto gt_EndMethod;
            //
            //
            gt_EndMethod:

            if (Log_ReportsImpl.BDebugmode_Static)
            {
                //d_ParsingLog.Decrement(s_Cur.Name_Node);
            }
            log_Method.EndMethod(log_Reports);
        }
        //────────────────────────────────────────
        /// <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);
        }
        private void ParseChild_SpecialFnc_(
            Configurationtree_Node cur_Cf,
            Expression_Node_String cur_Ec,//「S■fnc」、や「S■event」か?
            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, "ParseChild_Special_",log_Reports);
            //
            //
            if (!log_Reports.Successful)
            {
                goto gt_EndMethod;
            }

            //
            //
            //
            // 子
            //
            //
            //
            cur_Cf.List_Child.ForEach(delegate(Configurationtree_Node s_Child, ref bool bBreak)
            {
                if (log_Reports.Successful)
                {
                    if (NamesNode.S_ARG == s_Child.Name)
                    {
                        //━━━━━
                        // arg
                        //━━━━━

                        string sName_MyFnc;
                        cur_Cf.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName_MyFnc, false, log_Reports);

                        string sName_ChildFnc;
                        s_Child.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName_ChildFnc, false, log_Reports);

                        //
                        bool bNormalize = false;
                        if(
                            // 親が「E■fnc」
                            NamesNode.S_FNC == cur_Ec.Cur_Configuration.Name &&
                            NamesFnc.S_CELL == sName_MyFnc
                            )
                        {
                            if (
                                // 子が「name=”select”」
                                PmNames.S_SELECT.Name_Pm == sName_ChildFnc
                                )
                            {
                                bNormalize = true;
                            }
                        }

                        if (bNormalize)
                        {
                            ConfigurationtreeToExpression_F14n16 to = new ConfigurationtreeToExpression_F14_FArgImpl();
                            to.Translate(
                                s_Child,
                                cur_Ec,//「E■fnc」とか
                                memoryApplication,
                                pg_ParsingLog,
                                log_Reports
                                );
                        }
                        else
                        {
                            string sValue = "";

                            //
                            // value=”” 属性が指定されていれば、その値をそのまま取得。
                            //
                            s_Child.Dictionary_Attribute.ForEach(delegate(string sPmName2, string sAttrValue2, ref bool bBreak2)
                            {
                                if (PmNames.S_VALUE.Name_Pm == sPmName2)
                                {
                                    // value属性が指定されていた場合。
                                    s_Child.Dictionary_Attribute.TryGetValue(PmNames.S_VALUE, out sValue, true, log_Reports);

                                    // 「E■arg1」は作らずに、親要素の属性として追加。
                                    Expression_Node_String e_Value = new Expression_Leaf_StringImpl(sValue, cur_Ec, cur_Ec.Cur_Configuration);
                                    cur_Ec.SetAttribute(sName_ChildFnc, e_Value, log_Reports);
                                }
                            });

                            //
                            // 子要素の有無。
                            //
                            if (0 < s_Child.List_Child.Count)
                            {
                                // 子要素が指定されている場合。

                                if ("" != sValue)
                                {
                                    // value属性が指定されているのに、子要素も指定されているのは、エラーです。

                                    if (log_Method.CanError())
                                    {
                                        log_Method.WriteError_ToConsole( " value属性が指定されているのに、子要素も指定されているのは、エラーです。");
                                    }
                                }
                                else
                                {
                                    Expression_Node_StringImpl ec_Value = new Expression_Node_StringImpl(cur_Ec, s_Child);

                                    ConfigurationtreeToExpression_F14_FncImpl_ to2 = new ConfigurationtreeToExpression_F14_FncImpl_();
                                    to2.ParseChild_SpecialFnc_(
                                        s_Child,
                                        ec_Value,
                                        memoryApplication,
                                        pg_ParsingLog,
                                        log_Reports
                                        );

                                    //
                                    // 「E■arg1」は作らずに、親要素の属性として追加。
                                    //
                                    cur_Ec.SetAttribute(sName_ChildFnc, ec_Value, log_Reports);
                                }
                            }
                            else
                            {
                                if ("" == sValue)
                                {
                                    // todo:
                                    throw new Exception(Info_ConfigurationtreeToExpression.Name_Library + ":" + this.GetType().Name + "#ParseChild:(3) 「S■[" + cur_Cf.Name + "]」の子要素「S■[" + s_Child.Name + "]」に、value属性がありませんでした。子要素もありませんでした。");
                                }
                            }
                        }

                    }
                    else if (NamesNode.S_F_VAR == s_Child.Name)
                    {
                        //━━━━━
                        // f-var
                        //━━━━━
                        //throw new Exception(Info_SToE.LibraryName + ":" + this.GetType().Name + "#ParseChild:(b)f-var 使っていなければ廃止したい。");

                        // 親要素「S■fnc」の子要素として追加します。
                        ConfigurationtreeToExpression_F14_FvariableImpl_ to = new ConfigurationtreeToExpression_F14_FvariableImpl_();
                        to.Translate(
                            s_Child,
                            cur_Ec,//「E■fnc」とか
                            memoryApplication,
                            pg_ParsingLog,
                            log_Reports
                            );
                    }
                    else if (NamesNode.S_F_STR == s_Child.Name)
                    {
                        //━━━━━
                        // f-str
                        //━━━━━
                        //throw new Exception(Info_SToE.LibraryName + ":" + this.GetType().Name + "#ParseChild:(c)f-str 使っていなければ廃止したい。");

                        // 親要素「S■fnc」の子要素として追加します。
                        ConfigurationtreeToExpression_F14_FstrImpl_ to = new ConfigurationtreeToExpression_F14_FstrImpl_();
                        to.Translate(
                            s_Child,
                            cur_Ec,//「E■fnc」とか
                            memoryApplication,
                            pg_ParsingLog,
                            log_Reports
                            );
                    }
                    else if (NamesNode.S_FNC == s_Child.Name)
                    {
                        //━━━━━
                        // fnc
                        //━━━━━
                        //throw new Exception(Info_SToE.LibraryName + ":" + this.GetType().Name + "#ParseChild:(e)fnc 使っていなければ廃止したい。");

                        //
                        // S_FVarImpl (「S■f-var」)など。
                        // 【追加 2012-05-31】
                        //

                        // 親要素「S■fnc」の子要素として追加します。
                        pg_ParsingLog.Increment("(SToE_F_4FFncImpl②)");
                        ConfigurationtreeToExpression_F14n16 to = new ConfigurationtreeToExpression_F14_FncImpl_();
                        to.Translate(
                            s_Child,// s_Fnc,//※s_Node(「S■f-var」とか)を入れるのではなく、その親を入れます。
                            cur_Ec,//「E■fnc」とかか?
                            memoryApplication,
                            pg_ParsingLog,
                            log_Reports
                            );
                        pg_ParsingLog.Decrement();

                    }
                    else if (NamesNode.S_F_PARAM == s_Child.Name)
                    {
                        //━━━━━
                        // f-param
                        //━━━━━
                        //throw new Exception(Info_SToE.LibraryName + ":" + this.GetType().Name + "#ParseChild:(f)f-param 使っていなければ廃止したい。");

                        // 【追加 2012-06-05】
                        ConfigurationtreeToExpression_F14_FparamImpl_ to4 = new ConfigurationtreeToExpression_F14_FparamImpl_();
                        to4.Translate(
                            s_Child,
                            cur_Ec,
                            memoryApplication,
                            pg_ParsingLog,
                            log_Reports
                            );

                    }
                    else
                    {
                        // todo:2
                        goto gt_Error_UndefinedChlid;
                        throw new Exception(Info_ConfigurationtreeToExpression.Name_Library + ":" + this.GetType().Name + "#ParseChild:(16) 「S■[" + cur_Cf.Name + "]」に、未定義の子要素「S■[" + s_Child.Name + "]」がありました。");
                    }
                }

                goto gt_EndMethod2;

                //
            gt_Error_UndefinedChlid:
                {
                    Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                    tmpl.SetParameter(1, cur_Cf.Name, log_Reports);//設定ノード名
                    tmpl.SetParameter(2, s_Child.Name, log_Reports);//子要素名
                    tmpl.SetParameter(3, cur_Cf.Dictionary_Attribute.Count.ToString(), log_Reports);//string属性の数

                    //string属性のリスト
                    StringBuilder s1 = new StringBuilder();
                    cur_Cf.Dictionary_Attribute.ForEach(delegate(string sKey2, string sValue2, ref bool bBreak2)
                    {
                        s1.Append("s属 [" + sKey2 + "]=[" + sValue2 + "]\n");
                    });
                    tmpl.SetParameter(4, s1.ToString(), log_Reports);

                    tmpl.SetParameter(5, cur_Cf.List_Child.Count.ToString(), log_Reports);//子要素の数

                    //子要素のリスト
                    StringBuilder s2 = new StringBuilder();
                    cur_Cf.List_Child.ForEach(
                        delegate(Configurationtree_Node cf_Child2, ref bool bBreak5)
                        {
                            s2.Append("子「S■" + cf_Child2.Name + "」\n");
                        });
                    tmpl.SetParameter(6, s2.ToString(), log_Reports);

                    tmpl.SetParameter(7, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports);//設定位置パンくずリスト

                    memoryApplication.CreateErrorReport("Er:7005;", tmpl, log_Reports);
                }
                goto gt_EndMethod2;

            gt_EndMethod2:
                ;
            });

            goto gt_EndMethod;
            //
            //
            gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }