在计算机科学和语言学中,语法分析(parsing)是根据某种给定的形式文法(formal grammar)对输入的单词(token)序列进行分析并确定其语法结构的一种过程。而语法分析器通常是以编译器或解释器的组件出现的,它的作用是从输入中分析出其结构并将其转换为在后续处理过程中更易于访问的数据结构(一般是树类的数据结构),并检测可能存在的语法错误。语法分析器通常使用一个词法分析器(lexer)从输入的字符流中分离出一个个的‘单词’,并将单词流作为其输入。在实际开发中,语法分析器可以手工编写,也可以使用自动生成程序(如yacc之类)根据一个使用巴科斯范式描述的形式文法来生成其高级语言代码。