lexical analysis(词法分析):编译器或解释器处理源代码的早期阶段之一,把一串字符(character stream)分割并归类为有意义的词法单元(tokens),例如关键字、标识符、数字、运算符与分隔符等。常由lexer/scanner(词法分析器/扫描器)完成。
(在更广义语境中,也可指对文本词汇层面的分析,但在计算机科学里最常用的是“编译原理”的含义。)
/ˈlɛksɪkəl əˈnæləsɪs/
The compiler performs lexical analysis before parsing.
编译器在进行语法分析之前会先做词法分析。
During lexical analysis, comments and whitespace are often ignored, while identifiers and keywords become tokens for the parser to read.
在词法分析过程中,注释和空白通常会被忽略,而标识符与关键字会被转换成词法单元,供语法分析器读取。
lexical 来自 lexicon(“词汇、词典”),源于希腊语 lexikon(与“词语/表达”相关);analysis 源于希腊语 analysis(“分解、拆解”)。合在一起字面义为“对词汇层面的拆解与分析”,在编译领域即“把字符流拆成 token 并分类”。