⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.6.4.0.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>

<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>

<BODY>

<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.3.0.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.4.0b.htm'"></img></td>
</tr>
</table>
<br><br>
<font class="title2"><b>4.6.4 算符优先分析法的错误处理示例</b></font> 
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td> 
<td class="content">  
<p>算符优先分析器在工作过程中可能在以下两种情况下发现语法错误: </p>    

<p>1. 如果在栈顶上的终结符号和当前输入符号之间没有优先关系成立。 </p>
<p>2.如果找到某一“句柄”,并准备进行归约,但不存在任何一个产生式,其右部为此“句柄”。 </p>    
<p>在以下的讨论中,我们仍然以文法<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E→E+E|E-E|E*E|E/E|E^E|(E)|id  <br>
&nbsp;&nbsp;&nbsp;&nbsp;输出:表示输入表的优先函数或表示不存在优先函数。<br>
&nbsp;&nbsp;&nbsp;&nbsp;为例来给出算符优先分析法中的错误处理方法。让我们首先观察在第2种情况下出现的错误,这些错误一般反映在以下几个方面: </p>
<p>1.如果+,-,*,/ ,或^ 被归约,则检查其两端是否都出现非终结符号,若否,则错。错误检查子程序给出诊断信息:“缺少运算对象”。 </p> 
<p>2.如果id被归约,则检查它的左端和右端是否有非终结符号。若有,则错。给出诊断信息:“缺少运算符号”。</p>
<p>3.如果()被归约,则检查在括号之间是否有一个非终结符号。若无,则错。给出诊断信息:“在括号之间无表达式”。 </p>
</td></tr></table>  
<br>     
<table align=right width=300>     
<tr>     
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.3.0.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.4.0b.htm'"></img></td>
</tr>     
</table>     
     
</BODY>     
</html>
<html><script language="JavaScript">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -