编译原理-实验3-LL(1)分析文法构造(2)

2020-04-21 07:53

else: error() flag=1 elif(c=='T'): if(a[k]=='i' or a[k]=='('): table.add_row([a[k:], \ stack.append('Y') stack.append('F') print stack c=stack.pop() else: error() flag=1 elif(c=='Y'): if(a[k]=='*'): table.add_row([a[k:], \ stack.append('Y') stack.append('F') stack.append('*') print stack c=stack.pop() elif(a[k]=='+' or a[k]==')' or a[k]=='$'): table.add_row([a[k:], \ε\ print stack c=stack.pop() else: error() flag=1 elif(c=='F'): if(a[k]=='i'): table.add_row([a[k:], \ stack.append('i') print stack c=stack.pop() elif(a[k]=='('): table.add_row([a[k:], \ stack.append(')') stack.append('E') stack.append('(') print stack c=stack.pop()

else: error() flag=1

def error(): global k

table.add_row([a[k], \ print stack k+=1

if __name__ == '__main__':

a=raw_input(\ a=a+'$'

for temp in a: if(temp!='i' and temp!='+' and temp!='*' and temp!='(' and temp!=')' and temp!='$'):

print \ exit(0)

table = PrettyTable([\ table.padding_width = 1 table.align[\ table.align[\ stack=[] k=0 flag=0

stack.append('$') stack.append('E')

table.add_row([a[k:],\ print stack c=stack.pop() while(c!='$'): if(c==a[k]): table.add_row([a[k+1:],'{'+a[k]+'}'+\ print stack k+=1 c=stack.pop() elif(c==')' and c!=a[k]): error() flag=1

break elif(flag==1): break

elif(a[k]=='$' and c=='$'): break else: LL1()

print table if(flag==0): print \else: print \


编译原理-实验3-LL(1)分析文法构造(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工程项目建设流程及相关手续办理说明

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: