antlr笔记

ANTLR—Another Tool for Language Recognition

这名字取得哈哈哈。。“另一种语言识别工具”。。。真的佛了


antlr笔记_第1张图片

简单的说,是一种开源的语法分析器

这种分析器主要分为三个基础类:Lexer, Parser, Tree parser



Lexer: 词法分析器

从字节流-->token关键字和各类符号分组

百科上感觉比较容易理解的解释是:词法分析器的工作是分析量化那些本来毫无意义的字符流,将他们翻译成离散的字符组(也就是一个一个的Token),包括关键字,标识符,符号(symbols)和操作符供语法分析器使用。

Parser:语法分析器

从token-->ASTree

在分析字符流的时候,Lexer不关心所生成的单个Token的语法意义及其与上下文之间的关系,而这就是Parser的工作。语法分析器将收到的Tokens组织起来,并转换成为目标语言语法定义所允许的序列。

所以这个Parser的功能用简单的话说,就是把,已经捡好的,分好类的各个Token(就是sql中的关键词,函数,或者一些有意义的短语)之间的关系梳理清楚;处理成一颗完整的Tree;

这颗树的节点都是一个Token,逻辑关系就完美的呈现在这棵树里了。

Tree parser: 树分析器

这个不太明白。。

你可能感兴趣的:(antlr笔记)