• 大小: 33KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-07-28
  • 语言: Java
  • 标签:

资源简介

对算术表达式文法,用递归下降分析法(或预测分析方法、算符优先分析方法等)对任意输入的符号串进行分析,如合法给出相应信息,如果不合法,最好能给出在哪个产生式出现的问题。
算术表达式至少包含+、-、*、/、()。例如:i1 + i2 * ( 34 - i3 / 2 )

资源截图

代码片段和文件信息

package appmain;

import javax.swing.*;
import java.util.ArrayList;
import java.util.HashMap;

public class GrammaAnalysis {
    private ArrayList stack = new ArrayList<>(); // 当前栈
    private ArrayList reader = new ArrayList<>(); // 待读队列
    private Production[] productions = new Production[42]; // 产生式数组
    private HashMap map_i2s; // 种别码Map,种别码为键,单词为值
    private HashMap map_s2i; // 种别码Map,单词为键,种别码为值

    private void initMap() {
        map_s2i = new HashMap<>();
        map_s2i.put(“char“ 1);
        map_s2i.put(“short“ 2);
        map_s2i.put(“int“ 3);
        map_s2i.put(“long“ 4);
        map_s2i.put(“float“ 5);
        map_s2i.put(“double“ 6);
        map_s2i.put(“final“ 7);
        map_s2i.put(““ 8);
        map_s2i.put(“if“ 9);
        map_s2i.put(“else“ 10);
        map_s2i.put(“while“ 11);
        map_s2i.put(“do“ 12);
        map_s2i.put(“for“ 13);
        map_s2i.put(“break“ 14);
        map_s2i.put(“continue“ 15);
        map_s2i.put(“void“ 16);
        map_s2i.put(“id“ 20);
        map_s2i.put(“num“ 30);
        map_s2i.put(“=“ 31);
        map_s2i.put(“==“ 32);
        map_s2i.put(“>“ 33);
        map_s2i.put(“<“ 34);
        map_s2i.put(“>=“ 35);
        map_s2i.put(“<=“ 36);
        map_s2i.put(“+“ 37);
        map_s2i.put(“-“ 38);
        map_s2i.put(“*“ 39);
        map_s2i.put(“/“ 40);
        map_s2i.put(“(“ 41);
        map_s2i.put(“)“ 42);
        map_s2i.put(“[“ 43);
        map_s2i.put(“]“ 44);
        map_s2i.put(“{“ 45);
        map_s2i.put(“}“ 46);
        map_s2i.put(““ 47);
        map_s2i.put(“:“ 48);
        map_s2i.put(“;“ 49);
        map_s2i.put(“!=“ 50);
        map_s2i.put(“$“ 60);

        map_i2s = new HashMap<>();
        map_i2s.put(1 “char“);
        map_i2s.put(2 “short“);
        map_i2s.put(3 “int“);
        map_i2s.put(4 “long“);
        map_i2s.put(5 “float“);
        map_i2s.put(6 “double“);
        map_i2s.put(7 “final“);
        map_i2s.put(8 ““);
        map_i2s.put(9 “if“);
        map_i2s.put(10 “else“);
        map_i2s.put(11 “while“);
        map_i2s.put(12 “do“);
        map_i2s.put(13 “for“);
        map_i2s.put(14 “break“);
        map_i2s.put(15 “continue“);
        map_i2s.put(16 “void“);
        map_i2s.put(20 “id“);
        map_i2s.put(30 “num“);
        map_i2s.put(31 “=“);
        map_i2s.put(32 “==“);
        map_i2s.put(33 “>“);
        map_i2s.put(34 “<“);
        map_i2s.put(35 “>=“);
        map_i2s.put(36 “<=“);
        map_i2s.put(37 “+“);
        map_i2s.put(38 “-“);
        map_i2s.put(39 “*“);
        map_i2s.put(40 “/“);
        map_i2s.put(41 “(“);
        map_i2s.put(42 “)“);
        map_i2s.put(43 “[“);
        map_i2s.put(44 “]“);
        map_i2s.put(45 “{“);
        map_i2s.put(46 “}“);
        map_i2s.put(47 ““);
        map_i2s.put(48 “:“);
      

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-03-30 14:51  .idea\
     目录           0  2020-03-30 14:51  .idea\artifacts\
     文件         287  2020-03-30 14:49  .idea\artifacts\_jar.xml
     文件         244  2020-03-30 14:15  .idea\encodings.xml
     文件         283  2020-03-30 14:23  .idea\misc.xml
     文件         277  2020-03-30 14:15  .idea\modules.xml
     文件        6338  2020-03-30 14:50  .idea\workspace.xml
     目录           0  2020-03-30 14:51  bin\
     目录           0  2020-03-30 14:51  bin\appmain\
     文件         619  2020-03-30 14:28  bin\appmain\GrammaAnalysis$Production.class
     文件       13042  2020-03-30 14:28  bin\appmain\GrammaAnalysis.class
     文件        3623  2020-03-30 14:46  bin\appmain\LexicalAnalyzer.class
     文件        4283  2020-03-30 14:23  bin\appmain\Mainframe.class
     目录           0  2020-03-30 14:51  bin\meta-INF\
     文件          56  2020-03-30 14:43  bin\meta-INF\MANIFEST.MF
     目录           0  2020-03-30 14:51  src\
     目录           0  2020-03-30 14:51  src\appmain\
     文件       24019  2020-03-30 14:28  src\appmain\GrammaAnalysis.java
     文件        5944  2020-03-30 14:34  src\appmain\LexicalAnalyzer.java
     文件        2930  2019-12-17 14:53  src\appmain\Mainframe.java
     目录           0  2020-03-30 14:51  src\meta-INF\
     文件          56  2020-03-30 14:43  src\meta-INF\MANIFEST.MF
     文件         448  2020-03-30 14:15  词法分析器.iml
     文件       11555  2020-03-30 14:50  语法分析器.jar

评论

共有 条评论