parser combinators?
alanwu
2009-10-01
谁能详细一下parser combinator
或者哪里有基础资料,最好是中文的 |
|
night_stalker
2009-10-01
Technical Report:
http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW491.pdf 示例代码: http://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/docs/examples/parsing/ArithmeticParser.scala |
|
alanwu
2009-10-01
看了http://en.wikipedia.org/wiki/Parser_combinator第一句:
就是在数学函数式编程中,小函数(方法)可以组合成大函数(方法)(High Order Function)。如果组合成parsing,(parsing又是什么?),那么就是parser combinator |
|
alanwu
2009-10-01
好像左递归是个很难的问题,用parser combinator比较容易搞定。
左递归又是怎么回事? |
|
night_stalker
2009-10-01
关于 combinator,如果想学深入点的话,可以到 Haskell 的官网上看。
http://www.haskell.org/haskellwiki/Category:Combinators scala 的 parser combinator 基本就是从 haskell 的 parsec 库里弄来的,而且利用了隐式转换简化编写。其实不了解这么多也可以,把它当成魔法,知道 EBNF 就能用得比较顺手了。 unlambda 是练习 combinator 的好语言。。。 |
|
alanwu
2009-10-01
谢谢~
太多术语不了解了 EBNF是什么? |
|
alanwu
2009-10-01
night_stalker 写道 scala 的 parser combinator 基本就是从 haskell 的 parsec 库里弄来的,而且利用了隐式转换简化编写。其实不了解这么多也可以,把它当成魔法,知道 EBNF 就能用得比较顺手了。 。 不了解用不起来啊,看到一堆符号组合真是很想魔法。 |
|
alanwu
2009-10-01
这个和则正表达式有点类似?
|
|
night_stalker
2009-10-01
alanwu 写道 谢谢~
太多术语不了解了 EBNF是什么? Extended Bacus-Naur Form 是一种描述语法的语法。 关于 EBNF 和“左递归”,你最好找本编译原理看看 …… |
|
night_stalker
2009-10-01
alanwu 写道 这个和则正表达式有点类似?
可以这么说,不过我们平时用的正则是非递归的(除了 Perl) |
相关讨论
相关资源推荐
- scala-parser-combinators-2.11-1.0.4-API文档-中文版.zip
- monadic Parser Combinators
- scala-parser-combinators_2.11-1.0.4-API文档-中英对照版.zip
- scala-parser-combinators_2.12-1.1.0-API文档-中英对照版.zip
- scala-parser-combinators_2.12-1.1.0-API文档-中文版.zip
- Parser-Combinators-From-Scratch:该系列随附的代码
- parser-combinators, Elm的解析器组合库.zip
- scala-parser-combinators:Scala的基于简单组合器的解析。 以前是Scala标准库的一部分,现在是一个单独的社区维护模块
- Perl-Parser-Combinators:Perl中的Parsec样式解析器组合器库
- scala-parser-combinators-completion:对scala解析器组合器的完成支持