flex与bison

博客记录了Lex和Bison程序的相关内容。Lex程序包含声明、翻译规则和辅助过程三部分,声明部分特定内容会照抄到C语言开头,翻译规则有多种模式示例。Bison程序包含声明、规则和C语言代码三部分,声明部分会拷贝到C语言代码开头,还介绍了%token声明记号等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一些个人认为有用的东西

lex程序包含三个部分

声明

%%

翻译规则

%%

辅助过程

 

在声明过程中 %{ 和 }%之间的部分会被照抄到生成的C语言开头部分。

翻译规则:

  模式处在每一行的开头,接着是匹配时执行的C代码,使用{}括住。(模式必须在行首出现,以空白开始的行都会被照抄)

  yytext总是指向本次匹配的输入文本。

  在代码中如果动作有返回,则词法分析会在下次调用yylex()时继续。

模式举例

  [A-Za-z]+   用来匹配一个单词,方括号表示为字符类,+表示匹配一个或多个该类。

  .       点号表示任意一个字符。

  [^ \t\n]+    在字符类开始部分的符号^是指匹配任意一个不在字符类里面的字符。

  “+”      一般用来表示匹配某个特定字符或字符串。

 

bison程序包含三部分:声明、规则、C语言代码。

声明部分会被拷贝到C语言代码开头,通过%{}%来声明

%token声明记号名称,通常记号使用大写字母

第二部分

  使用单一冒号,且用分号;表示结束

转载于:https://www.cnblogs.com/wshr007/p/10932031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值