学习编译原理Time02 ~ 语法分析树
语法分析的作用是识别由词法分析给出的单词符号序列是否是给定文法的正确句子,目前语法分析常用的方法有自顶向下分析和自底向上分析两大类。自顶向下分析包括确定分析和不确定分析,自底向上分析又包括算符优先分析法和LR分析,这些分析方法各有优缺点,这些方法慢慢道来。
首先要初步了解,语法分析器(Parser)从词法分析器输出的token序列中识别各类短语,并构造语法分析树(Parser tree)。
语言分析树描述了句子的语法结构
示例:赋值语句的分析树
A = B + C * 60 ;
词法分析后得到:
< id , A > <=> <id , B > <+> < id , C > <*> <num,60> <;>
再示例:变量声明语句的分析树
文法:
<D> -> <T><IDS>;
<T> -> int | real | char | bool
<IDS> -> id | <IDS>,id
<D>为Declaration的首字母,表示声明语句
<T>为Type的首字母,表示类型
<IDS>为Identifier Sequence的缩写,表示标识符序列
假如输入: int a, b, c;
语法分析树如下所示:
小浩笔记
评论