示例#1
0
        /// <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);
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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);
        }