我有以下数据:
dbCon= {
main = {
database = "db1",
hostname = "db1.serv.com",
maxConnCount = "5",
port = "3306",
slaves = [
{
charset = "utf8",
client = "MYSQL",
compression = "true",
database = "db1_a",
hostname = "db1-a.serv.com",
maxConnCount = "5",
port = "3306",
}
{
charset = "utf8",
client = "MYSQL",
compression = "true",
database = "db1_b",
hostname = "db1-b.serv.com",
maxConnCount = "5",
port = "3306",
}
]
username = "user-1"
}
}
我试图使用Grako将其转换为JSON,但我无法获得正确的EBNF格式。以下是我所拥有的:
^{pr2}$但是,这只是打印出:
[
"dbCon = "
]
我哪里出错了?我从没用过格拉科。我只希望能够将其解析为可用/可访问的内容,而无需设计静态解析器以防格式更改。如果以后格式发生更改,那么更新EBNF似乎比重写整个解析器更容易。在
仅仅用一个例子很难确定真正的语法是什么,但希望这已经足够了,你可以完成对它的修改,以处理任何奇怪的事情。在
我们需要
Semantics
类来处理将键/值对及其列表转换为字典的问题。小心使用@:否则就可以了。在作为一个建议,当在语法中命名规则时,用它们的名称(list、dict等)而不是它们的样子(用括号括起来)。另外,先把事情分成许多规则。你可以以后再合并它们。在
这将产生以下输出:
^{pr2}$相关问题 更多 >
编程相关推荐