使用 Javacc/push front 流中的一些字符进行预处理?
使用javacc我可以在输入流前面推送一些新字符吗?
例如,假设我的解析器解析以下语法:
#define Paragraphs "Paragraph+"
#define Volume "(Title,(Chapter,${Paragraphs})+)"
Book=${Volume}+;
我如何告诉 javacc 它的扫描器应将 ${Volume}
预处理为 (Title,(Chapter,Paragraph+)+)
在调用解析器之前?
可以使用MORE语句来实现吗?
谢谢
Using javacc can I push some new characters in front of the inputstream ?
for example let's say that my parser parses the following syntax:
#define Paragraphs "Paragraph+"
#define Volume "(Title,(Chapter,${Paragraphs})+)"
Book=${Volume}+;
How can I tell javacc that its scanner should preprocess ${Volume}
to (Title,(Chapter,Paragraph+)+)
before invoking the parser ?
Can It be achieved using the MORE statement ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Token.image
是公共字段,因此您也可以直接设置它。这是我的 JavaCC 书的分词器章节中的一个示例:您可以在此处下载本书的所有示例源代码。
Token.image
is a public field, so you could also just set it directly. Here's an example in my JavaCC book's tokenizer chapter:You can download all the book's example source code here.
好的,我想我已经找到了解决方案:可以在 TOKEN 部分中添加一些 java 语句,并且当前缓冲区在名为“image”的 StringBuilder 中定义:
OK, I think I've found the solution: Some java statements can be added in the TOKEN section and the current buffer is defined in a StringBuilder named 'image':