Ejemplo n.º 1
0
        /// <summary>
        /// 数字
        /// </summary>
        private void Number(string oper)
        {
            if (!string.IsNullOrEmpty(oper) && !(oper == "-" || oper == "~"))
            {
                this.Error();
            }
            var value = oper + this.GetIntString();
            var consE = new JConstEleme(value, EValueType.Number);
            var noper = false;

            this.SetUpPoint();
            this._Char = this.PBParser.GetNextChar(false);
            if (this.IsAddOrReduce)
            {
                var uChar = this.PBParser.GetNextChar(false);
                if (this._Char == uChar)
                {
                    value += value + uChar + uChar;
                    noper  = true;
                }
            }
            if (!noper)
            {
                this.ResetUpPoint();
            }


            this.AddFather(this.pValueEleme, consE);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 字符串
        /// </summary>
        private void _String(string oper)
        {
            if (!string.IsNullOrEmpty(oper))
            {
                this.Error();
            }
            var tag   = this.GetString(this._Char);
            var consE = new JConstEleme(tag, EValueType.String);

            this.AddFather(this.pValueEleme, consE);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 索引
        /// </summary>
        private void Index()
        {
Start:
            this.SetUpPoint();
            this.GetChar();
            BEleme elem = null;

            if (Tools.StrStartChars.Contains(this._Char))
            {
                elem = new JConstEleme("\"" + this.GetString(this._Char) + "\"", EValueType.Const);
            }
            else if (char.IsNumber(this._Char))
            {
                elem = new JConstEleme(this.GetIntString(), EValueType.Const);
            }
            else
            {
                this.ResetUpPoint();
                elem        = new JValueEleme();
                elem.Father = this.NEleme;
                var valueS = new ValueSpan(this.PBParser, elem);
                valueS.Init();
            }
            this.GetChar();
            switch (this._Char)
            {
            case ',':
                goto Start;

            case ']':
                var jIndex = new JIndexEleme();
                jIndex.IndexEleme        = elem;
                elem.Father              = jIndex;
                this.pVariableAttr.Index = jIndex;
                jIndex.Father            = this.NEleme;
                this.End(EPType.Index, jIndex);
                break;

            default:
                this.Error();
                break;
            }
        }