1:  package compiler;
   2:   
   3:  import java.io.BufferedWriter;
   4:   
   5:  public class Err {
   6:   
   7:      public  int errCount = 0;
   8:      public static final String[] errInfo = new String[]{
   9:          "",
  10:          "1.应是=而不是:=",
  11:          "2.=后应为数",
  12:          "3.标识符后应为=",
  13:          "4.const,var,procedure 后应为标识符",
  14:          "5.漏掉逗号或分号",
  15:          "6.过程说明后的符号不正确",
  16:          "7.应为语句",
  17:          "8.程序体内语句后的符号不正确",
  18:          "9.应为句号",
  19:          "10.语句之间漏分号",
  20:          "11.标识符未说明",
  21:          "12.不可向常量或过程名赋值",
  22:          "13.应为赋值运算符:=",
  23:          "14.call后应为标识符",
  24:          "15.不可调用常量或变量",
  25:          "16.应为then",
  26:          "17.应为分号或end",
  27:          "18.应为do",
  28:          "19.语句后的符号不正确",
  29:          "20.应为关系运算符",
  30:          "21.表达式内不可有过程标识符",
  31:          "22.漏右括号",
  32:          "23.因子后不可为此符号",
  33:          "24.表达式不能以此符号开始",
  34:          "25.这个数太大",
  35:          "26.Not Defined Yet",
  36:          "27.Not Defined Yet",
  37:          "28.Not Defined Yet",
  38:          "29.Not Defined Yet",
  39:          "30.Not Defined Yet",    
  40:          "31.数越界",
  41:          "32.嵌套层数过大",
  42:          "33.格式错误,应为右括号",
  43:          "34.格式错误,应为左括号",
  44:          "35.read()中的变量未声明"
  45:      };
  46:   
  47:      /**
  48:       * 打印错误信息
  49:       * @param errcode 
  50:       */
  51:      public  void report(int errcode,int line) {
  52:          try {
  53:              System.out.println("*** line( "+line+"):" + errInfo[errcode] + "  ***");
  54:              PL0.errWriter.write("*** line ( "+line+"):"+ errInfo[errcode] + "  ***\n");
  55:              errCount++;
  56:          }catch(Exception e){
  57:              e.printStackTrace();
  58:              System.out.println("***print error infomation meet with error***");
  59:          }
  60:   
  61:      }
  62:  }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

PL/0编译器(java version) - Err.java的更多相关文章

  1. PL/0编译器(java version) - MainFrame.java

    1: /* 2: * To change this license header, choose License Headers in Project Properties. 3: * To chan ...

  2. PL/0编译器实践---后记

    花了几天时间,把清华版的<编译原理>一书中的PL/0编译器实践了一遍.颇有收获,记录如下: 理解代码的技巧,如何理解一份代码,比如这个程序,其逻辑相对于一般程序就比较复杂了,如何翻译,虚拟 ...

  3. PL/0编译器(java version)–Praser.java

    1: package compiler; 2:   3: import java.io.IOException; 4: import java.util.BitSet; 5:   6: /** 7: ...

  4. PL/0编译器(java version) – SymbolTable.java

    1: package compiler; 2: //竟然没有对符号表检查大小,会溢出的. 3:   4: import java.io.IOException; 5:   6: public clas ...

  5. PL/0编译器(java version) – Scanner.java

    1: package compiler; 2:   3: import java.io.BufferedReader; 4: import java.io.FileNotFoundException; ...

  6. PL/0编译器(java version)–PL0.java

    1: package compiler; 2:   3: import java.io.BufferedWriter; 4: import java.io.FileWriter; 5:   6: /* ...

  7. PL/0编译器(java version) - Interpreter.java

    1: package compiler; 2:   3: import java.io.BufferedReader; 4: import java.io.BufferedWriter; 5: imp ...

  8. PL/0编译器(java version) – Symbol.java

    1: package compiler; 2:   3: /** 4: * 采用全局变量sym来存储符号码,并用全局变量id和num来传递语义值 5: * 6: * @author jiangnan ...

  9. PL/0编译器(java version)–Pcode.java

    1: package compiler; 2:   3: /** 4: * //虚拟机指令 5: * 6: * @author jiangnan 7: * 8: */ 9: public class ...

随机推荐

  1. 部署Zipkin分布式性能追踪日志系统的操作记录

    Zipkin是Twitter的一个开源项目,是一个致力于收集Twitter所有服务的监控数据的分布式跟踪系统,它提供了收集数据,和查询数据两大接口服务. 部署Zipkin环境的操作记录:部署Zipki ...

  2. 23Spring_JdbcTemplate来实现单表的增删改查

    第一步建表:

  3. 解析 HTTP(HttpURLConnection getResponseCode)

    HTTP 请求 客户端通过发送 HTTP 请求向服务器请求对资源的访问.HTTP 请求由三部分组成,分别是:请求行.消息报头和请求征文. 3.1.请求行 请求行以一个方法符号开头,后面跟着请求 URI ...

  4. c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑

    转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时 ...

  5. no.3 base64

    tool.chinaz.com的base64有的无法解密: 如:ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJI ...

  6. RESideMenu左右半侧滑的功能实现,主视图会和状态栏(StatusBar)不会随着一起滑动

    具体demo去github下载,这里不详细描述

  7. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航

    一.前言 上篇博客中已经总体的说了一下权限系统的思路和表结构设计,那接下来我们就要进入正文了,先从菜单导航这个功能开始. 二.实现 这个页面基本不用什么需求分析了,大家都很明白,不过在这个页面要多维护 ...

  8. .NET MVC框架中控制器接收参数的四种方式

    1.通过路由中的配置的参数名字直接接收(要求:两者同名) routes.MapRoute(                 name: "Default",             ...

  9. VS 2010配置Qt 4.8.5

    由于早上偶然的一个念想,今天的宝贵时光就奉献给了Qt的安装及其和VS 2010的配置上了. 说实话,开始时真的查找了资料,包括博客.文库.知道等等,作者们写得都很全面,细致. 但自己动手尝试就是错误百 ...

  10. ThinkPHP之验证码的使用

    ThinkPHP中已经提供了验证码的生成以及验证的功能.下面介绍如何使用验证码.编程的时候还是采用MVC的方式 View层 <!DOCTYPE html> <html> < ...