我正在尝试使用Flex和Bison为格式化语言创建一个简单的编译器。页面设置信息指定为输入文件中的以下内容:
pagesetup{2,80}
第一个整数与我的问题无关。第二个(80)是线宽。在输出文件中,
- 我希望(使用此示例)在一行(计数空间)上打印80个字符并在下一行上继续打印时,我希望插入一条新行。
- 我希望能够在输出文件中集中某些行(例如标题)。
在我的.y
文件中,我有:
pageSetupProperty: BSLASH PAGESETUP LBRACE INTEGER COMMA INTEGER RBRACE;
第二个整数是我需要使用的整数,我将其yylval
设置为正确与其整数值相对应。
但是,我在这一点上被困。我已经搜索了野牛文档,并因此找到了线宽度功能,但是我找不到方法。
它不需要野牛功能。您的解析器输出的所有内容都是您在用C中写入的动作中输出的(野牛没有输出任何内容或与输出有关)。只要计算这些字符串您自己的时间。这只是一个编码问题,与野牛完全无关。
和:
没有行宽度功能。 flex 和 bison 根本没有产生输出文件,更不用说具有线宽的功能了。生产输出取决于您在生产动作中所写的任何代码,其行宽度也是如此。
也是如此。
全部信用授予Brian Tompsett和EJP,以提供评论中的完整答案。
在此处根据SE策略的评论得出的答案。