欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > vs2010编译原理_【编译原理】使用Lex将CC++文件输出为HTML文件

vs2010编译原理_【编译原理】使用Lex将CC++文件输出为HTML文件

日期:2023-10-08 11:28

2008年9月入学,2012年7月毕业,结束了我在软件学院快乐而丰富的大学生活。本系列是四年专业课程学习的回顾。索引见:http://www.introzo.com/xiaowei_cqu/article/details/7747205

Lex 高级实验

组合实验:

使用Lex工具进行词法分析,并完成以下要求:

输入C/C++源文件,输出HTML文件,语法高亮C/C++源文件。

【实验步骤】

1。在实验环境中配置并安装Parser Generator,并编译lex和yacc函数库

使用向导配置时,使用VS2010,设置属性如下(部分库使用VC++6.0)

编译器Bin目录

C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 10.0\VC\BIN

编译器Bin目录(2)

C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 10.0\COMMON7\IDE

编译器包含目录

C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 10.0\VC\INCLUDE

编译器包含目录(2)

C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE

编译器库目录

C:\程序文件\MICROSOFT VISUAL STUDIO 10.0\VC\LIB

编译器库目录(2)

C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\LIB

2。编写Lex程序

键 int|double|float|char|void|#include|else|case|struct|return

thekey {Keys}/[ \t]+ 这两行定义了一些关键字。请注意,关键字后面必须跟有空格字符。输出时,在关键字后面加上两次,即可以蓝色

输出

keyif if/\(.*\)

keyswitch switch/\(.*\) 分别定义关键字 if 和 switch。考虑到它们的特殊附加信息,它们后面必须带有 ()

str \".*\" 是用双引号("")定义的字符串,以红色输出。

评论1 \/\/.*

comments2 \/\*(.|\n)*\*\/ 分别定义 // 风格和 /**/ 风格的字符串,并以绿色输出。

\n {fputs("
",yyout);}这里是将换行符替换为
——即HTML中的换行符

【实验结果】

读取input.c的C文件如下:

运行程序后,会生成output.html文件,用浏览器打开:

转载请注明出处:http://www.introzo.com/xiaowei_cqu/article/details/7760927

@[TOC](Qt4.7源码编译成VS2010 win32/X64开发版

编译准备、编译原理、编译步骤

编译准备

1。下载【www.introzo.com】并解压;释放到E:\Develop\QT目录下; (http://www.introzo.com/archive/qt/4.7/) 2.安装VS2010

编译原理

Qt4.7提供了configure.exe工具来生成makefile文件。您可以通过configure -help命令查看配置方法。注意红框选项提示: *:表示默认安装 +:表示需要自己配置

编译步骤

1。选择编译Win32的方式还是提示不一致

2、设置以下环境变量: set QTDIR=E:\Develop\QT set QMAKESPEC=win32-msvc2010

3。根据需要,configure可以指定所需的组件或模块:configure -platform win32-msvc2010 -debug-and-release -opensource -shared -fast -qt-sql-sqlite -plugin-sql-sqlite -no- qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-style-windowsxp -qt-style-windowsvista

4,nmake

5,清理

清理之前,记得将qmake.cache和configure.cache备份到其他地方,然后nmake confclean释放空间。最后,将 qmake.cache 和 configure.cache 复制回远程位置。  如果没有,安装qt-vs-addin后添加Qt Versions的路径会失败。

使用LEX实现词法分析器(vs2010 + Parser Generator版本)

前言

?最近在学习编译原理,需要使用LEX自动生成词法分析器。让我与您分享我的个人经历。

词法分析器生成工具LEX的介绍请参考http://www.introzo.com/woaidongmao/archive/2008/11/30/68226.html。

快向导

如果您不想深入了解配置细节并希望使用 Visual Studio 2010 中的解析器生成器,请按照以下步骤操作。该程序包含了从安装到编译代码的整个过程,可以替代一般的程序。

l???????配置环境

1。下载并安装解析器生成器。

2。 ? ? ? ?假设安装目录为“C:\Parser Generator 2”。

3。启动 Visual Studio 2010 并从菜单中选择“工具”、“选项...”。

4。在左侧列表中选择“项目和解决方案”和“VC++ 目录”。 (vs2010中如何打开VC++目录请参考http://www.introzo.com/uid-21375345-id-2953297.html)

5.?????????在右上角的下拉框中选择“Include files”,按下面的“New Line (Ctrl-Insert)”按钮,输入“C:\Parser Generator 2\Cpp\ Include”(或者你的安装路径) 。

6。在右上角的下拉框中选择“Library files”,按下面的“New Line (Ctrl-Insert)”按钮,输入“C:\Parser Generator 2\Cpp\ Lib\msvc32”(或者你的安装小路)。

7.????????????在右上角的下拉框中选择“Source files”,按下面的“New Line (Ctrl-Insert)”按钮,输入“C:\Parser Generator 2\Cpp\ Source”(或者你的安装路径) 。

8。单击“确定”保存设置。

l??????配置项

1。在 Visual Studio 2010 菜单中选择“文件”、“新建”、“项目...”。

2。左侧选择“Visual C++”,右侧选择“Win32 Console Application”,在下面输入项目名称(如“my_compiler”),然后按“确定”。

3。选择左侧的“应用程序设置”,清除右侧的“预编译头”选项。 (注:如果不去掉,则需要在LEX/YACC生成的CPP文件前添加“#include "stdafx.h"”行。)

4。单击“完成”创建项目。

5。从菜单中选择“项目”、“属性...”以打开项目属性页。

6。在顶部的“配置”中选择“活动(调试)”或“调试”。

7。左侧选择“Configuration Properties”\“C/C++”\“Preprocessor”,在右侧“Prepocessor Definitions”项后添加“;YYDEBUG”。

8。选择左侧的“配置属性”\“C/C++”\“代码生成”,将右侧的“运行时库”项更改为“多线程调试(/MTd)”。

9。选择左侧的“配置属性”\“链接器”\“输入”,将右侧的“附加依赖项”更改为“ylmtd.lib”。

10.?????单击“应用(A)”保存当前页面设置。

11。在顶部的“配置”中选择“激活(释放)”或“释放”。

12.????选择左侧的“配置属性”\“C/C++”\“代码生成”,将右侧的“运行时库”项更改为“多线程(/MT)”。

13.????选择左侧的“配置属性”\“链接器”\“输入”,将右侧的“附加依赖项”更改为“ylmt.lib”。

14.????单击“确定”保存当前页面设置。

l?????????编译项目

1。 ???????使用“Project”菜单中的“Parser Wizard”在 Parser Generator 中创建一个项目,然后按“Rebuild All”按钮将其编译为 .h/.cpp 文件。

2.?????????在Visual Studio 2010的“解决方案资源管理器”中选择您的项目名称,右键单击,选择“添加”,“现有项...”,并将Parser Generator生成的.h/.cpp文件导入到项目中。

3。从工具栏上的“配置”中选择“发布”。

4。从菜单中选择“Build”、“Build Solution”来编译项目。

软件环境

我配置的软件环境如下:

Windows 7 Ultimate Microsoft Visual Studio 2010 ProfessionalParser Generator 2.07

对源代码进行必要的修改

?? ? ? Parser Generator库的源文件全部位于“\Parser Generator 2\Cpp\Source”文件夹中,其中包含300多个.c或.cpp文件。其中一些需要修改后才能被VS2010编译。

?? ? ?因为C编译器只允许用常量初始化全局变量,但PG库中很多地方都使用其他全局对象(如stdout)来初始化变量,所以我们需要对这些文件进行重命名。具体方法是将“C:\Parser Generator 2\Cpp\Source”目录下的“*var.c”文件重命名为“*var.cpp”。

参考文献

l? ? ? ?在 Visual Studio 2005 中配置 Visual C++ 解析器生成器?-http://www.introzo.com/cgi-bin/bbs.cgi?q=show&id=tech&pid=20061017011421

l? ? ? ?查看vs2010中的VC++目录?-http://www.introzo.com/uid-21375345-id-2953297.html

关灯