예제 #1
0
        private async Task SetbufAsync(String _strbuf)
        {   // [_wbuf]情報設定
            _wbuf = _strbuf;
            if (_wbuf == null)
            {   // 設定情報は無し?
                _empty = true;
            }
            else
            {
                _empty = false;
            }

            _rsvcode = RsvCode.RSV_NONE;    // 予約語:未定義
        }
예제 #2
0
        public async Task ExecAsync(String msg)
        {   // 予約語確認
            await SetbufAsync(msg);                 // 入力内容の作業領域設定

            if (!_empty)
            {   // バッファーに実装有り
                _wbuf = _wbuf.Trim(_trim);       // 右側余白情報を削除

                if (_wbuf.Length == 0 || _wbuf == null)
                {   // バッファー情報無し
                    await ClearAsync();           // 作業領域の初期化
                }
                else
                {   // 予約語検索・評価
                    foreach (var __rsv in _RsvTable1)
                    {   // クラス関連の予約語を評価する
                        if (__rsv == _wbuf)
                        {   // 予約語定義が有るか?
                            _rsvcode = RsvCode.RSV_CLASS;    // 予約語:クラス
                            break;
                        }
                    }
                    if (_rsvcode == RsvCode.RSV_NONE)
                    {   // 予約語は未定義?
                        foreach (var __rsv in _RsvTable2)
                        {   // 例外関連の予約語を評価する
                            if (__rsv == _wbuf)
                            {   // 予約語定義が有るか?
                                _rsvcode = RsvCode.RSV_EXCEPT;    // 予約語:例外
                                break;
                            }
                        }
                    }
                    if (_rsvcode == RsvCode.RSV_NONE)
                    {   // 予約語は未定義?
                        foreach (var __rsv in _RsvTable3)
                        {   // アクセス修飾子関連の予約語を評価する
                            if (__rsv == _wbuf)
                            {   // 予約語定義が有るか?
                                _rsvcode = RsvCode.RSV_ACCESS;    // 予約語:アクセス修飾子
                                break;
                            }
                        }
                    }
                    if (_rsvcode == RsvCode.RSV_NONE)
                    {   // 予約語は未定義?
                        foreach (var __rsv in _RsvTable4)
                        {   // 制御フロー関連の予約語を評価する
                            if (__rsv == _wbuf)
                            {   // 予約語定義が有るか?
                                _rsvcode = RsvCode.RSV_CONTROL;    // 予約語:制御フロー
                                break;
                            }
                        }
                    }
                    if (_rsvcode == RsvCode.RSV_NONE)
                    {   // 予約語は未定義?
                        foreach (var __rsv in _RsvTable5)
                        {   // データ型関連の予約語を評価する
                            if (__rsv == _wbuf)
                            {   // 予約語定義が有るか?
                                _rsvcode = RsvCode.RSV_DATA;    // 予約語:データ型
                                break;
                            }
                        }
                    }
                    if (_rsvcode == RsvCode.RSV_NONE)
                    {   // 予約語は未定義?
                        foreach (var __rsv in _RsvTable6)
                        {   // その他関連の予約語を評価する
                            if (__rsv == _wbuf)
                            {   // 予約語定義が有るか?
                                _rsvcode = RsvCode.RSV_OTHER;    // 予約語:その他
                                break;
                            }
                        }
                    }

                    // [Namespace][Class]検出確認
                    if (_rsvcode == RsvCode.RSV_OTHER && _wbuf == "namespace")
                    {   // [namespace]検出?
                        _Is_namespace = true;       // [namespace]検出
                        _Is_class = false;
                        _Is_func = false;
                    }
                    else
                    {
                        if (_rsvcode == RsvCode.RSV_CLASS && _wbuf == "class")
                        {   // [class]検出?
                            _Is_class = true;       // [class]検出
                            _Is_namespace = false;
                            _Is_func = false;
                        }
                        else
                        {
                            if (_rsvcode == RsvCode.RSV_NONE)
                            {   // 未定義?
                                await ChkfncAsync(_wbuf);   // [Function]有効確認
                            }
                        }
                    }
                }
            }
        }
예제 #3
0
        public CS_RsvwrdAsync()
        {   // コンストラクタ
            _wbuf = null;       // 設定情報無し
            _empty = true;

            _rsvcode = RsvCode.RSV_NONE;    // 予約語:未定義
            _Is_namespace = false;          // [Namespace]未検出
            _Is_class = false;              // [Class]未検出
            _Is_func = false;               // [Function]未検出
        }
예제 #4
0
        public async Task ClearAsync()
        {   // 作業領域の初期化
            _wbuf = null;       // 設定情報無し
            _empty = true;

            _rsvcode = RsvCode.RSV_NONE;    // 予約語:未定義
        }
예제 #5
0
        public void Clear()
        {   // 作業領域の初期化
            _wbuf = null;       // 設定情報無し
            _empty = true;

            _rsvcode = RsvCode.RSV_NONE;    // 予約語:未定義
        }