bar*_*ley 21
扫描程序只是将输入字符串(例如文件)转换为标记列表.这些标记代表标识符,括号,运算符等.
解析器将此令牌列表转换为类似树的对象,以表示令牌如何组合在一起以形成一个有凝聚力的整体(有时称为句子).
在编程语言解析器方面,输出通常称为抽象语法树(AST).AST中的每个节点表示该语言的不同构造,例如,IF语句将是具有2或3个子节点的节点,CONDITION节点,THEN节点以及可能的ELSE节点.
除了结构内聚之外,解析器不会给节点任何意义.接下来要做的是从这个结构中提取意义(有时称为上下文分析).
解析(一般意义上)是将符号(字符、数字、左括号等)转换为语法的句子。
词法分析器(“词法分析器”)将源代码文件中的单个符号解析为标记。从那里,“解析器”将这些整个标记转换为语法的句子。
换句话说,词法分析器将符号组合成记号,解析器将记号组合成句子。