示例#1
0
        private async void button04_Click(object sender, RoutedEventArgs e)
        {   // [ChkClass]ボタン押下
            // WriteLineResult("\n[ChkClass]ボタン押下");
            String KeyWord = textBox02.Text;
            String _ans;

            // await chkclass.ClearAsync();
            chkclass.Is_class = Appflg;
//            chkclass.Wbuf = KeyWord;
//            chkclass.Lno = 10;
            _ans = await chkclass.ExecAsync(10, KeyWord);

            if (chkclass.Result != "")
            {   // Function検出?
                WriteLineResult("Result : [{0}]", _ans);
            }
            if (chkclass.Is_class)
            {   // [Namespace]検出?
                WriteLineResult("ChkClass : True");
                Appflg = true;
            }
            else
            {
                WriteLineResult("ChkClass : False");
                Appflg = false;
            }
        }
        public async Task ExecAsync()
        {                     // 評価
            if (!_empty)
            {                 // バッファーに実装有り?
                _result = ""; // 出力情報をクリア
                await chknamespace.ClearAsync();

                await chkclass.ClearAsync();

                await chkfunc.ClearAsync();

                // トークン評価を行う
                await getken.ClearAsync();

                await getken.ExecAsync(_wbuf);

                if (getken.Wcnt != 0)
                {   // トークン有り?
                    _wcnt = getken.Wcnt;
                    _arry = new string[_wcnt];
                    for (int i = 0; i < _wcnt; i++)
                    {   // 全ての要素に対して処理を行う
                        _arry[i] = getken.Array[i];
                    }
                    for (int i = 0; i < _wcnt; i++)
                    {   // 全ての要素に対して処理を行う
                        // [Namespace]に対する処理を行う。
                        await chknamespace.ExecAsync(_lno, _wbuf);

                        if (chknamespace.Is_namespace)
                        {                                              // [Namespace]検出?
                            _Is_namespace = chknamespace.Is_namespace; // [Namespace]フラグ:true
                            continue;                                  // 名称取り出し
                        }
                        else
                        {
                            if ((_Is_namespace) && (!string.IsNullOrEmpty(chknamespace.Result)))
                            {   // [Namespace]情報を抜き出したか?
                                _result       = chknamespace.Result;
                                _empty        = false;
                                _Is_namespace = false;
                                break;
                            }
                        }

                        // [Class]に対する処理を行う。
                        await chkclass.ExecAsync(_lno, _wbuf);

                        if (chkclass.Is_class)
                        {                                  // [Class]検出?
                            _Is_class = chkclass.Is_class; // [Class]フラグ:true
                            continue;                      // 名称取り出しへ
                        }
                        else
                        {
                            if ((_Is_class) && (!string.IsNullOrEmpty(chkclass.Result)))
                            {   // [Class]情報を抜き出したか?
                                _result   = chkclass.Result;
                                _empty    = false;
                                _Is_class = false;
                                break;
                            }
                        }

                        // [Function]に対する処理を行う。
                        await chkfunc.ExecAsync(_lno, _wbuf);

                        if (chkfunc.Is_func)
                        {                               // [Function]検出?
                            _Is_func = chkfunc.Is_func; // [Function]フラグ:true
                            // 名称取り出しへ
                        }
                        else
                        {
                            if ((_Is_func) && (!string.IsNullOrEmpty(chkfunc.Result)))
                            {   // [Function]情報を抜き出したか?
                                _result  = chkfunc.Result;
                                _empty   = false;
                                _Is_func = false;
                            }
                        }
                    }
                }
                else
                {
                    _result = "";       // 出力情報をクリア
                    _empty  = true;
                }
            }
            else
            {
                _result = "";       // 出力情報をクリア
            }
        }