为SQLite3生成JavaScript SQL解析器(使用Lemon?ANTLR3?)
在过去的几周里,我一直在潜入将SQL语句解析成可管理的东西的美好世界,结果发现我可能需要一个完整的lexer/parser来正确处理所有允许的标记/格式来完成同样的事情 我最感兴趣的是CREATETABLE语句,但是一个完整的泛型解析器会更好,因为在web上似乎还没有人有这样的解析器 我不是计算机专业的毕业生,而是自学成才的人,所以这是我的学习曲线。 我采取的步骤是:为SQLite3生成JavaScript SQL解析器(使用Lemon?ANTLR3?),javascript,sqlite,parsing,antlr3,lemon,Javascript,Sqlite,Parsing,Antlr3,Lemon,在过去的几周里,我一直在潜入将SQL语句解析成可管理的东西的美好世界,结果发现我可能需要一个完整的lexer/parser来正确处理所有允许的标记/格式来完成同样的事情 我最感兴趣的是CREATETABLE语句,但是一个完整的泛型解析器会更好,因为在web上似乎还没有人有这样的解析器 我不是计算机专业的毕业生,而是自学成才的人,所以这是我的学习曲线。 我采取的步骤是: 用正则表达式解析sql 这失败了,修复正则表达式 更糟糕的是,仔细查看SQLite源代码,发现它使用了Lemon解析器,一个特定
我似乎能够为mysql和pl/sql生成javascript解析器。这是否意味着sqlite.g格式需要更新?要能够在JavaScript目标中使用语法,您必须:
- 在
块中更改目标语言:options
options{language=JavaScript;}
- 用JavaScript代码更改.g语法文件中的所有嵌入代码(介于
和{
之间)。注意,ANTLR不会根据您在}
“选项
值中定义的内容转换此代码,您必须自己进行转换李>语言
- 生成解析器时,不要使用ANTLRWorks,而是在命令行上使用,并使用大量堆和java的
参数:SQL语法是需要大量内存的大型工具-Xmx