• 大小: 58.32MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-03-03
  • 语言: C/C++
  • 标签: 编译原理  

资源简介

为简单函数绘图语言编写一个解释器。解释器接受用绘图语言编写的源程序,经语法和语义分析之后,将源程序所规定的图形显示在显示屏(或窗口)中。用编译器编写工具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个文件信息

评论

共有 条评论