旧版链接 https://blog.csdn.net/hhhhhhhhhhkkkkkkkkkk/article/details/19990287
按照这个标题搜进来的各位是不是以为这也是和课本一样的内容呢,其实这是我看了两天课本才理解出来的内容啊,绝对和课本不一样。 课本上LR(1)项目集族的构造内容如下
以S′→·S,#属于初始项目集中,把’#‘号作为向前搜索符,表示活前缀为γ(若γ是有关S产生式的某一右部)要归约成S时,必须面临输入符为’#'号才行。我们对初始项目S′→·S,# 求闭包后再用转换函数逐步求出整个文法的LR(1)项目集族。具体构造步骤如下:
(1) 构造LR(1)项目集的闭包函数。
a)假定I是一个项目集, I 的任何项目都属于CLOSURE(I)。
b) 若有项目 A→α·Bβ,a 属于CLOSURE(I),B→γ是文法中的产生式,β∈V*,b∈FIRST(βa), 则 B→·γ,b 也属于CLOSURE(I)中。
c) 重复b)直到CLOSURE(I)不再增大为止。
大家是不是看的一头雾水呢。课本上还给出了一个例子:
文法:

#mermaid-svg-ZXzwQo4LHBkhLak8 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .label text{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .node rect,#mermaid-svg-ZXzwQo4LHBkhLak8 .node circle,#mermaid-svg-ZXzwQo4LHBkhLak8 .node ellipse,#mermaid-svg-ZXzwQo4LHBkhLak8 .node polygon,#mermaid-svg-ZXzwQo4LHBkhLak8 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ZXzwQo4LHBkhLak8 .node .label{text-align:center;fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .node.clickable{cursor:pointer}#mermaid-svg-ZXzwQo4LHBkhLak8 .arrowheadPath{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-ZXzwQo4LHBkhLak8 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-ZXzwQo4LHBkhLak8 .edgeLabel rect{opacity:0.9}#mermaid-svg-ZXzwQo4LHBkhLak8 .edgeLabel span{color:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-ZXzwQo4LHBkhLak8 .cluster text{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-ZXzwQo4LHBkhLak8 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ZXzwQo4LHBkhLak8 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .actor-line{stroke:grey}#mermaid-svg-ZXzwQo4LHBkhLak8 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .sequenceNumber{fill:#fff}#mermaid-svg-ZXzwQo4LHBkhLak8 #sequencenumber{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .messageText{fill:#333;stroke:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ZXzwQo4LHBkhLak8 .labelText,#mermaid-svg-ZXzwQo4LHBkhLak8 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .loopText,#mermaid-svg-ZXzwQo4LHBkhLak8 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-ZXzwQo4LHBkhLak8 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ZXzwQo4LHBkhLak8 .noteText,#mermaid-svg-ZXzwQo4LHBkhLak8 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZXzwQo4LHBkhLak8 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZXzwQo4LHBkhLak8 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZXzwQo4LHBkhLak8 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .section{stroke:none;opacity:0.2}#mermaid-svg-ZXzwQo4LHBkhLak8 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-ZXzwQo4LHBkhLak8 .section2{fill:#fff400}#mermaid-svg-ZXzwQo4LHBkhLak8 .section1,#mermaid-svg-ZXzwQo4LHBkhLak8 .section3{fill:#fff;opacity:0.2}#mermaid-svg-ZXzwQo4LHBkhLak8 .sectionTitle0{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .sectionTitle1{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .sectionTitle2{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .sectionTitle3{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-ZXzwQo4LHBkhLak8 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .grid path{stroke-width:0}#mermaid-svg-ZXzwQo4LHBkhLak8 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-ZXzwQo4LHBkhLak8 .task{stroke-width:2}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText:not([font-size]){font-size:11px}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-ZXzwQo4LHBkhLak8 .task.clickable{cursor:pointer}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText0,#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText1,#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText2,#mermaid-svg-ZXzwQo4LHBkhLak8 .taskText3{fill:#fff}#mermaid-svg-ZXzwQo4LHBkhLak8 .task0,#mermaid-svg-ZXzwQo4LHBkhLak8 .task1,#mermaid-svg-ZXzwQo4LHBkhLak8 .task2,#mermaid-svg-ZXzwQo4LHBkhLak8 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutside0,#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutside2{fill:#000}#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutside1,#mermaid-svg-ZXzwQo4LHBkhLak8 .taskTextOutside3{fill:#000}#mermaid-svg-ZXzwQo4LHBkhLak8 .active0,#mermaid-svg-ZXzwQo4LHBkhLak8 .active1,#mermaid-svg-ZXzwQo4LHBkhLak8 .active2,#mermaid-svg-ZXzwQo4LHBkhLak8 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-ZXzwQo4LHBkhLak8 .activeText0,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeText1,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeText2,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeText3{fill:#000 !important}#mermaid-svg-ZXzwQo4LHBkhLak8 .done0,#mermaid-svg-ZXzwQo4LHBkhLak8 .done1,#mermaid-svg-ZXzwQo4LHBkhLak8 .done2,#mermaid-svg-ZXzwQo4LHBkhLak8 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-ZXzwQo4LHBkhLak8 .doneText0,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneText1,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneText2,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneText3{fill:#000 !important}#mermaid-svg-ZXzwQo4LHBkhLak8 .crit0,#mermaid-svg-ZXzwQo4LHBkhLak8 .crit1,#mermaid-svg-ZXzwQo4LHBkhLak8 .crit2,#mermaid-svg-ZXzwQo4LHBkhLak8 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCrit0,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCrit1,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCrit2,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCrit0,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCrit1,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCrit2,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-ZXzwQo4LHBkhLak8 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-ZXzwQo4LHBkhLak8 .milestoneText{font-style:italic}#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCritText0,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCritText1,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCritText2,#mermaid-svg-ZXzwQo4LHBkhLak8 .doneCritText3{fill:#000 !important}#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCritText0,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCritText1,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCritText2,#mermaid-svg-ZXzwQo4LHBkhLak8 .activeCritText3{fill:#000 !important}#mermaid-svg-ZXzwQo4LHBkhLak8 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-ZXzwQo4LHBkhLak8 g.classGroup text .title{font-weight:bolder}#mermaid-svg-ZXzwQo4LHBkhLak8 g.clickable{cursor:pointer}#mermaid-svg-ZXzwQo4LHBkhLak8 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ZXzwQo4LHBkhLak8 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-ZXzwQo4LHBkhLak8 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-ZXzwQo4LHBkhLak8 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .dashed-line{stroke-dasharray:3}#mermaid-svg-ZXzwQo4LHBkhLak8 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 .commit-id,#mermaid-svg-ZXzwQo4LHBkhLak8 .commit-msg,#mermaid-svg-ZXzwQo4LHBkhLak8 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-ZXzwQo4LHBkhLak8 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-ZXzwQo4LHBkhLak8 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ZXzwQo4LHBkhLak8 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ZXzwQo4LHBkhLak8 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ZXzwQo4LHBkhLak8 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-ZXzwQo4LHBkhLak8 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-ZXzwQo4LHBkhLak8 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ZXzwQo4LHBkhLak8 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-ZXzwQo4LHBkhLak8 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-ZXzwQo4LHBkhLak8 .edgeLabel text{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZXzwQo4LHBkhLak8 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-ZXzwQo4LHBkhLak8 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-ZXzwQo4LHBkhLak8 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-ZXzwQo4LHBkhLak8 .note-edge{stroke-dasharray:5}#mermaid-svg-ZXzwQo4LHBkhLak8 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-ZXzwQo4LHBkhLak8 .error-icon{fill:#522}#mermaid-svg-ZXzwQo4LHBkhLak8 .error-text{fill:#522;stroke:#522}#mermaid-svg-ZXzwQo4LHBkhLak8 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-ZXzwQo4LHBkhLak8 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-ZXzwQo4LHBkhLak8 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-ZXzwQo4LHBkhLak8 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-ZXzwQo4LHBkhLak8 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-ZXzwQo4LHBkhLak8 .marker{fill:#333}#mermaid-svg-ZXzwQo4LHBkhLak8 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-ZXzwQo4LHBkhLak8 {color: rgba(0, 0, 0, 0.75);font: ;}

0 S'->S
1 S->aAd
2 S->bAc
3 S->aec
4 S->bed
5 A->e

项目集簇:

#mermaid-svg-sStZuxnHLzZ1L4pJ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .label text{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .node rect,#mermaid-svg-sStZuxnHLzZ1L4pJ .node circle,#mermaid-svg-sStZuxnHLzZ1L4pJ .node ellipse,#mermaid-svg-sStZuxnHLzZ1L4pJ .node polygon,#mermaid-svg-sStZuxnHLzZ1L4pJ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sStZuxnHLzZ1L4pJ .node .label{text-align:center;fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .node.clickable{cursor:pointer}#mermaid-svg-sStZuxnHLzZ1L4pJ .arrowheadPath{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-sStZuxnHLzZ1L4pJ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-sStZuxnHLzZ1L4pJ .edgeLabel rect{opacity:0.9}#mermaid-svg-sStZuxnHLzZ1L4pJ .edgeLabel span{color:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-sStZuxnHLzZ1L4pJ .cluster text{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-sStZuxnHLzZ1L4pJ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sStZuxnHLzZ1L4pJ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .actor-line{stroke:grey}#mermaid-svg-sStZuxnHLzZ1L4pJ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .sequenceNumber{fill:#fff}#mermaid-svg-sStZuxnHLzZ1L4pJ #sequencenumber{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .messageText{fill:#333;stroke:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sStZuxnHLzZ1L4pJ .labelText,#mermaid-svg-sStZuxnHLzZ1L4pJ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .loopText,#mermaid-svg-sStZuxnHLzZ1L4pJ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-sStZuxnHLzZ1L4pJ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sStZuxnHLzZ1L4pJ .noteText,#mermaid-svg-sStZuxnHLzZ1L4pJ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-sStZuxnHLzZ1L4pJ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-sStZuxnHLzZ1L4pJ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-sStZuxnHLzZ1L4pJ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .section{stroke:none;opacity:0.2}#mermaid-svg-sStZuxnHLzZ1L4pJ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-sStZuxnHLzZ1L4pJ .section2{fill:#fff400}#mermaid-svg-sStZuxnHLzZ1L4pJ .section1,#mermaid-svg-sStZuxnHLzZ1L4pJ .section3{fill:#fff;opacity:0.2}#mermaid-svg-sStZuxnHLzZ1L4pJ .sectionTitle0{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .sectionTitle1{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .sectionTitle2{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .sectionTitle3{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-sStZuxnHLzZ1L4pJ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .grid path{stroke-width:0}#mermaid-svg-sStZuxnHLzZ1L4pJ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-sStZuxnHLzZ1L4pJ .task{stroke-width:2}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText:not([font-size]){font-size:11px}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-sStZuxnHLzZ1L4pJ .task.clickable{cursor:pointer}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText0,#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText1,#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText2,#mermaid-svg-sStZuxnHLzZ1L4pJ .taskText3{fill:#fff}#mermaid-svg-sStZuxnHLzZ1L4pJ .task0,#mermaid-svg-sStZuxnHLzZ1L4pJ .task1,#mermaid-svg-sStZuxnHLzZ1L4pJ .task2,#mermaid-svg-sStZuxnHLzZ1L4pJ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutside0,#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutside2{fill:#000}#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutside1,#mermaid-svg-sStZuxnHLzZ1L4pJ .taskTextOutside3{fill:#000}#mermaid-svg-sStZuxnHLzZ1L4pJ .active0,#mermaid-svg-sStZuxnHLzZ1L4pJ .active1,#mermaid-svg-sStZuxnHLzZ1L4pJ .active2,#mermaid-svg-sStZuxnHLzZ1L4pJ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-sStZuxnHLzZ1L4pJ .activeText0,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeText1,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeText2,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeText3{fill:#000 !important}#mermaid-svg-sStZuxnHLzZ1L4pJ .done0,#mermaid-svg-sStZuxnHLzZ1L4pJ .done1,#mermaid-svg-sStZuxnHLzZ1L4pJ .done2,#mermaid-svg-sStZuxnHLzZ1L4pJ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-sStZuxnHLzZ1L4pJ .doneText0,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneText1,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneText2,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneText3{fill:#000 !important}#mermaid-svg-sStZuxnHLzZ1L4pJ .crit0,#mermaid-svg-sStZuxnHLzZ1L4pJ .crit1,#mermaid-svg-sStZuxnHLzZ1L4pJ .crit2,#mermaid-svg-sStZuxnHLzZ1L4pJ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCrit0,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCrit1,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCrit2,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCrit0,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCrit1,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCrit2,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-sStZuxnHLzZ1L4pJ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-sStZuxnHLzZ1L4pJ .milestoneText{font-style:italic}#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCritText0,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCritText1,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCritText2,#mermaid-svg-sStZuxnHLzZ1L4pJ .doneCritText3{fill:#000 !important}#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCritText0,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCritText1,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCritText2,#mermaid-svg-sStZuxnHLzZ1L4pJ .activeCritText3{fill:#000 !important}#mermaid-svg-sStZuxnHLzZ1L4pJ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-sStZuxnHLzZ1L4pJ g.classGroup text .title{font-weight:bolder}#mermaid-svg-sStZuxnHLzZ1L4pJ g.clickable{cursor:pointer}#mermaid-svg-sStZuxnHLzZ1L4pJ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sStZuxnHLzZ1L4pJ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-sStZuxnHLzZ1L4pJ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-sStZuxnHLzZ1L4pJ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .dashed-line{stroke-dasharray:3}#mermaid-svg-sStZuxnHLzZ1L4pJ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ .commit-id,#mermaid-svg-sStZuxnHLzZ1L4pJ .commit-msg,#mermaid-svg-sStZuxnHLzZ1L4pJ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-sStZuxnHLzZ1L4pJ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-sStZuxnHLzZ1L4pJ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sStZuxnHLzZ1L4pJ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sStZuxnHLzZ1L4pJ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sStZuxnHLzZ1L4pJ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-sStZuxnHLzZ1L4pJ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-sStZuxnHLzZ1L4pJ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sStZuxnHLzZ1L4pJ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-sStZuxnHLzZ1L4pJ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-sStZuxnHLzZ1L4pJ .edgeLabel text{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sStZuxnHLzZ1L4pJ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-sStZuxnHLzZ1L4pJ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-sStZuxnHLzZ1L4pJ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-sStZuxnHLzZ1L4pJ .note-edge{stroke-dasharray:5}#mermaid-svg-sStZuxnHLzZ1L4pJ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-sStZuxnHLzZ1L4pJ .error-icon{fill:#522}#mermaid-svg-sStZuxnHLzZ1L4pJ .error-text{fill:#522;stroke:#522}#mermaid-svg-sStZuxnHLzZ1L4pJ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-sStZuxnHLzZ1L4pJ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-sStZuxnHLzZ1L4pJ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-sStZuxnHLzZ1L4pJ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-sStZuxnHLzZ1L4pJ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-sStZuxnHLzZ1L4pJ .marker{fill:#333}#mermaid-svg-sStZuxnHLzZ1L4pJ .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-sStZuxnHLzZ1L4pJ {color: rgba(0, 0, 0, 0.75);font: ;}

S
a
b
A
e
A
e
d
c
c
d
I0:
S'->.S,#
S->.aAd,#
S->.bAc,#
S->.aec,#
S->.bed,#
I1:
S'->S.,#
I2:
S->a.<font color=#F00>A</font><font color=#0F0>d</font><font color=#080>,#</font>
S->a.ec,#
<font color=#F00>A</font>->.e,<font color=#0F0>d</font>
I3:
S->b.<font color=#F00>A</font><font color=#0F0>c</font><font color=#080>,#</font>
S->b.ed,#
<font color=#F00>A</font>->.e,<font color=#0F0>c</font>
I4:
S->aA.d,#
I5:
S->ae.c,#
A->e.,<font color=#F0F>d</font>
I6:
S->bA.c,#
I7:
S->be.d,#
A->e.,<font color=#F0F>c</font>
I8:
S->aAd.,#
I9:
S->aec.,#
I10:
S->bAc.,#
I11:
S->bed.,#

大家是不是在想I2中

A->e.,d

后的d,
I7中

A->e.,c

后的c是怎么来的呢?

课本的答案是对的,但是写法很是让我们一头雾水,下面让我们来看看答案是怎么出来的:

  • 1.一开始,S’是整个句子,所以后面理所当然跟句子结束符#。
    然后S后面是‘ε’(就是什么都没有)所以β=ε,
    接着逗号后面是‘#’即a=#,
    这样FIRST(βa)=FIRST(ε#)={#}。这就是I0中S后面#号的来历。

  • 2.在I2:S->a. Ad,#中
    A的后面是d,所以FIRST(d#)={d}(就是“d#”的第一个终结符d),所以接下来A的后面跟的是d如图中绿色所示。

  • 3.在确定了A的逗号后面的搜索符后,基本上就可以直接照搬下去了,如图中的紫色所示。(其实#号一直都在照搬来着,大家注意到没?)

下面再讲一点FIRST(β)的计算。

  • 1.如果β的第一个字符是终结符,如:
β=aAbbC
β=eBbbD

那么

#mermaid-svg-H6Td79aY0ozn7GqW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-H6Td79aY0ozn7GqW .label text{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .node rect,#mermaid-svg-H6Td79aY0ozn7GqW .node circle,#mermaid-svg-H6Td79aY0ozn7GqW .node ellipse,#mermaid-svg-H6Td79aY0ozn7GqW .node polygon,#mermaid-svg-H6Td79aY0ozn7GqW .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-H6Td79aY0ozn7GqW .node .label{text-align:center;fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .node.clickable{cursor:pointer}#mermaid-svg-H6Td79aY0ozn7GqW .arrowheadPath{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-H6Td79aY0ozn7GqW .flowchart-link{stroke:#333;fill:none}#mermaid-svg-H6Td79aY0ozn7GqW .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-H6Td79aY0ozn7GqW .edgeLabel rect{opacity:0.9}#mermaid-svg-H6Td79aY0ozn7GqW .edgeLabel span{color:#333}#mermaid-svg-H6Td79aY0ozn7GqW .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-H6Td79aY0ozn7GqW .cluster text{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-H6Td79aY0ozn7GqW .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-H6Td79aY0ozn7GqW text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-H6Td79aY0ozn7GqW .actor-line{stroke:grey}#mermaid-svg-H6Td79aY0ozn7GqW .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-H6Td79aY0ozn7GqW .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-H6Td79aY0ozn7GqW #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-H6Td79aY0ozn7GqW .sequenceNumber{fill:#fff}#mermaid-svg-H6Td79aY0ozn7GqW #sequencenumber{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW #crosshead path{fill:#333;stroke:#333}#mermaid-svg-H6Td79aY0ozn7GqW .messageText{fill:#333;stroke:#333}#mermaid-svg-H6Td79aY0ozn7GqW .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-H6Td79aY0ozn7GqW .labelText,#mermaid-svg-H6Td79aY0ozn7GqW .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-H6Td79aY0ozn7GqW .loopText,#mermaid-svg-H6Td79aY0ozn7GqW .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-H6Td79aY0ozn7GqW .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-H6Td79aY0ozn7GqW .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-H6Td79aY0ozn7GqW .noteText,#mermaid-svg-H6Td79aY0ozn7GqW .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-H6Td79aY0ozn7GqW .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-H6Td79aY0ozn7GqW .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-H6Td79aY0ozn7GqW .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-H6Td79aY0ozn7GqW .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .section{stroke:none;opacity:0.2}#mermaid-svg-H6Td79aY0ozn7GqW .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-H6Td79aY0ozn7GqW .section2{fill:#fff400}#mermaid-svg-H6Td79aY0ozn7GqW .section1,#mermaid-svg-H6Td79aY0ozn7GqW .section3{fill:#fff;opacity:0.2}#mermaid-svg-H6Td79aY0ozn7GqW .sectionTitle0{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .sectionTitle1{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .sectionTitle2{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .sectionTitle3{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-H6Td79aY0ozn7GqW .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .grid path{stroke-width:0}#mermaid-svg-H6Td79aY0ozn7GqW .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-H6Td79aY0ozn7GqW .task{stroke-width:2}#mermaid-svg-H6Td79aY0ozn7GqW .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .taskText:not([font-size]){font-size:11px}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-H6Td79aY0ozn7GqW .task.clickable{cursor:pointer}#mermaid-svg-H6Td79aY0ozn7GqW .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-H6Td79aY0ozn7GqW .taskText0,#mermaid-svg-H6Td79aY0ozn7GqW .taskText1,#mermaid-svg-H6Td79aY0ozn7GqW .taskText2,#mermaid-svg-H6Td79aY0ozn7GqW .taskText3{fill:#fff}#mermaid-svg-H6Td79aY0ozn7GqW .task0,#mermaid-svg-H6Td79aY0ozn7GqW .task1,#mermaid-svg-H6Td79aY0ozn7GqW .task2,#mermaid-svg-H6Td79aY0ozn7GqW .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutside0,#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutside2{fill:#000}#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutside1,#mermaid-svg-H6Td79aY0ozn7GqW .taskTextOutside3{fill:#000}#mermaid-svg-H6Td79aY0ozn7GqW .active0,#mermaid-svg-H6Td79aY0ozn7GqW .active1,#mermaid-svg-H6Td79aY0ozn7GqW .active2,#mermaid-svg-H6Td79aY0ozn7GqW .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-H6Td79aY0ozn7GqW .activeText0,#mermaid-svg-H6Td79aY0ozn7GqW .activeText1,#mermaid-svg-H6Td79aY0ozn7GqW .activeText2,#mermaid-svg-H6Td79aY0ozn7GqW .activeText3{fill:#000 !important}#mermaid-svg-H6Td79aY0ozn7GqW .done0,#mermaid-svg-H6Td79aY0ozn7GqW .done1,#mermaid-svg-H6Td79aY0ozn7GqW .done2,#mermaid-svg-H6Td79aY0ozn7GqW .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-H6Td79aY0ozn7GqW .doneText0,#mermaid-svg-H6Td79aY0ozn7GqW .doneText1,#mermaid-svg-H6Td79aY0ozn7GqW .doneText2,#mermaid-svg-H6Td79aY0ozn7GqW .doneText3{fill:#000 !important}#mermaid-svg-H6Td79aY0ozn7GqW .crit0,#mermaid-svg-H6Td79aY0ozn7GqW .crit1,#mermaid-svg-H6Td79aY0ozn7GqW .crit2,#mermaid-svg-H6Td79aY0ozn7GqW .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-H6Td79aY0ozn7GqW .activeCrit0,#mermaid-svg-H6Td79aY0ozn7GqW .activeCrit1,#mermaid-svg-H6Td79aY0ozn7GqW .activeCrit2,#mermaid-svg-H6Td79aY0ozn7GqW .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-H6Td79aY0ozn7GqW .doneCrit0,#mermaid-svg-H6Td79aY0ozn7GqW .doneCrit1,#mermaid-svg-H6Td79aY0ozn7GqW .doneCrit2,#mermaid-svg-H6Td79aY0ozn7GqW .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-H6Td79aY0ozn7GqW .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-H6Td79aY0ozn7GqW .milestoneText{font-style:italic}#mermaid-svg-H6Td79aY0ozn7GqW .doneCritText0,#mermaid-svg-H6Td79aY0ozn7GqW .doneCritText1,#mermaid-svg-H6Td79aY0ozn7GqW .doneCritText2,#mermaid-svg-H6Td79aY0ozn7GqW .doneCritText3{fill:#000 !important}#mermaid-svg-H6Td79aY0ozn7GqW .activeCritText0,#mermaid-svg-H6Td79aY0ozn7GqW .activeCritText1,#mermaid-svg-H6Td79aY0ozn7GqW .activeCritText2,#mermaid-svg-H6Td79aY0ozn7GqW .activeCritText3{fill:#000 !important}#mermaid-svg-H6Td79aY0ozn7GqW .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-H6Td79aY0ozn7GqW g.classGroup text .title{font-weight:bolder}#mermaid-svg-H6Td79aY0ozn7GqW g.clickable{cursor:pointer}#mermaid-svg-H6Td79aY0ozn7GqW g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-H6Td79aY0ozn7GqW g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-H6Td79aY0ozn7GqW .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-H6Td79aY0ozn7GqW .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-H6Td79aY0ozn7GqW .dashed-line{stroke-dasharray:3}#mermaid-svg-H6Td79aY0ozn7GqW #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW .commit-id,#mermaid-svg-H6Td79aY0ozn7GqW .commit-msg,#mermaid-svg-H6Td79aY0ozn7GqW .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-H6Td79aY0ozn7GqW g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-H6Td79aY0ozn7GqW g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-H6Td79aY0ozn7GqW g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-H6Td79aY0ozn7GqW .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-H6Td79aY0ozn7GqW .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-H6Td79aY0ozn7GqW .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-H6Td79aY0ozn7GqW .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-H6Td79aY0ozn7GqW .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-H6Td79aY0ozn7GqW .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-H6Td79aY0ozn7GqW .edgeLabel text{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-H6Td79aY0ozn7GqW .node circle.state-start{fill:black;stroke:black}#mermaid-svg-H6Td79aY0ozn7GqW .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-H6Td79aY0ozn7GqW #statediagram-barbEnd{fill:#9370db}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-state .divider{stroke:#9370db}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-H6Td79aY0ozn7GqW .note-edge{stroke-dasharray:5}#mermaid-svg-H6Td79aY0ozn7GqW .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-H6Td79aY0ozn7GqW .error-icon{fill:#522}#mermaid-svg-H6Td79aY0ozn7GqW .error-text{fill:#522;stroke:#522}#mermaid-svg-H6Td79aY0ozn7GqW .edge-thickness-normal{stroke-width:2px}#mermaid-svg-H6Td79aY0ozn7GqW .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-H6Td79aY0ozn7GqW .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-H6Td79aY0ozn7GqW .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-H6Td79aY0ozn7GqW .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-H6Td79aY0ozn7GqW .marker{fill:#333}#mermaid-svg-H6Td79aY0ozn7GqW .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-H6Td79aY0ozn7GqW {color: rgba(0, 0, 0, 0.75);font: ;}

β
aAbbC
eBbbD
a
e
a,e

即:

FIRST(β)
=FIRST(aAbbC)+FIRST(eBbbD)
={a}+{e}={a,e};   (‘+’代表‘并’,那个符号不好打,用‘+’来代替了。​)
  • 2.如果β的第一个字符是非终结符,如:
β=AEbC
A=DBac
D=ε
B=ea
B=bd
E=ε

那么:

#mermaid-svg-64ZhZaBVbU2sAikE .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-64ZhZaBVbU2sAikE .label text{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .node rect,#mermaid-svg-64ZhZaBVbU2sAikE .node circle,#mermaid-svg-64ZhZaBVbU2sAikE .node ellipse,#mermaid-svg-64ZhZaBVbU2sAikE .node polygon,#mermaid-svg-64ZhZaBVbU2sAikE .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-64ZhZaBVbU2sAikE .node .label{text-align:center;fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .node.clickable{cursor:pointer}#mermaid-svg-64ZhZaBVbU2sAikE .arrowheadPath{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-64ZhZaBVbU2sAikE .flowchart-link{stroke:#333;fill:none}#mermaid-svg-64ZhZaBVbU2sAikE .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-64ZhZaBVbU2sAikE .edgeLabel rect{opacity:0.9}#mermaid-svg-64ZhZaBVbU2sAikE .edgeLabel span{color:#333}#mermaid-svg-64ZhZaBVbU2sAikE .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-64ZhZaBVbU2sAikE .cluster text{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-64ZhZaBVbU2sAikE .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-64ZhZaBVbU2sAikE text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-64ZhZaBVbU2sAikE .actor-line{stroke:grey}#mermaid-svg-64ZhZaBVbU2sAikE .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-64ZhZaBVbU2sAikE .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-64ZhZaBVbU2sAikE #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-64ZhZaBVbU2sAikE .sequenceNumber{fill:#fff}#mermaid-svg-64ZhZaBVbU2sAikE #sequencenumber{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE #crosshead path{fill:#333;stroke:#333}#mermaid-svg-64ZhZaBVbU2sAikE .messageText{fill:#333;stroke:#333}#mermaid-svg-64ZhZaBVbU2sAikE .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-64ZhZaBVbU2sAikE .labelText,#mermaid-svg-64ZhZaBVbU2sAikE .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-64ZhZaBVbU2sAikE .loopText,#mermaid-svg-64ZhZaBVbU2sAikE .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-64ZhZaBVbU2sAikE .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-64ZhZaBVbU2sAikE .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-64ZhZaBVbU2sAikE .noteText,#mermaid-svg-64ZhZaBVbU2sAikE .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-64ZhZaBVbU2sAikE .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-64ZhZaBVbU2sAikE .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-64ZhZaBVbU2sAikE .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-64ZhZaBVbU2sAikE .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .section{stroke:none;opacity:0.2}#mermaid-svg-64ZhZaBVbU2sAikE .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-64ZhZaBVbU2sAikE .section2{fill:#fff400}#mermaid-svg-64ZhZaBVbU2sAikE .section1,#mermaid-svg-64ZhZaBVbU2sAikE .section3{fill:#fff;opacity:0.2}#mermaid-svg-64ZhZaBVbU2sAikE .sectionTitle0{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .sectionTitle1{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .sectionTitle2{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .sectionTitle3{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-64ZhZaBVbU2sAikE .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .grid path{stroke-width:0}#mermaid-svg-64ZhZaBVbU2sAikE .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-64ZhZaBVbU2sAikE .task{stroke-width:2}#mermaid-svg-64ZhZaBVbU2sAikE .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .taskText:not([font-size]){font-size:11px}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-64ZhZaBVbU2sAikE .task.clickable{cursor:pointer}#mermaid-svg-64ZhZaBVbU2sAikE .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-64ZhZaBVbU2sAikE .taskText0,#mermaid-svg-64ZhZaBVbU2sAikE .taskText1,#mermaid-svg-64ZhZaBVbU2sAikE .taskText2,#mermaid-svg-64ZhZaBVbU2sAikE .taskText3{fill:#fff}#mermaid-svg-64ZhZaBVbU2sAikE .task0,#mermaid-svg-64ZhZaBVbU2sAikE .task1,#mermaid-svg-64ZhZaBVbU2sAikE .task2,#mermaid-svg-64ZhZaBVbU2sAikE .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutside0,#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutside2{fill:#000}#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutside1,#mermaid-svg-64ZhZaBVbU2sAikE .taskTextOutside3{fill:#000}#mermaid-svg-64ZhZaBVbU2sAikE .active0,#mermaid-svg-64ZhZaBVbU2sAikE .active1,#mermaid-svg-64ZhZaBVbU2sAikE .active2,#mermaid-svg-64ZhZaBVbU2sAikE .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-64ZhZaBVbU2sAikE .activeText0,#mermaid-svg-64ZhZaBVbU2sAikE .activeText1,#mermaid-svg-64ZhZaBVbU2sAikE .activeText2,#mermaid-svg-64ZhZaBVbU2sAikE .activeText3{fill:#000 !important}#mermaid-svg-64ZhZaBVbU2sAikE .done0,#mermaid-svg-64ZhZaBVbU2sAikE .done1,#mermaid-svg-64ZhZaBVbU2sAikE .done2,#mermaid-svg-64ZhZaBVbU2sAikE .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-64ZhZaBVbU2sAikE .doneText0,#mermaid-svg-64ZhZaBVbU2sAikE .doneText1,#mermaid-svg-64ZhZaBVbU2sAikE .doneText2,#mermaid-svg-64ZhZaBVbU2sAikE .doneText3{fill:#000 !important}#mermaid-svg-64ZhZaBVbU2sAikE .crit0,#mermaid-svg-64ZhZaBVbU2sAikE .crit1,#mermaid-svg-64ZhZaBVbU2sAikE .crit2,#mermaid-svg-64ZhZaBVbU2sAikE .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-64ZhZaBVbU2sAikE .activeCrit0,#mermaid-svg-64ZhZaBVbU2sAikE .activeCrit1,#mermaid-svg-64ZhZaBVbU2sAikE .activeCrit2,#mermaid-svg-64ZhZaBVbU2sAikE .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-64ZhZaBVbU2sAikE .doneCrit0,#mermaid-svg-64ZhZaBVbU2sAikE .doneCrit1,#mermaid-svg-64ZhZaBVbU2sAikE .doneCrit2,#mermaid-svg-64ZhZaBVbU2sAikE .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-64ZhZaBVbU2sAikE .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-64ZhZaBVbU2sAikE .milestoneText{font-style:italic}#mermaid-svg-64ZhZaBVbU2sAikE .doneCritText0,#mermaid-svg-64ZhZaBVbU2sAikE .doneCritText1,#mermaid-svg-64ZhZaBVbU2sAikE .doneCritText2,#mermaid-svg-64ZhZaBVbU2sAikE .doneCritText3{fill:#000 !important}#mermaid-svg-64ZhZaBVbU2sAikE .activeCritText0,#mermaid-svg-64ZhZaBVbU2sAikE .activeCritText1,#mermaid-svg-64ZhZaBVbU2sAikE .activeCritText2,#mermaid-svg-64ZhZaBVbU2sAikE .activeCritText3{fill:#000 !important}#mermaid-svg-64ZhZaBVbU2sAikE .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-64ZhZaBVbU2sAikE g.classGroup text .title{font-weight:bolder}#mermaid-svg-64ZhZaBVbU2sAikE g.clickable{cursor:pointer}#mermaid-svg-64ZhZaBVbU2sAikE g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-64ZhZaBVbU2sAikE g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-64ZhZaBVbU2sAikE .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-64ZhZaBVbU2sAikE .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-64ZhZaBVbU2sAikE .dashed-line{stroke-dasharray:3}#mermaid-svg-64ZhZaBVbU2sAikE #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE .commit-id,#mermaid-svg-64ZhZaBVbU2sAikE .commit-msg,#mermaid-svg-64ZhZaBVbU2sAikE .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-64ZhZaBVbU2sAikE g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-64ZhZaBVbU2sAikE g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-64ZhZaBVbU2sAikE g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-64ZhZaBVbU2sAikE .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-64ZhZaBVbU2sAikE .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-64ZhZaBVbU2sAikE .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-64ZhZaBVbU2sAikE .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-64ZhZaBVbU2sAikE .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-64ZhZaBVbU2sAikE .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-64ZhZaBVbU2sAikE .edgeLabel text{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-64ZhZaBVbU2sAikE .node circle.state-start{fill:black;stroke:black}#mermaid-svg-64ZhZaBVbU2sAikE .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-64ZhZaBVbU2sAikE #statediagram-barbEnd{fill:#9370db}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-state .divider{stroke:#9370db}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-64ZhZaBVbU2sAikE .note-edge{stroke-dasharray:5}#mermaid-svg-64ZhZaBVbU2sAikE .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-64ZhZaBVbU2sAikE .error-icon{fill:#522}#mermaid-svg-64ZhZaBVbU2sAikE .error-text{fill:#522;stroke:#522}#mermaid-svg-64ZhZaBVbU2sAikE .edge-thickness-normal{stroke-width:2px}#mermaid-svg-64ZhZaBVbU2sAikE .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-64ZhZaBVbU2sAikE .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-64ZhZaBVbU2sAikE .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-64ZhZaBVbU2sAikE .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-64ZhZaBVbU2sAikE .marker{fill:#333}#mermaid-svg-64ZhZaBVbU2sAikE .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-64ZhZaBVbU2sAikE {color: rgba(0, 0, 0, 0.75);font: ;}

β
AEbC
(DBac)EbC
((ε)Bac)EbC
(εBac)EbC
(Bac)EbC
εEbC
(Bac)EbC
(E)bC
(Bac)EbC
(ε)bC
(Bac)EbC
bC
((ea)ac)EbC
((bd)ac)EbC
b
(eac)EbC
(bac)EbC
b
eEbC
bEbC
b
e
b
e,b

即:

FIRST(β)
=FIRST(AEbC)
=FIRST(FIRST(A)EbC)
=FIRST(FIRST(DBac)EbC)
=FIRST(FIRST(FIRST(D)Bac)EbC)
=FIRST(FIRST(εBac)EbC)        (ε表示空,如果不是空,就结束了,但是空还要计算ε后面的Bac)
=FIRST(FIRST(εBac)EbC)+FIRST(FIRST(Bac)EbC)
=FIRST(εEbC)+FIRST(FIRST(Bac)EbC)
=FIRST(FIRST(E)bC)+FIRST(FIRST(Bac)EbC)
={εbC}+FIRST(FIRST(Bac)EbC)
={bC}+FIRST(FIRST(FIRST(ea)ac)EbC)+FIRST(FIRST(FIRST(bd)ac)EbC)        (由于B有两个推导式,所以分开来写并求并集,‘+’代表‘并’)
={b}+FIRST(FIRST(eac)EbC)+FIRST(FIRST(bac)EbC)
={b}+FIRST(eEbC)+FIRST(bEbC)
={b}+{e}+{b}
={e,b}

为了普遍性,我把β搞的复杂了点,多看几遍,你就会了。如果不会,在下面留言。我可是看了两天才看懂的。

LR(1)项目集族的构造:如何确定前向搜索符(新版)相关推荐

  1. LR(1)项目集族的构造:如何确定前向搜索符(旧版)

    已经按照markdown格式重新改写和发布,链接 https://blog.csdn.net/hhhhhhhhhhkkkkkkkkkk/article/details/85680859 按照这个标题搜 ...

  2. 编译原理学习笔记(二十六)~习题:构造基于LR(0)、LR(1)项目的识别活前缀的DFA

    题目 文法: S–>Aa | bAc | dc | bda A–>d 通过构造基于LR(0).LR(1)项目的识别活前缀的DFA,判断上面文法 是否是SLR(1)文法?? 是否是LALR( ...

  3. 编译原理中LR(0)项目集规范族的构造

    本文转载自:  http://www.cnblogs.com/lazycoding/archive/2012/05/12/2497065.html 此文略长.我也没想到这写起来这么多,但对构造过程绝对 ...

  4. LR(0)项目集规范族的构造及LR(0)分析表的构造

    求出文法的所有项目,按一定规则构造识别活前缀的NFA, 再确定化为DFA确定化的工作量较大,而且容易出错,实际应用中并不使用,这里介绍的目的仅仅是为了便于理解.具体见识别活前缀的有限自动机构建方法_用 ...

  5. 编译原理LR(0)项目集规范族的构造详解

    学编译原理的时候,感觉什么LL(1).LR(0).SLR(1).LALR(1)思想满天飞. 而且做题的时候,一不留意,一道题就写了三页纸了. 就拿今天这个玩意儿来讲,我真的是考试前花了最多的时间,搞懂 ...

  6. LR(0)项目集规范族和分析表的构造

    1. LR分析 LR分析是干什么用的?简单来说就是你在编程时编译器用来判断你输入的符号串是否合法以及时哪一种类型.官方的说法时LR分析是一种能根据当前分析栈中的符号串和向右顺序查看输入串的k个符号就能 ...

  7. 编译原理LR(0)项目集规范族的构造和分析的构造

    学编译原理的时候,感觉什么LL(1).LR(0).SLR(1).LALR(1)思想满天飞. 而且做题的时候,一不留意,一道题就写了三页纸了. 就拿今天这个玩意儿来讲,我真的是考试前花了最多的时间,搞懂 ...

  8. C++实现LR(1)分析表的构造

    构造LR(1)分析表的算法参考了龙书本科教学版: 龙书给的例子:(1)S′→S(2)S→CC(3)C→cC∣d\begin{aligned} &(1) S' \rightarrow S \\ ...

  9. 基于大数据的软件项目知识图谱构造及问答方法

    摘要:随着软件规模的不断扩大.软件演化周期的不断延长,构建软件项目知识图谱对软件维护.软件开发的意义越来越重大.如何基于软件项目开发过程中产生的源代码.邮件列表.缺陷报告等多源异构大数据,快速构建语义 ...

最新文章

  1. 在ATS 5.3.0上测试域名统计插件channel_stats
  2. char *a 和char a[] 的区别(指针和数组的区别)
  3. UiBot带你两分钟看懂RPA是什么
  4. Qt学习笔记之QMainWindow,QWidget,QDialog
  5. vb.net 同时给多个属性赋值_Python尚学堂高淇|1721时间表示unix时间点毫秒微秒time模块浮点数自动转换强制转换增强赋值运算符...
  6. 00后确实卷,公司新来的卷王,我们这帮老油条真干不过.....
  7. 35-46集 中心极限定理、置信区间
  8. 【转载】某牛逼的文章《曝光一下我开发的游戏项目的日报周报 》
  9. 第n小的质数(信息学奥赛一本通-T1099)
  10. 毕业一年后我转行NLP 这几点宝贵经验分享给大家
  11. 【第四组】用例文档+功能说明书+技术说明书:查看导入的图片,工作序号:001,2017/7/11...
  12. PreferenceActivity(首选项设置页)
  13. Scrum和TFS2010
  14. outlook邮件中样式错乱问题
  15. 爱吃喵粮的小招喵(查找,动态规划)
  16. 笔记类app之Leanote同步机制 韩俊强的博客
  17. 沈剑老师的MySQL军规
  18. 咸鱼Micropython—SPI
  19. java基础-1 基础知识
  20. python安装与pip安装

热门文章

  1. js 自动关闭html页面,JS关闭窗口与JS关闭页面的几种方法小结
  2. 波、波长以及频率的关系
  3. 王小川妄图再次搅黄虎狗合体,张朝阳还能忍他多久?
  4. U盘被写保护的处理办法
  5. 2023美赛赛题思路分析
  6. 一年的总结(09-10)
  7. 第四讲项目2-1输出长方形周长和面积
  8. W ndows关机,尽管针对微软Wndows操作系统的口诛笔伐一直没有停止过.doc
  9. Chrome 开小号方法
  10. 思科服务器连接无线打印机,经典解决方案 : 路由器直接连接打印机USB接口实现网络打印。...