예제 #1
0
        public void TestMethod1()
        {
            CS_Rsvwrd rsvwrd = new CS_Rsvwrd();

            #region 予約語1:クラス確認
            rsvwrd.Clear();
            rsvwrd.Wbuf = "class";
            rsvwrd.Exec();
            Assert.IsTrue(rsvwrd.Rsv);
            Assert.IsTrue(rsvwrd.Is_class);
            Assert.IsFalse(rsvwrd.Is_namespace);
            Assert.AreEqual(1, rsvwrd.RsvKind, "RsKind[RSV_CLASS]");

            rsvwrd.Wbuf = "struct";
            rsvwrd.Exec();
            Assert.IsTrue(rsvwrd.Rsv);
            Assert.IsTrue(rsvwrd.Is_class);
            Assert.IsFalse(rsvwrd.Is_namespace);
            Assert.AreEqual(1, rsvwrd.RsvKind, "RsKind[RSV_CLASS]");
            #endregion

            #region 予約語2:例外確認
            rsvwrd.Clear();
            rsvwrd.Exec("try");

            Assert.IsTrue(rsvwrd.Rsv);
            Assert.AreEqual(2, rsvwrd.RsvKind, "RsKind[RSV_EXCEPT]");
            #endregion

            #region 予約語3:アクセス修飾子確認
            rsvwrd.Clear();
            rsvwrd.Exec("public");

            Assert.IsTrue(rsvwrd.Rsv);
            Assert.AreEqual(3, rsvwrd.RsvKind, "RsKind[RSV_ACCESS]");
            #endregion

            #region 予約語4:制御フロー文確認
            rsvwrd.Clear();
            rsvwrd.Exec("if");

            Assert.IsTrue(rsvwrd.Rsv);
            Assert.AreEqual(4, rsvwrd.RsvKind, "RsKind[RSV_CONTROL]");
            #endregion

            #region 予約語5:データ型確認
            rsvwrd.Clear();
            rsvwrd.Exec("int");

            Assert.IsTrue(rsvwrd.Rsv);
            Assert.AreEqual(5, rsvwrd.RsvKind, "RsKind[RSV_DATA]");
            #endregion

            #region 予約語6:その他確認
            rsvwrd.Clear();
            rsvwrd.Exec("namespace");

            Assert.IsTrue(rsvwrd.Rsv);
            Assert.IsTrue(rsvwrd.Is_namespace);
            Assert.IsFalse(rsvwrd.Is_class);
            Assert.AreEqual(6, rsvwrd.RsvKind, "RsKind[RSV_OTHER]");

            rsvwrd.Exec("void");
            Assert.IsTrue(rsvwrd.Rsv);
            Assert.IsTrue(rsvwrd.Is_namespace);
            Assert.IsFalse(rsvwrd.Is_class);
            Assert.AreEqual(6, rsvwrd.RsvKind, "RsKind[RSV_OTHER]");
            #endregion

            #region 非予約語確認
            rsvwrd.Clear();
            rsvwrd.Exec("function");

            Assert.IsFalse(rsvwrd.Rsv);
            Assert.AreEqual(0, rsvwrd.RsvKind, "RsKind[RSV_NONE]");
            #endregion
        }
예제 #2
0
        public CS_ChkNamespace()
        {   // コンストラクタ
            _wbuf = null;       // 設定情報無し
            _empty = true;

//            _rsvcode = RSV_NONE;    // 予約語:未定義
            _Is_namespace = false;  // [namespace]フラグ:false

            rsvwrd = new CS_Rsvwrd();           // 予約語を確認する
        }