Lex 生成一个词法分析器

这篇具有很好参考价值的文章主要介绍了Lex 生成一个词法分析器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Lex 生成一个词法分析器

 lex 通过输入一个.l 文件生成一个lex.yy.c 文件,然后通过c 编译器编译成一个可执行的词法分析器。 该词法分析器扫描输入源文件,生成一个token 符号流给后面语法分析器使用。

 

.l 文件的结构, 分成三个部分,声明, 转换规则, 自定义规则。 三个部分由%%分割

declarations
%%
translation rules
%%
auxiliary procedures

声明段, 包含希望出现出现再目标c文件种的代码, 正则表达式的声明。符号常量的声明。%{ %} 包裹内容

#include <stdio.h>  
#include "y.tab.h"
typedef char * YYSTYPE;  // 符号常量声明
char * yylval;           
/* regular definitions */

2delim [ \t\n]ws 

letter [A-Za-z]
digit [0-9]
%}

规则段  由正则表达式和动作组成  {} 内表示要执行的代码动作

%% 
/*  {BEGIN(commemts)}   

*/   {END(comments)}
.....
%%

  自定义规则

其他内嵌代码文章来源地址https://www.toymoban.com/news/detail-824999.html

到了这里,关于Lex 生成一个词法分析器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编译原理词法分析器(C/C++)

            词法分析器不用多说,一开始我还不知道是什么样的,看了下别人的博客,再看看书,原来是输出二元组,这不就是字符串操作嘛。然后细看几篇博客,发现大都是用暴力判断来写的。我对代码重复性比较高的方法不太感冒,不是说我编程有多好,就是单纯的不喜欢

    2024年02月06日
    浏览(39)
  • 编译原理C++单词拼装器&词法分析器实验思路

    本文只涉及功能实现的思路,针对期末复习,不涉及制作操作界面。 实验内容 1. 把C++源代码中的各类单词(记号)进行拼装分类。 C++语言包含了几种类型的单词(记号):标识符,,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等【详细

    2024年04月08日
    浏览(33)
  • HNU-编译原理-实验1-利用FLEX构造C-Minus-f词法分析器

    计科210X 甘晴void 202108010XXX 详细的实验项目文档为 https://gitee.com/coderwym/cminus_compiler-2023-fall/tree/master/Documentations/lab1 学习和掌握词法分析程序的逻辑原理与构造方法。通过 FLEX 进行实践, 构造 C-Minus-f 词法分析器。具体完成过程如下: 学习 C-Minus-f 的词法规则 学习 FLEX 工具使

    2024年01月20日
    浏览(32)
  • 分析器/源生成器添加项目依赖的方式

    写分析器(源生成器)时经常需要引用别的包,但直接引用是无法运行的。 下面我们分不同情况来讨论在分析器项目如何对依赖进行引用。 下图中“包引用”指 PackageReference ,“项目引用”指 ProjectReference 。 其中项目引用是通过dll文件传递的,包引用是通过nupkg文件传递的

    2024年01月20日
    浏览(28)
  • 【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数02

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让 云上运动会、线上运动会、健身打卡、AI体育指导 等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从

    2024年02月13日
    浏览(32)
  • 【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让 云上运动会、线上运动会、健身打卡、AI体育指导 等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从

    2024年02月09日
    浏览(32)
  • 严重性 代码 说明 项目 文件 行 禁止显示状态 警告 CS8032 无法从...创建分析器...的实例: 未能加载文件或程序集...或它的某一个依赖项。系统找不到指定的文件

    错误信息 :严重性 代码 说明 项目 文件 行 禁止显示状态 警告 CS8032 无法从 C:UsersAdministratorDesktopSVG-masterGeneratorsbinDebugnetstandard2.0Svg.Generators.dll 创建分析器 Svg.Generators.AvailableElementsGenerator 的实例: 未能加载文件或程序集“Microsoft.CodeAnalysis, Version=4.4.0.0, Culture=neutral, Pu

    2024年02月15日
    浏览(40)
  • 分析器:常见问题

    源生成器(增量生成器)由于它特殊的定位,关于它的调试十分困难。在这里分享一些调试它的经验。 另外经常有写类库,然后提供可以生成代码的Attribute给用户的需求,此时需要用到传递引用的知识点。 源生成器项目和普通的项目不同。 普通的会在你按下运行或调试后才

    2024年02月01日
    浏览(55)
  • Elasticsearch 查询分析器简介

    Elasticsearch 是一个开源的分布式搜索和分析引擎,它提供了强大的查询和分析功能。它基于 Apache Lucene 构建,支持大规模数据的实时搜索,并具有高可用性和可扩展性。 在 Elasticsearch 中,查询分析器负责处理用户搜索的输入,将文本进行分词并生成倒排索引。分析器在搜索过

    2024年02月17日
    浏览(30)
  • Elasticsearch 文本分析器(下)

    注意:字符过滤器用于在将字符流传递给分词器之前对其进行预处理 此过滤器会替换掉HTML标签,且会转换HTML实体 如: 会被替换为 。 解析结果: 因为是 p 标签,所以有前后的换行符。如果使用span标签就不会有换行符了。 可配参数说明 escaped_tags (可选,字符串数组)不包

    2024年02月08日
    浏览(109)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包