xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-28
  • 語(yǔ)言: 其他
  • 標(biāo)簽: LL(1)文法??python??

資源簡(jiǎn)介

1. 實(shí)驗(yàn)內(nèi)容 1、 讓計(jì)算機(jī)接受一個(gè)文法,示例如(僅供參考): G[S] 為: S→AB S→bC A→ε A→b B→ε B→aD C→AD C→b D→aS D→c 2、 編程實(shí)現(xiàn)對(duì)上述文法是否是LL(1)文法的判斷,是則給出肯定回答,否則給出否定回答。 3、判別是否是LL(1)文法 。。。。。。

資源截圖

代碼片段和文件信息

‘‘‘
S
S->AB
A->&
B->&
C->AD
D->aS
S->bC
A->b
B->aD
C->b
D->c
#->#
‘‘‘
G?=?{}
#?input
print(“請(qǐng)輸入文法的開(kāi)始符:“)
S?=?input()
print(“請(qǐng)輸入文法.(如:‘S->AB‘).最后文法以‘#->#‘結(jié)束.“)
while?True:
????keyvalue?=?input().split(“->“)
????if?key==‘#‘?and?value?==?‘#‘:?break
????elif?key?in?G.keys():G[key].append(value)
????else:?G[key]?=?[value]

#?print(G)

#?first
def?first(strfirstset=[]):
????t?=?str[0]
????if?t==‘&‘:?firstset.append(‘&‘)
????elif?t>=‘A‘?and?t<=‘Z‘:
????????for?s?in?G[t]:
????????????tempset?=?first(s?firstset=[])
????????????firstset.extend(tempset)
????????????if?‘&‘?in?tempset?and?len(str)>1:
????????????????firstset.extend(first(str[1:]firstset))?????????????????
????else:?firstset.append(t)
????return?set(firstset)

#?print?first
#?print(first(input()?firstset=[]))

#?follow
def?follow(chfollowset=[]father=[]):
????father.append(ch)
????if?ch==S:
????????followset.append(‘#‘)
#?????????return?followset
????for?key?in?G:
????????for?s?in?G[key]:
????????????if?ch?in?s:
#?????????????????print(ss.index(ch))
????????????????i?=?s.index(ch)
????????????????if?i?==?len(s)-1:
#?????????????????????print(father)
????????????????????if?key?in?father:?continue
????????????????????followset.extend(follow(keyfollowsetfather))
????????????????elif?i?????????????????????tempset?=?first(s[i+1:]?firstset=[])
????????????????????#print(tempset)
????????????????????if?‘&‘?in?tempset:
????????????????????????if?key?in?father:?continue
#?????????????????????????print(‘tempset=‘tempset)
????????????????????????tempset.remove(‘&‘)
????????????????????????followset.extend(tempset)
#?????????????????????????print(‘tempset=‘tempset)
????????????????????????followset.extend(follow(keyfollowsetfather))
????????????????????else:followset.extend(tempset)
????return?set(followset)

#?print?follow?????????????
#?print(follow(input()?followset=[]))

#?select
selectset={}
def?select():
????for?key?in?G:
????????for?s?in?G[key]:
????????????selectset[key+‘->‘+s]?=?first(s?firstset=[])
????????????if?‘&‘?in?selectset[key+‘->‘+s]:
????????????????selectset[key+‘->‘+s].remove(‘&‘)
????????????????selectset[key+‘->‘+s]?=?selectset[key+‘->‘+s]?|?set(follow(key?followset=[]father=[]))
????return?selectset

#?print?selectset
#?print(select())

def?judeLL1():
????flag?=?True
????select()
????print(‘文法的select?set如下:‘)
????for?key?in?selectset:
????????print(key+‘:‘selectset[key])
????print(‘LL(1)判斷過(guò)程如下(即select集合的求交集過(guò)程):‘)
????for?key1?in?selectset:
????????for?key2?in?selectset:
????????????if?key1==key2:?continue
????????????elif?key1[0]==key2[0]:
????????????????print(selectset[key1]‘U‘selectset[key2]end=‘‘)
????????????????tempset?=?selectset[key1]?&?selectset[key2]
????????????????if?tempset:
????????????????????flag?=?False
????????????????????print(‘?=‘tempset)
????????????????else:print(‘?=?NULL‘)
????return?flag
????
#?jude?LL(1)?????????
#?

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????3892??2017-12-21?11:15??SelectSet.py

-----------?---------??----------?-----??----

?????????????????3892????????????????????1


評(píng)論

共有 條評(píng)論

相關(guān)資源