我正在考虑使用基于W3C的XML1.1的编译器生成器实现XML转换器的想法。spec,其中包括完整的EBNF语法。更准确地说,我打算使用Qi-YACC因为我想学习这个工具。这将是我第一次尝试使用任何编译器。我计划实现的第一种翻译非常简单:XML到S-EXPRs.之后,我打算概括我的翻译,但这不是我的问题的重点。您预计此类项目会遇到什么重大陷阱吗?我读到使用其EBNF翻译XML是abadidea.我想知道为什么。而且Qi语言还没有XML解析器,所以我绝对不想在这里重新发明轮子。 最佳答案 我现在不知道解析XML需要上下文的原因。但是Q
我正在努力寻找ECMAScript的良好EBNF描述,但到目前为止我还没有找到任何完整的内容。有什么想法吗? 最佳答案 ECMAScriptstandard怎么样??按定义完成:-}编辑:如果您想要现有的语法,请尝试其中一个语法生成工具站点。对于ANTLR,这里是ECMAScriptgrammar.我对它的质量一无所知,但如果小心构建语法,ANTLR可以产生良好的解析器。您可能会发现语法也与一堆ANTLR内容交织在一起,因此从您的Angular来看,它可能会遇到与标准相同的问题。至少你可以删除所有这些东西。
我有一个由PHP序列化的值,我需要在Clojure中对其进行解码。我正在使用这个library反序列化它;它使用Instaparse它利用EBNF/ABNF符号来定义语法。作为引用,这里是完整的定义:=expr=(string|integer|double|boolean|null|array)+=#'[0-9]'=negative*(decimal-num|integer-num)='-'=digit+=integer-num'.'integer-num='0'|'1'size=digit+key=(string|integer)=exprarray=(keyval)+?boolea
我正在尝试解析(在Java中)维基百科上的维基媒体标记。有许多现有的包可以完成这项任务,但我还没有找到特别适合我需要的包。我用过的最好的包是MathclipseBlikiparser,它在大多数页面上都做得不错。然而,这个解析器是不完整的,无法解析某些页面或在其他页面上解析不正确。遗憾的是,代码相当困惑,因此修复此解析引擎中的问题非常耗时且容易出错。为了寻找更好的解析引擎,我调查了使用基于EBNF的解析器来完成此任务(特别是ANTLR)。然而,经过一些尝试后,这种方法似乎并不特别适合这项任务,因为维基媒体标记相对宽松,因此不容易适应结构化语法。然而,我在ANTLR和类似解析器方面的经验
翻译器也可以在boost::spirit中。我在互联网上找不到任何东西。也许我应该做一个? 最佳答案 从spiritintroduction开始:ExpressiontemplatesallowustoapproximatethesyntaxofExtendedBackus-NormalForm(EBNF)completelyinC++.因此您几乎可以编写纯EBNF,不需要翻译器。我对spirit不是很熟悉,不知道语法到底有什么不同,但是如果spiritC++EBNF和realEBNF的差异很小,那么一个简单的sed脚本可能就足够了
我想知道是否有人在某处为PHP编译了EBNF。我找到了thissite和thissite.不过,两者似乎都不完整。Thisquestionisverysimilar,不过一岁了。我想知道是否有任何进展。 最佳答案 您可能想看看yaccgrammarPHPusesinternally.我知道,这不是EBNF,但也许可以满足您的需求。您可能还想查看re2clexerdefinition. 关于php-PHP的EBNF语法定义?,我们在StackOverflow上找到一个类似的问题:
我想知道是否有人在某处为PHP编译了EBNF。我找到了thissite和thissite.不过,两者似乎都不完整。Thisquestionisverysimilar,不过一岁了。我想知道是否有任何进展。 最佳答案 您可能想看看yaccgrammarPHPusesinternally.我知道,这不是EBNF,但也许可以满足您的需求。您可能还想查看re2clexerdefinition. 关于php-PHP的EBNF语法定义?,我们在StackOverflow上找到一个类似的问题:
我正在尝试用PHP为以下EBNF编写递归下降解析器:EXP::={(+|-)}TERM::={(*|/)}FACTOR::=()|DIGIT::=0|1|2|3我关注了这个guide我在类似的问题上看到了推荐。(我发帖前搜索过)在大多数情况下,我了解它的工作原理并理解语法。我认为问题出在我的语法中。我是PHP新手,所以我一直在引用W3Schools.我目前的代码出现以下错误:Warning:Wrongparametercountforexp()....online101我曾尝试查找此错误,但运气不佳。我读了一些关于人们传递错误参数类型的帖子,但我没有为该函数设置任何参数。我在这里缺少有