我的意思是标题中的???
,因为我不完全确定。让我解释一下情况。从JavaCC源生成Python语言的解析器?
我不是计算机专业的学生&我从来没有任何编译过程。到目前为止,我曾经认为编译器编写者或编译器课程的学生是非常优秀的,因为他们必须编写编译器的Parser组件,不管他们正在编写哪种编译器。这不是一件容易的工作吗?
我处理信息检索问题。我期望的编程语言是Python。
解析器性质: http://ir.iit.edu/~dagr/frDocs/fr940104.0.txt是样本语料库。该文件包含大约50个带有一些XML样式标记的文档。 (你可以在上面的链接中看到它)。我需要记下其他一些其他值,如<DOCNO> FR940104-2-00001 </DOCNO>
& <PARENT> FR940104-2-00001 </PARENT>
我只需要索引文件的<TEXT> </TEXT>
部分,其中包含一些需要剥离的变量标签以及很多可以忽略的<!-- -->
注释以及一些&hyph; &space; &
字符实体。我不知道为什么语料库有这样的事情,当它知道它不是为了通过浏览器呈现,也不是一个合适的XML文档。
我想用任何的Python XML解析器和提取所需的文本。但经过一番搜索,我发现JavaCC parser source code (Parser.jj)为同一语料库,我正在使用here。快速查看JavaCC和Compiler-compiler后发现,所有编译器编写者都不如我想像的那么好。他们使用Compiler编译器来生成所需语言的解析器代码。 Wiki表示编译器编译器的输入是一种语法(通常在BNF中)。这是我迷失的地方。
- 是Parser.jj语法(输入到编译器编译称为JavaCC的)?这绝对不是BNF。这个语法叫什么?为什么这个语法有Java语言?没有普遍的语法语言吗?
- 我想要解析语料库的Python解析器。有什么办法可以翻译Parser.jj来获得python的等价物吗?如果是,那是什么?如果不是,我的其他选择是什么?
- 有没有人知道这个语料库是什么?它的原始来源在哪里?我想看看它的一些说明。它是分布式网络上的名字
frDocs.tar.gz
不要JavaCC中,SableCC,ANTLR的存在所迷惑,提振精神::,lepl,pyparsing等写一个像样的** **编译仍然是艺术,有时甚至是黑色艺术。而且,它确实有助于知道你在做什么,当你要拿出一个好的语法/词法分析器等,所以不要误以为所有的人做的是火了命令行程序。 – 2010-09-17 21:59:49
“此文件包含大约50个带有某种XML样式标记的文档”。它没有一个正确的'<?xml'头文件,但它确实喜欢XML。它可能 - 实际上 - 是SGML。为什么不简单地使用XML解析器?为什么浪费时间重塑那个轮子? – 2010-09-18 13:06:02