缘起
最近复习设计模式
拜读谭勇德的<<设计模式就该这样学>>
本系列笔记拟采用golang练习之
解释器模式
解释器模式(Interpreter Pattern)指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。解释器模式是一种按照规定的文法(语法)进行解析的模式,属于行为型设计模式。解释器模式主要适用于以下应用场景。(1)一些重复出现的问题可以用一种简单的语言进行表达。(2)一个简单语法需要解释的场景。(摘自 谭勇德 <<设计模式就该这样学>>)
SQL(子集)的文法
SQL:select + FIELD_LIST + from TABLE_NAME + (where BOOL_EXPRESSION)?FIELD_LIST:*| COLUMN_LISTCOLUMN_LIST:COLUMN_NAME + (,COLUMN_NAME)*COLUMN_NAME:IDENTIFIERIDENTIFIER:[_a-zA-Z] + [_a-zA-Z0-9]*TABLE_NAME:IDENTIFIERBOOL_EXPRESSION:STRING_FIELD = STRING_LITERAL| STRING_FIELD <> STRING_LITERAL| STRING_FIELD like STRING_LITERAL| STRING_FIELD not like STRING_LITERAL| INT_FIELD = INT_LITERAL| INT_FIELD <> INT_LITERAL| INT_FIELD > INT_LITERAL| INT_FIELD >= INT_LITERAL| INT_FIELD < INT_LITERAL| INT_FIELD <= INT_LITERAL| ( + BOOL_EXPRESSION + )| BOOL_EXPRESSION and BOOL_EXPRESSION| BOOL_EXPRESSION or BOOL_EXPRESSIONSTRING_FIELD:IDENTIFIERINT_FIELD:IDENTIFIERSTRING_LITERAL:\" + [^"]* + \"INT_LIETRAL:[1-9] + [0-9]*
