91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .py
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-01-07
  • 語言: Python
  • 標簽: 編譯原理??SLR1??LR0??

資源簡介

LR文法分析表構造器 在main.py中配置對應的文法、終結符、非終結符、開始項目、開始符號即可自動生成項目集、GO關系、LR0分析表。 當生成LR0分析表產(chǎn)生沖突時,會自動構造FIRST集和FOLLOW集,轉為生成SLR1分析表。 用法 python3 main.py 最后的表格如果需要輸出到EXCEL中,建議稍作更改輸出為CSV文件,再由EXCEL處理。 示例 對文法G[E]構造分析表 E→E+T | E-T | T T→T*F | T/F | F F→P^F | P P→(E) | i* 應先構造其拓廣文法G[E'],但此程序暫不支持兩個字符的非終結符,因此用G[A]代替。 構造如

資源截圖

代碼片段和文件信息

#?程序使用Python3運行
#?示例文法G[E]:
#?E→E+T?|?E-T?|?T
#?T→T*F?|?T/F?|?F
#?F→P^F?|?P
#?P→(E)?|?i

#?用前需配置全局變量如下
#?拓廣文法G[A],必須寫開,不能帶或
C?=?[‘A→E‘?‘E→E+T‘?‘E→E-T‘?‘E→T‘?‘T→T*F‘?‘T→T/F‘?‘T→F‘?‘F→P^F‘?‘F→P‘?‘P→(E)‘?‘P→i‘]
#?非終結符,必須是一個字符不能寫成類似E‘,不然轉向SLR時會出錯
Vn?=?[‘A‘?‘E‘?‘T‘?‘F‘?‘P‘]
#?終結符,必須是一個字符,空字符寫成ε
Vt?=?[‘+‘?‘-‘?‘*‘?‘/‘?‘^‘?‘(‘?‘)‘?‘i‘?‘#‘]
#?項目集的構造由此項目開始
begin?=?‘A→·E‘
#?開始字符,如G[A]中就是A
BEGIN?=?‘A‘



def?findI(I?v):
newI?=?[]
global?C
for?i?in?range(len(I)):
index?=?location(I[i])
if?index?!=?-1?and?I[i][index]?==?v:
newI.append(getNextPointI(I[i]))
addNewI(newI?C)
return?newI


def?addNewI(newI?C):
if?newI?==?[]:
return
oldLen?=?len(newI)
for?i?in?range(oldLen):
index?=?location(newI[i])
if?index?!=?-1?and?isVn(newI[i][index]):
for?j?in?range(len(C

評論

共有 條評論