/// <summary> /// 判断临时变量表中的成员是不是real类型(如果是real,返回true) /// </summary> /// <returns>返回判断结果</returns> private bool isReal() { try { TempIDtable LStmp = (TempIDtable)TempIDtablelist[0]; if (LStmp.Type != "real") { return(false); } } catch { try { TempSZtable LZtmp = (TempSZtable)LZtablelist[0]; if (LZtmp.Type != "real") { return(false); } } catch { return(true); } } return(true); }
/// <summary> /// 把临时数组表中的成员加入到SZtable中 /// </summary> private void toSZ() { SZlist.Add(LZlist[0]); TempSZtable LZtmp = (TempSZtable)LZtablelist[0]; if (LZtmp.Value.Count == 0) { SZtablelist.Add(new SZtable(LZtmp.Name, LZtmp.Type, LZtmp.Length, LZtmp.Level)); } else { SZtablelist.Add(new SZtable(LZtmp.Name, LZtmp.Type, LZtmp.Length, LZtmp.Level, Convert.ToInt32(LZtmp.Value[0]))); } clsLZ(); }
/// <summary> /// 等号两边的变量类型是否相同(相同为true)(等号左边为real时,肯定为true) /// </summary> /// <param name="next">要判断的变量</param> /// <param name="n">变量所在位置</param> /// <returns>返回判断结果</returns> private bool isType(int n) { if (TempIDlist.Count == 0 && LZlist.Count == 0) { return(true); } try //变量——变量 { TempIDtable LStmp = (TempIDtable)TempIDtablelist[0]; int indexID = IDlist.IndexOf(getToken(ref n)); IDtable BStmp = (IDtable)IDtablelist[indexID]; if (LStmp.Type == BStmp.Type) { return(true); } else if (LStmp.Type == "real") { return(true); } } catch { try //数组——数组 { n--; TempSZtable LZtmp = (TempSZtable)LZtablelist[0]; int indexSZ = SZlist.IndexOf(getToken(ref n)); SZtable SZtmp = (SZtable)SZtablelist[indexSZ]; if (LZtmp.Type == SZtmp.Type) { return(true); } else if (LZtmp.Type == "real") { return(true); } } catch { try //变量——数组 { n--; TempIDtable LStmp = (TempIDtable)TempIDtablelist[0]; int indexSZ = SZlist.IndexOf(getToken(ref n)); SZtable SZtmp = (SZtable)SZtablelist[indexSZ]; if (LStmp.Type == SZtmp.Type) { return(true); } else if (LStmp.Type == "real") { return(true); } } catch { try //数组——变量 { n++; TempSZtable LZtmp = (TempSZtable)LZtablelist[0]; int indexID = IDlist.IndexOf(getToken(ref n)); IDtable BStmp = (IDtable)IDtablelist[indexID]; if (LZtmp.Type == BStmp.Type) { return(true); } else if (LZtmp.Type == "real") { return(true); } } catch { } } } } return(false); }