yuyer.java

来自「桂林电子科技大学编译原理完整JAVA源代码(词法、语法、语义) 此为完整版本」· Java 代码 · 共 71 行

JAVA
71
字号
package news;
import java.lang.*;
import java.util.Collections.*;
    class Yuyer
    {
        private int num = 0;//临时变量的编号
        public int n = 1, m = 1, c = 1;
        public String[][] quan =new String[][]{ { "", "", "", "" } };//保存四元式
        public Yuyer()
        {
        }
        public void gen(String opp,String opp1,String opp2,String res)
        {
            if (quan[0][0] == "")
            {
                quan[0][0] = opp;
                quan[0][1] = opp1;
                quan[0][2] = opp2;
                quan[0][3] = res;
            }
            else
            {
                String[][] later = quan;//刚得到的字符串
                int i = later.length/4 + 1;
                quan = new String[i][4];//申请一个长一个的字符数组。
                for (i = 0; i < later.length/ 4; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        quan[i][j] = later[i][j];
                    }
                }
                quan[i][0] = opp;
                quan[i][1] = opp1;
                quan[i][2] = opp2;
                quan[i][3] = res;
            }
            n++;
        }

        public String NewTemp()
        {
            num++;
            return ("T" + num);
        }
        public int Merge(int c, int d)
        {
            int n;
            if (d == 0)
                return c;
            else
            {
                n =d;
                while (Integer.parseInt(quan[n][3]) != 0)
                   n = Integer.parseInt(quan[n][3]);
                quan[n][3] =Integer.valueOf(c).toString();
                return d;
            }
        }
     
        public void BackPatch(int p, int t)
        {
            int n= p - 1 ;
            if (n>0)
            {
                quan[n][3] = Integer.valueOf(t).toString();
            }
        }       

    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?