一、设计目的
根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。
二、设计要求
程序输入/输出示例:
对下列文法,用LL(1)分析法对任意输入的符号串进行分析:
原文法
E->E+T|E-T|T
T->T*F|T/F|F
F->id|(E)|num
其中: id: a-f, A-F,num:0-9
消左递归
E->TA A->+TA A->-TA A->e
T->FB B->*FB B->/FB B->e
F->i F->(E) F->n
其中:i:id, n:num, e:epsilonE->TG
FIRST集和FOLLOW集
TA | +TA | -TA | e | FB | *FB | /FB | e | i | (E) | n | |
---|---|---|---|---|---|---|---|---|---|---|---|
FIRST | i,(,n | + | - | e | i,(,n | * | / | e | i | ( | n |
E | A | T | B | F | |
---|---|---|---|---|---|
FOLLOW | $,) | $,) | +,-,$,) | +,-,$,) | *,/,+,-,$,) |
输出的格式如下
-
输入一以#结束的符号串(包括+—*/()i#):