资源简介
去年做的编译原理作业,由于时间紧迫,没有完成语法分析与语义分析,但拥有比较完善的界面(界面有两个,在主程序中可以修改使用哪个界面)。
词法规则如下:
关键字:int char if else real for do while
数字、变量名(不使用下划线,头字母不为数字)、符号
词法分析生成*.TAKEN、*.SymbolTable两个文件。
保留部分语法分析接口,可以继续完成。
词法分析部分在Lex文件夹下,生成中间数据存储的类在Data下。
由于老师给的语法分析规则太复杂(老师给的还是错的,我后来自己改的),而且在程序中还没有体现,故不上传,需要的可以来信索取,有完成的语法分析表(不知道是否正确……orz)。
注:在界面最下边……2009后面有一个箭头可以弹出菜单,选择"恢复默认设置"即可使用全部功能。将DisplayForm.cs中38-40行的
toolStrip1.Visible = false;
toolStrip2.Visible = false;
listBox1.Visible = false;
中false改为ture则默认显示全部组件。
本程序系自己完成,版权没有,盗版自由,个人完成程序均免资源分下载。
shizhiyu701@live.cn
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using LexApplication.lex;
namespace LexApplication
{
public partial class DisplayForm : Form
{
static ArrayList errorMessage = new ArrayList();
static int lineNum = 0;
static ArrayList errorLine = new ArrayList();
static ArrayList errerWors = new ArrayList();
TabPage last = new TabPage();
int sign1 = 1;
public DisplayForm()
{
InitializeComponent();
TextUserControl newUserControl = new TextUserControl();
TabPage newPage = new TabPage(“新建代码“);
newPage.Controls.Add(newUserControl);
newPage.Location = new System.Drawing.Point(4 22);
newPage.Name = “newPage“;
newPage.Padding = new System.Windows.Forms.Padding(3);
newPage.Size = new System.Drawing.Size(732 271);
newPage.TabIndex = 0;
newPage.Text = “新建代码“;
newPage.UseVisualstyleBackColor = true;
tabControl1.TabPages.Add(newPage);
newUserControl.richTextBox1.Text = ““;
toolStrip1.Visible = false;
toolStrip2.Visible = false;
listBox1.Visible = false;
}
private void toolStripLabel1_Click(object sender EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
TextUserControl newUserControl = new TextUserControl();
TabPage newPage = new TabPage(openFileDialog1.FileName);
newPage.Controls.Add(newUserControl);
newPage.Location = new System.Drawing.Point(4 22);
newPage.Name = “newPage“;
newPage.Padding = new System.Windows.Forms.Padding(3);
newPage.Size = new System.Drawing.Size(732 271);
newPage.TabIndex = 0;
newPage.Text = openFileDialog1.FileName;
newPage.UseVisualstyleBackColor = true;
tabControl1.SelectedTab = newPage;
tabControl1.TabPages.Add(newPage);
TextReader reader = new TextReader();
newUserControl.richTextBox1.Text = reader.readFile(openFileDialog1.FileName);
}
}
private void toolStripLabel2_Click(object sender EventArgs e)
{
if (tabControl1.TabPages.Count != 0)
{
Writer myWriter = new Writer();
myWriter.writeLog(tabControl1.SelectedTab.Text ((TextUserControl)tabControl1.SelectedTab.Controls[0]).richTextBox1.Text);
}
}
private void 打开ToolStripMenuItem_Click(object sender EventArgs e)
{
TextUser
- 上一篇:C#图片颜色比例分布
- 下一篇:解决IE10以上版本doPostBack未定义
相关资源
- C#图片颜色比例分布
- C#与.NET3.5高级程序设计(第4版) 中文
- C# Windows Forms程序设计pdf中文+源码
- C#MyQQ项目(三层架构完整版)
- c#数据库系统开发案例精选--随书光
- C#学籍管理系统(内含数据库)
- C#+SQL电影票销售系统
- C# 源代码员工考勤管理系统
- c# 录屏软件
- C#语言程序设计(第二版!)全部资源
- 学生学籍管理系统(C#+Access)
- c#操作摄像头(带着usb摄像头、mjpeg
- 管理系统c#+sql完整项目版
- Visual C#.NET数据库开发经典案例解析(
- C#与halcon窗体控件交互
- C#课程设计案例精编
- C#通讯录实现
- C#二次开发之海康威视摄像机登录、预
- Asp.net mvc编写的人员管理系统(入门级
- 员工考勤管理系统源码
- Visual C#.NET串口通信及测控应用典型(
- 深入理解c#(第3版) 中文版带书签
- c#实现USB摄像头录像抓拍功能
- C# 票务管理系统包含完整的源码、设
- Unity 5实战:使用C#和Unity开发多平台游
- c# 微信接口,包括小程序,企业微信
- wpf聊天小程序
- Essential C# 7.0 6th Edition.pdf
- Effective C#(covers C# 6.0).pdf
- FluentFTP已编译
评论
共有 条评论