XQuery 3.1 的 Antlr V4 语法
Antlr V4 grammar for XQuery 3.1
我发现了以下 Antlr 4 语法:
https://gist.github.com/JoeyAcc/829c28fcf18091ed6ebfcf91d7519f58
我在尝试从中生成代码时收到以下错误:
error(134): xquery31.g4:178:26: rule reference PragmaContentsInternal is not currently supported in a set
error(134): xquery31.g4:264:25: rule reference DirPIContentsInternal is not currently supported in a set
error(134): xquery31.g4:268:32: rule reference CDataSectionContentsInternal is not currently supported in a set
error(134): xquery31.g4:311:17: rule reference StringConstructorCharsInternal is not currently supported in a set
warning(156): xquery31.g4:377:59: invalid escape sequence
warning(156): xquery31.g4:378:60: invalid escape sequence
warning(156): xquery31.g4:392:30: invalid escape sequence
warning(156): xquery31.g4:394:30: invalid escape sequence
error(134): xquery31.g4:416:27: rule reference CommentContentsInternal is not currently supported in a set
warning(146): xquery31.g4:13:0: non-fragment lexer rule Prolog can match the empty string
warning(146): xquery31.g4:110:0: non-fragment lexer rule WindowVars can match the empty string
warning(146): xquery31.g4:127:0: non-fragment lexer rule OrderModifier can match the empty string
warning(146): xquery31.g4:211:0: non-fragment lexer rule PredicateList can match the empty string
warning(146): xquery31.g4:248:0: non-fragment lexer rule DirAttributeList can match the empty string
warning(146): xquery31.g4:261:0: non-fragment lexer rule DirCommentContents can match the empty string
error(99): xquery31.g4::: grammar xquery31 has no rules
是否有任何修复此 ANTLR V4 语法的建议?
您的错误消息的最后一行非常有说服力。如果你看一下语法,每个单词都是大写的。这意味着这只是词法分析器规则,并且有错误。解析器规则完全不存在。在花时间阅读此文件之前,请联系此语法的发布者或搜索解析器规则。
我认为 JoeyACC 的工作结论在这里 - https://gist.github.com/JoeyAcc/375663dfc21cd7ec4d35ea8f7ff251d0#file-xquery31-g4
另一种方法是采用此 Antlrv4 XQuery 1.0 语法并添加 3.1 的缺失部分:https://github.com/bluezio/xquery-parser
我最终为 XQuery 3.1 创建了自己的 Antlr4 语法。它位于:https://github.com/xqdoc/xqdoc/tree/master/src/main/antlr4/org/xqdoc
我发现了以下 Antlr 4 语法:
https://gist.github.com/JoeyAcc/829c28fcf18091ed6ebfcf91d7519f58
我在尝试从中生成代码时收到以下错误:
error(134): xquery31.g4:178:26: rule reference PragmaContentsInternal is not currently supported in a set
error(134): xquery31.g4:264:25: rule reference DirPIContentsInternal is not currently supported in a set
error(134): xquery31.g4:268:32: rule reference CDataSectionContentsInternal is not currently supported in a set
error(134): xquery31.g4:311:17: rule reference StringConstructorCharsInternal is not currently supported in a set
warning(156): xquery31.g4:377:59: invalid escape sequence
warning(156): xquery31.g4:378:60: invalid escape sequence
warning(156): xquery31.g4:392:30: invalid escape sequence
warning(156): xquery31.g4:394:30: invalid escape sequence
error(134): xquery31.g4:416:27: rule reference CommentContentsInternal is not currently supported in a set
warning(146): xquery31.g4:13:0: non-fragment lexer rule Prolog can match the empty string
warning(146): xquery31.g4:110:0: non-fragment lexer rule WindowVars can match the empty string
warning(146): xquery31.g4:127:0: non-fragment lexer rule OrderModifier can match the empty string
warning(146): xquery31.g4:211:0: non-fragment lexer rule PredicateList can match the empty string
warning(146): xquery31.g4:248:0: non-fragment lexer rule DirAttributeList can match the empty string
warning(146): xquery31.g4:261:0: non-fragment lexer rule DirCommentContents can match the empty string
error(99): xquery31.g4::: grammar xquery31 has no rules
是否有任何修复此 ANTLR V4 语法的建议?
您的错误消息的最后一行非常有说服力。如果你看一下语法,每个单词都是大写的。这意味着这只是词法分析器规则,并且有错误。解析器规则完全不存在。在花时间阅读此文件之前,请联系此语法的发布者或搜索解析器规则。
我认为 JoeyACC 的工作结论在这里 - https://gist.github.com/JoeyAcc/375663dfc21cd7ec4d35ea8f7ff251d0#file-xquery31-g4
另一种方法是采用此 Antlrv4 XQuery 1.0 语法并添加 3.1 的缺失部分:https://github.com/bluezio/xquery-parser
我最终为 XQuery 3.1 创建了自己的 Antlr4 语法。它位于:https://github.com/xqdoc/xqdoc/tree/master/src/main/antlr4/org/xqdoc