我正在使用ANTLR4来解析结构化数据文件,似乎已经碰壁了。我知道这是一个非常具体的问题,但也许有人可以指出我正确的方向。
我正在解析看起来像这样的文件:
MSH
[ PD1 ]
[{ ROL }]
[
{ ROL }
]
[
{
PR1
[{ ROL }]
}
]
[
{
IN1
[ IN2 ]
[{ IN3 }]
}
]
[ ACC ]
其中:
我的ANTLR4 Lexer / Parser运行良好,产生以下Parse树:
最终目标是使用上述规则将任何数据集转换为JSON格式。使用上面数据集文件中的一些行的示例:
{
"MSH": {
"name": "placeholder",
"opt": false,
"rep": false,
"description": "Plain Segment"
},
"PD1": {
"name": "placeholder",
"opt": true,
"rep": false,
"description": "Optional Segment"
},
// some segments here
"group": {
"opt": true,
"rep": false,
"description": "Optionals group placeholder text",
"segment0": {
"ROL": {
"name": "placeholder",
"opt": false,
"rep": true,
"description": "Repeating Segment"
}
}
}
}
我使用ANTLR4监听器生成了接近上述json的东西implemented here.但是它的嵌套组不断绊倒我,我发现很难用Listener做。也许另一组眼睛会有所帮助。