美文网首页
解析器模式

解析器模式

作者: fanren | 来源:发表于2019-04-10 22:55 被阅读0次

    定义

    给定一个语言,定义它的语法的一种表达式,并且定义一个解析器,该解析器使用该表达式来解析语言中的句子;

    文法

    “我是软件工程师”
    “我”是主语,“是”表示谓语,“软件工程师”表示宾语,形成了“主谓宾”结果,这样的结构称之为文法。
    那么可以根据文法造出更多复合文法的语句;
    这种文法只是其中一种,还有其他的各种类别。

    应用场景

    • 如果某个简单的语言需要解析执行,而且可以将该语言中的语句表示为一个抽象语法树时,可以使用该模式。
      例如:a + b + c - d表达式,其中“a、b、c、d”表示参数符号,不能够再推导,称之为终结符号。而“+、-”是算数运算符,运算符的左边和右边都是有意义的计算参数,称之为非终结符;
    • 在某些特定的领域出现不断重复的问题时,可以将该领域的问题转换为一种语法规则下的语句,然后构建解析器来解释该语句。
      例如:大小写转换、数字转字符串、字符串转数字、阿拉伯数字转中文等等。。这个转换过程就是一个不断重复的问题。这其中所有的阿拉伯数字、大小写字母、中文数字都是固定的,也称之为终结符号。但具体的内容不同,所以可以使用该模式来解决。

    角色划分

    • 角色一:抽象表达式
    • 角色二:终结符表达式
    • 角色三:非终结符表达式
    • 角色四:解析器上下文

    案例

    • 原理案例:demo

    相关文章

      网友评论

          本文标题:解析器模式

          本文链接:https://www.haomeiwen.com/subject/papaiqtx.html