PL/0编译器(java version) - Err.java
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的更多相关文章
- PL/0编译器(java version) - MainFrame.java
1: /* 2: * To change this license header, choose License Headers in Project Properties. 3: * To chan ...
- PL/0编译器实践---后记
花了几天时间,把清华版的<编译原理>一书中的PL/0编译器实践了一遍.颇有收获,记录如下: 理解代码的技巧,如何理解一份代码,比如这个程序,其逻辑相对于一般程序就比较复杂了,如何翻译,虚拟 ...
- PL/0编译器(java version)–Praser.java
1: package compiler; 2: 3: import java.io.IOException; 4: import java.util.BitSet; 5: 6: /** 7: ...
- PL/0编译器(java version) – SymbolTable.java
1: package compiler; 2: //竟然没有对符号表检查大小,会溢出的. 3: 4: import java.io.IOException; 5: 6: public clas ...
- PL/0编译器(java version) – Scanner.java
1: package compiler; 2: 3: import java.io.BufferedReader; 4: import java.io.FileNotFoundException; ...
- PL/0编译器(java version)–PL0.java
1: package compiler; 2: 3: import java.io.BufferedWriter; 4: import java.io.FileWriter; 5: 6: /* ...
- PL/0编译器(java version) - Interpreter.java
1: package compiler; 2: 3: import java.io.BufferedReader; 4: import java.io.BufferedWriter; 5: imp ...
- PL/0编译器(java version) – Symbol.java
1: package compiler; 2: 3: /** 4: * 采用全局变量sym来存储符号码,并用全局变量id和num来传递语义值 5: * 6: * @author jiangnan ...
- PL/0编译器(java version)–Pcode.java
1: package compiler; 2: 3: /** 4: * //虚拟机指令 5: * 6: * @author jiangnan 7: * 8: */ 9: public class ...
随机推荐
- C# WinForm 中Console 重定向输出到ListBox控件中显示
{ VoidAction action = { lstBox.Items. ...
- javascript js string.Format()收集
方案1http://www.cnblogs.com/loogn/archive/2011/06/20/2085165.html String.prototype.format = function(a ...
- UIVisualEffectView为视图添加特殊效果
在iOS 8后,苹果开放了不少创建特效的接口,其中就包括创建毛玻璃(blur)的接口. 通常要想创建一个特殊效果(如blur效果),可以创建一个UIVisualEffectView视图对象,这个对象提 ...
- *.location.href 用法:
*.location.href 用法: top.location.href=”url” 在顶层页面打开url(跳出框架) self.location.href=”url” ...
- IEnumerable和IEnumerator 详解 (转)
原文链接:http://blog.csdn.net/byondocean/article/details/6871881 参考链接:http://www.cnblogs.com/hsapphire/a ...
- cookies,sessionStorage和localStorage的区别
联系: sessionStorage和localStorage一样,都是用来缓存客户端缓存信息. 他们都只能存储字符串类型对象. 区别: localStorage的生命周期是永久的,除非用户主动清除浏 ...
- Linux 网络编程二(Socket创建)
TCP通信 一个程序使用套接字需要执行4个步骤. --分配套接口和初始化 --连接 --发送或接收数据 --关闭套接字 涉及到的调用包括socket.bind.listen.connect(阻塞线程) ...
- WorldWind源码剖析系列:WorldWind实时确定、更新、初始化和渲染地形和纹理数据
WorldWind实时确定.更新.初始化和渲染地形和纹理数据 当用户点击WorldWind中的地球时,首先响应的是WorldWindow.OnPaint()函数,后续程序的调用流程如下图所示. 零散知 ...
- php基础33:正则匹配-perl
<?php //1.搜索数组中的相匹配的字符串 //preg_grep() 返回一个数组 $language = array("php","asp",&q ...
- 如何设置nesC在vim中语法高亮
默认的vim没有支持nesC语法高亮,给阅读源码带来不便.不过可以通过装NesC Syntax Highlighting插件来解决这个问题,具体操作如下: 步骤一:下载插件 在http://www ...