lexical analysis

wikipedia

词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为标记(token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(lexical analyzer,简称lexer),也叫扫描器(scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。

wiki地址

https://zh.wikipedia.org/wiki/%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90

Tips

结构

词法分析结果 => 列表
语法分析结果 => AST树

任务

(从字符串转成token串)

  • 关键字 | 标识符 | 分隔符 | 运算符 | 字面量(Literal)| 注释(不形成token) | 空白字符
  • JS - “0x”-16 “0”-8 “0b”-2
  • 所以不是简单规则能解决,需要用系统性的解决方法

词法规则

词法规则-formal grammar(正则文法)-上下文无关文法的子集

语法规则-context-free grammer-CFG

用程序实现词法分析

LL算法

  • First|Follow 集合
  • 避免回溯 -> 实现性能上的提升