资源简介
为简单函数绘图语言编写一个解释器。解释器接受用绘图语言编写的源程序,经语法和语义分析之后,将源程序所规定的图形显示在显示屏(或窗口)中。用编译器编写工具LEX/YACC提供的方式规定绘图语言的词法和语法,用C/C++语言编写解释器的语义。实验使用的操作系统是WIN10,实现软件是microft visual studio community 2017版本。任务划分为三个部分,分别是词法分析器、语法分析器、语义分析器。
代码片段和文件信息
#pragma warning(disable:4996)
#include “semantic.h“
#include
#define MAX_CHARS 200
extern HDC hDC; // 窗口句柄,全局变量
char SrcFilePath[MAX_CHARS]; // 用于存放源程序文件路径
TCHAR Name[] = _T(“函数绘图语言解释器“); // 窗口名
// ------------------------- 检查源程序文件是否合法函数声明
static bool CheckSrcFile(LPSTR);
/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure(HWND UINT WPARAM LPARAM);
/* Make the class name into a global variable */
TCHAR szClassName[] = _T(“函数绘图语言解释器“);
int WINAPI WinMain(HINSTANCE hThisInstance
HINSTANCE hPrevInstance
LPSTR lpszArgument
int nFunsterStil)
{
HWND hwnd; /* This is the handle for our window */
MSG messages; /* Here messages to the application are saved */
WNDCLASSEX wincl; /* Data structure for the windowclass */
int i;
/*CTestDlg *pDlg;*/
/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof(WNDCLASSEX);
/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon(NULL IDI_APPLICATION);
wincl.hIconSm = LoadIcon(NULL IDI_APPLICATION);
wincl.hCursor = LoadCursor(NULL IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after the window class */
wincl.cbWndExtra = 0; /* structure or the window instance */
/* Use Windows‘s default color as the background of the window */
wincl.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
/* Register the window class and if it fails quit the program */
if (!RegisterClassEx(&wincl))
return 0;
/* The class is registered let‘s create the program*/
hwnd = CreateWindowEx(
0 /* Extended possibilites for variation */
szClassName /* Classname */
_T(“函数绘图语言解释器“) /* title Text */
WS_OVERLAPPEDWINDOW /* default window */
CW_USEDEFAULT /* Windows decides the position */
CW_USEDEFAULT /* where the window ends up on the screen */
740 /* The programs width */
490 /* and height in pixels */
HWND_DESKTOP /* The window is a child-window to desktop */
NULL /* No menu */
hThisInstance /* Program Instance handler */
NULL /* No Window Creation data */
);
/* Make the window visible on the screen */
ShowWindow(hwnd nFunsterStil);
hDC = GetDC(hwnd);
/* pDlg=new CTestDlg();
pDlg->Create(IDD_DIALOG1this);
pDlg->ShowWindow(SW_SHOW);*/
strcpy(SrcFilePath “test2.txt“);
if (!CheckSrcFile(SrcFilePath)) return 1;
// --------------------------------------------
// 调用绘图语言解释器
Parser(SrcFilePath);
// --------------------------------------------
/* Run the message
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-24 23:12 编译原理大作业--绘图解释器\
文件 2189 2018-12-24 23:22 编译原理大作业--绘图解释器\README.txt
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\
文件 33280 2018-12-12 00:48 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\.suo
文件 33792000 2018-12-12 00:48 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\Browse.VC.db
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\aa5a4503b8df32df\
文件 47972352 2018-12-11 23:26 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\aa5a4503b8df32df\MAIN.ipch
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\da6b7f56d3a9246c\
文件 44498944 2018-12-11 23:17 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\da6b7f56d3a9246c\MAIN.ipch
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\e236ce4e90fddf5e\
文件 46792704 2018-12-11 23:23 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\e236ce4e90fddf5e\SEMANTIC.ipch
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\e5f50400a1c5763e\
文件 43384832 2018-12-11 23:17 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\.vs\Compilationprinciple\v15\ipch\AutoPCH\e5f50400a1c5763e\SEMANTIC.ipch
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\
文件 6424 2018-12-11 23:26 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Compilationprinciple.vcxproj
文件 1796 2018-12-11 23:26 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Compilationprinciple.vcxproj.filters
文件 165 2018-12-11 23:14 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Compilationprinciple.vcxproj.user
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\
目录 0 2018-12-24 23:05 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\
文件 2252 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\CL.command.1.tlog
文件 42816 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\CL.read.1.tlog
文件 2456 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\CL.write.1.tlog
文件 220 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\Compilationprinciple.lastbuildstate
文件 0 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilat.2878A0F1.tlog\unsuccessfulbuild
文件 1150 2018-12-11 23:18 编译原理大作业--绘图解释器\绘图解释器项目工程\Compilationprinciple\Compilationprinciple\Debug\Compilationprinciple.log
............此处省略48个文件信息
相关资源
- LEX与YACC实现C语言词法分析和语法分析
- 编译原理之语义分析
- 编译原理 词法分析器
- 简易C语言编译器的设计与实现
- 编译原理综合性实验 选择部分C语言的
- 编译器前两步
- 编译原理实验语法分析器
- 实验一:词法分析程序c++
- 哈工大编译原理编译器C++
- PL/0语法分析程序
- 编译原理课程设计简单优先文法判定
- 词法分析器(c语言实现)246881
- cminus语法分析器源代码完整版
- 编译原理--语法分析 实验 C++版
- LL(1)文法自动生成语法分析程序的
- 编译原理--递归下降分析程序C++
- 编译原理 词法分析 源代码
- 编译原理大作业.zip
- 词法分析C++程序
- 编译原理——词法分析器设计与实现
- 编译原理 C语言实现词法分析
- 不同进制数的识别程序设计
- 编制一个读单词过程,从输入的源程
- 编译原理C语言实现词法分析程序带容
-
pl0_name
table.zip - 编译原理课程设计+报告用高级语言
- 编译原理SLR(1)语法分析实验报告
- 编译原理实验报告+语法分析代码C语言
- 编译原理 课设
- c++词法分析器
评论
共有 条评论