ANTLR 中的固定数字格式
如何在antlr语法中指定固定位数?
我想解析包含固定字符数字段的行。每个字段都是一个数字。
0034|9056|4567|0987|-2340| +345|1000
上面的行是示例行。 |指示字段边界(不会出现在实际文件中。此处显示只是为了指示边界)。
字段可以包含空白字符 +/-
How to specify a fixed digit number in antlr grammar?
I want to parse a line which contains fields of fixed number of characters. Each field is a number.
0034|9056|4567|0987|-2340| +345|1000
The above line is a sample line. | indicates field boundaries (which will not be in the actual file. shown here just to indicate the boundary).
The fields can include blank characters +/-
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会让词法分析器语法尽可能简单,只匹配零个或多个空格,后跟解析器语法中的可选符号,后跟数字。匹配后,检查(在解析器语法中)字段的“宽度”是否正确。
语法示例:
可能的验证方案可能如下所示:
I'd keep the lexer grammar as simple as possible and just match zero or more spaces followed by an optional sign followed by a number in your parser grammar. After matching that, check (in your parser grammar) if the "width" of the field is correct.
An example grammar:
And a possible validation scheme could look like:
那么以下情况呢:
What about the following: