代码之家  ›  专栏  ›  技术社区  ›  BefittingTheorem

Scala中文本分析的探讨

  •  2
  • BefittingTheorem  · 技术社区  · 15 年前

    我正在制作一个应用程序,它将解析Scala中的命令。命令的一个示例是:

    todo get milk for friday
    

    一般来说,我需要在Scala中创建一个标记器。所以我想知道我的选择是什么。我熟悉正则表达式,但我还计划制作一个类似SQL的搜索功能:

    search todo for today with tags shopping
    

    我觉得正则表达式在执行命令时会变得很死板,而且会有很多变化。这让我想到实现某种语法。

    3 回复  |  直到 15 年前
        1
  •  9
  •   Mitch Blevins    15 年前
        2
  •  2
  •   user142435    15 年前

    下面是我2009年9月在Scala parser combinators上做的演示的幻灯片。( http://sites.google.com/site/compulsiontocode/files/lambdalounge/ImplementingExternalDSLsUsingScalaParserCombinators.ppt )演示了一个简单的类似Logo的语言的实现。这可能会提供一些见解。

        3
  •  1
  •   Daniel C. Sobral    15 年前

    Scala有一个解析器库(Scala.util.parsing.combinator),它使人们能够直接从其源代码编写解析器 EBNF 规范。如果您的语言有EBNF,那么编写Scala解析器应该很容易。如果没有,你最好先尝试正式定义你的语言。