- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 flex 和 bison 创建一个可重入的解析器。
我想添加一个参数来保存一些状态,但我未能将其添加到 yylex()
.
这是示例,它不希望编译,只显示生成的代码。foo.l
%option reentrant
%option bison-bridge
%option header-file="foo.tab.h"
%{
#include "foo.tab.h"
%}
%%
"{" { return "{"; }
")" { return '}'; }
%%
foo.y
%define api.pure full
%define parse.error verbose
%parse-param {void *scanner}
%parse-param {int *pint}
%lex-param {void *scanner}
%lex-param {int *pint}
%token '(' ')'
%%
foo : '(' | ')' ;
%%
bison -d -b foo foo.y
flex foo.l
gcc -E lex.yy.c | less
int yylex (YYSTYPE * yylval_param , yyscan_t yyscanner) {...}
所以
pint
离开了。但我想我已经在
foo.y
指定了它.那么我需要做些什么才能让 yylex 接受品脱?
最佳答案
%lex-param
说野牛用额外的参数调用 yylex,但没有说任何要弯曲的东西。
yylex() 函数的默认定义可以通过定义 YY_DECL
来改变。 foo.l 文件定义部分中的宏。为了只有int *pint
作为参数,它看起来像这样:#define YY_DECL int yylex(int *pint)
如 yylval_param
和 yyscanner
还需要,那么:#define YY_DECL int yylex(YYSTYPE * yylval_param, yyscan_t yyscanner, int *pint)
关于bison - 如何向 yylex 添加其他参数(在 bison/flex 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689564/
本文整理了Java中jxl.biff.formula.Yylex.yylex()方法的一些代码示例,展示了Yylex.yylex()的具体用法。这些代码示例主要来源于Github/Stackoverf
本文整理了Java中org.json.simple.parser.Yylex.yylex()方法的一些代码示例,展示了Yylex.yylex()的具体用法。这些代码示例主要来源于Github/Stac
本文整理了Java中org.apache.dubbo.common.json.Yylex.yylex()方法的一些代码示例,展示了Yylex.yylex()的具体用法。这些代码示例主要来源于Githu
本文整理了Java中de.odysseus.staxon.json.stream.impl.Yylex.yylex()方法的一些代码示例,展示了Yylex.yylex()的具体用法。这些代码示例主要来
本文整理了Java中com.taobao.middleware.logger.json.parser.Yylex.yylex()方法的一些代码示例,展示了Yylex.yylex()的具体用法。这些代码
我正在尝试将位置信息添加到flex和bison中。但是我的野牛仍然使用int yylex(void),但是找不到int yylex(YYSTYPE *yylval_param, YYLTYPE *yy
所以我的问题很简单,我想之前已经有人回答了,但我无法找到关于它的好线索:我可以解析一次文件,收集一些必要的信息来初始化我的结构,然后解析第二次是“真的”吗? 当我两次调用 yylex() 时,它似乎什
我在 Flex 文件的定义部分中声明全局作用域指针时遇到问题,然后我在主文件的开头 malloc 它,但是 一旦我的程序运行到yylex(),指针的值就会设置为NULL。 我在整个程序中都需要这个指向
我正在尝试学习如何构建基于 C++ 的词法分析器/解析器,我正在关注多个在线教程和指南,我的代码主要是根据这两个指南构建的:1 , 2尽管我添加和调整了我认为合适的内容。 首先,我有一个词法分析器的头
我有一个简单的 flex 源代码,它跳过 /* */ 中的注释,应该得到找到的注释数: %{ int in_comment = 0; int count = 0; %} %% \/\* { i
我正在使用词法分析。为此,我使用 Flex然后我获取以下问题。 工作.l int cnt = 0,num_lines=0,num_chars=0; // Problem here. %% [" "]+
本文整理了Java中jxl.biff.formula.Yylex.yytext()方法的一些代码示例,展示了Yylex.yytext()的具体用法。这些代码示例主要来源于Github/Stackove
本文整理了Java中jxl.biff.formula.Yylex.zzUnpackAttribute()方法的一些代码示例,展示了Yylex.zzUnpackAttribute()的具体用法。这些代码
本文整理了Java中jxl.biff.formula.Yylex.zzUnpackTrans()方法的一些代码示例,展示了Yylex.zzUnpackTrans()的具体用法。这些代码示例主要来源于G
本文整理了Java中jxl.biff.formula.Yylex.zzScanError()方法的一些代码示例,展示了Yylex.zzScanError()的具体用法。这些代码示例主要来源于Githu
本文整理了Java中jxl.biff.formula.Yylex.zzUnpackRowMap()方法的一些代码示例,展示了Yylex.zzUnpackRowMap()的具体用法。这些代码示例主要来源
本文整理了Java中jxl.biff.formula.Yylex.zzUnpackAction()方法的一些代码示例,展示了Yylex.zzUnpackAction()的具体用法。这些代码示例主要来源
本文整理了Java中jxl.biff.formula.Yylex.getPos()方法的一些代码示例,展示了Yylex.getPos()的具体用法。这些代码示例主要来源于Github/Stackove
本文整理了Java中jxl.biff.formula.Yylex.zzRefill()方法的一些代码示例,展示了Yylex.zzRefill()的具体用法。这些代码示例主要来源于Github/Stac
本文整理了Java中jxl.biff.formula.Yylex.yybegin()方法的一些代码示例,展示了Yylex.yybegin()的具体用法。这些代码示例主要来源于Github/Stacko
我是一名优秀的程序员,十分优秀!