加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

野牛 – Lex / Yacc:输入前打印信息

发布时间:2020-12-15 01:46:25 所属栏目:百科 来源:网络整理
导读:我试图找出在使用lex / yacc(flex / bison)时如何显示消息/提示. 例如,main看起来像这样: int main(int argc,char *argv[]){ yyparse();} 其中调用yacc,调用yylex().这会产生一个等待STDIN的空白行.我怎样才能显示如…的消息 message $_ 代替 _ 下划线表示
我试图找出在使用lex / yacc(flex / bison)时如何显示消息/提示.

例如,main看起来像这样:

int main(int argc,char *argv[])
{
    yyparse();
}

其中调用yacc,调用yylex().这会产生一个等待STDIN的空白行.我怎样才能显示如…的消息

message $_

代替

_

下划线表示光标位置,等待STDIN的输入……

忘了提,我想重复打印的提示……所以在每次lex / yacc请求从stdin输入之前…

解决方法

弄清楚了.我必须将它作为一个动作集成到我的yacc文件中.

我的矿井看起来像:

int main(int argc,char *argv[])
{
    prompt();
    yyparse();
}

我的yacc文件(.y)看起来像……

stmnt
     : /* empty */
     | stmnt whatever { do_something(); prompt(); }
     ;

因此,每次它解析stmnt(顶级)时,它都会在之后显示提示.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读