我是ANTLR的新手并试图查看ANTLR是否适合我的场景,或者我应该坚持使用JSON反序列化库并编写一些自定义代码。
输入文本是一个JSON,表示类似
的表达式{
"Operator":"ADD",
"Operands": [{"Operator":"ADD", "Operands":[{"OperandValue":23},{"OperandValue":32} ]},
{"Operator":"ADD", "Operands":[{"OperandValue":11},{"OperandValue":12} ]}]}
}
运营商名单可以发展
JSON是以编程方式创建的,而不是由用户手动创建的。
我必须阅读此JSON并对其进行验证并向我的客户提供有意义的错误消息。
如果JSON处于有效/解析状态,我必须将JSON转换为TSQL代码并在SQL服务器上执行。
我的所有代码都在C#中,我需要:
有上述两个需求,我试着写一个粗略的ANTLR语法和自定义代码,下面是我的观察
ANTLR在某种程度上我的逻辑将驻留语法文件,这可能很难
context.GetText()
属性来弄清楚我目前的位置并改变我的语法。自定义JSON反序列化(JSON.NET)
对我来说,当你的输入结构不高并且你没有可用的解析器时,ANTLR似乎具有很高的价值,但是在JSON的情况下它并没有给JSON解析器带来多少价值。
ANTLR是否适合这种情况?