单优先分析法实现算术表达式语法分析器
单优先分析法实现算术表达式语法分析器
问题描述
给定一个上下文无关文法 $G[E]$:
E → E + T | E - T | TT → T * F | T / F | FF → P ^ F | PP → (E) | i
其中 i 表示变量或无符号常量。
判断一个输入的算术表达式是否符合该文法,如果是,输出 syntax correct;否则,输出 syntax error。
解题思路
根据给定的文法,首先求出所有产生式的 FIRST 集和 FOLLOW 集:
FIRST(E) = {i, (}FIRST(T) = {i, (}FIRST(F) = {i, (}FIRST(P) = {i, (}FIRST(i) = {i}FIRST(( = {(}FOLLOW(E) = {#, +, -}FOLLOW(T) = {#, +, -, *, /}FOLLOW(F) = {#, +, -, *, /, ^}FOLLOW(P) = {#, +, -, *, /,
原文地址: https://www.cveoy.top/t/topic/ncBg 著作权归作者所有。请勿转载和采集!