语法分析¶
约 233 个字 预计阅读时间 1 分钟
语法分析器的基本作用
从词法分析器获得 Token 序列,确认该序列是否可以由语言的文法生成
- 对于语法错误的程序,报告错误信息
- 对于语法正确的程序,生成语法分析树(简称语法树)
- 通常产生的是抽象语法树 (AST)
Parse Tree 不是 AST
目前语法分析器的实现有下面两种方法:
- By-hand (recursive descent)
- Clang, gcc (Since 3.4)
- Libraries can make this easier (e.g.,parser combinators-parsec)
- Use a parser generator
- Much easier to get right ("Specification is the implementation")
- Gcc (Before 3.4), Glasgow Haskell Compiler, OCaml
- Parser generator: Yacc, Bison, ANTLR, menhir
手写的原因可能包括语法太过复杂,手写反而方便一些 (GCC 3.4 later)
由于语法分析的内容比较多,本章将分为四部分进行记录:
最后更新:
2024年4月23日 16:17:02
创建日期: 2024年4月23日 16:17:02
创建日期: 2024年4月23日 16:17:02