/// <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); }
/// <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); }
/// <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; } }