⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycanvas4_3.java

📁 一个LL1预测分析的动态演示程序,是编译原理学习的绝好实例,赶快下吧.
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   Applet1.java

import java.awt.*;

class mycanvas4_3 extends Canvas
{

    int param;
    String strbuf[] = {
        "", "id", "+", "*", "(", ")", "$", "E", "E'", "T", 
        "T'", "F", "E-->TE'", "synch", "E'-->+TE'", "E'-->ε", "T-->FT'", "T'-->ε", "T'-->*FT'", "F-->id", 
        "F-->(E)", "出错,跳过", "表项为synch,出错,弹出非终结符号"
    };
    int buf[][] = {
        {
            0, 1, 2, 3, 4, 5, 6
        }, {
            7, 12, 0, 0, 12, 13, 13
        }, {
            8, 0, 14, 0, 0, 15, 15
        }, {
            9, 16, 13, 0, 16, 13, 13
        }, {
            10, 0, 17, 18, 0, 17, 17
        }, {
            11, 19, 13, 13, 20, 13, 13
        }
    };

    public mycanvas4_3()
    {
        param = -1;
    }

    public void paint(Graphics g)
    {
        FontMetrics fm = g.getFontMetrics();
        g.setColor(Color.black);
        g.drawLine(0, 0, 410, 0);
        g.drawLine(0, 40, 410, 40);
        g.drawLine(0, 140, 410, 140);
        g.drawLine(0, 0, 0, 140);
        g.drawLine(50, 0, 50, 140);
        g.drawLine(410, 0, 410, 140);
        g.drawString("非终结", 5, 20);
        g.drawString("符号", 5, 40);
        g.drawString("输入符号", 170, 19);
        g.drawLine(50, 20, 410, 20);
        for(int i = 0; i < 5; i++)
            g.drawLine(110 + i * 60, 20, 110 + i * 60, 140);

        for(int i = 0; i < 6; i++)
        {
            for(int j = 0; j < 7; j++)
            {
                if(param != i * 10 + j && (param / 10 != i || j != 0) && (param % 10 != j || i != 0))
                    g.setColor(Color.black);
                else
                    g.setColor(Color.red);
                String str = strbuf[buf[i][j]];
                g.drawString(str, (20 + j * 60) - fm.stringWidth(str) / 2, 20 * i + 35);
            }

        }

    }

    public void setParam(int i)
    {
        param = i;
    }
}

⌨️ 快捷键说明

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