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 \
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库编译原理-实验3-LL(1)分析文法构造(2)在线全文阅读。
相关推荐: