cobar-parser源码分析理解(一)

  cobar-parser源码是从svn取的cobar-parser_1.2.6版本,资源仓库地址: http://code.alibabatech.com/svn/cobar/server/tags/1.2.6

直接切入主题,分析cobar-parser也是从这周刚开始研究,有些地方可能理解不对,希望共同交流。

图1-1


整个cobar-parser是采用访问者模式来设计的,图1-1是分析的一个简单的二元操作符表达式的类图关系

ASTNode:所有AST节点的父类
Expression:所有具有表达式特性的节点的父类
AbstractExpression:表达式节点的抽象
UnaryOperatorExpression:一元操作符表达式抽象
BinaryOperatorExpression:二元操作符表达式抽象
TernaryOperatorExpression:三元操作符表达式抽象
ArithmeticBinaryOperatorExpression:算术二元操作符表达式抽象
ArithmeticAddExpression:算术加法表达式
ArithmeticSubtractExpression:算术减法表达式

SQLASTVisitor:SQL AST节点访问者父类
MySQLOutputASTVisitor:MySQL类型的访问者实现
EmptySQLASTVisitor:访问者实现

当客户端发送需要解析的sql语句时,cobar-parser接收到‘+’的解析请求调用元素的accept方法时,cobar-parser会根据元素实际持有的visitor引用决定将处理请求转发到具体的visitor实现上,如MySQLOutputASTVisitor ,visitor会根据传入的元素类型的不同调用不同的方法处理。

以上仅为针对cobar-parser解析sql的第一步的请求分发处理,第二步为sql的词法和语法解析后面继续研究。

以上为个人分析,仅作参考,如有错误欢迎指出共同讨论。。。

转载于:https://my.oschina.net/helloJie/blog/103032

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值