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

📄 4.2.2.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.2.1.1b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.2.2.0b.htm'"></img></td>
</tr>
</table>
<br><br>
<p>    
<font class="title2"><b>4.2.2 递归预测分析器的构造</b></font>   
 
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>      
<td class="content">      
<p>      
文法(4.1)的预测分析器,由图4.3中所示的一组递归过程组成,这组递归过程的执行,实现根据文法(4.1)对任一输入w进行预测分析。因此,这个分析器称为递归预测分析器。</p>     
<p> <br>
<font color=blue>PROCEDURE</font> match(t:token);<br>    
&nbsp; <font color=blue>BEGIN</font><br>     
&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>IF</font> lookahead=t<br>     
&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>THEN</font> lookahead:=nexttoken<br>     
&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>ELSE</font> error<br>     
&nbsp; <font color=blue>END</font>;<br><br>     
<font color=blue>PROCEDURE</font> type;<br>     
&nbsp; <font color=blue>BEGIN</font><br>     
&nbsp;&nbsp;&nbsp; <font color=blue>IF</font> lookahead in {integer, char, num} <font color=blue>THEN</font> &nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; simple&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE IF</font> lookahead=‘<img src="images/shy.gif">’
<font color="#0000FF"> 
THEN BEGIN</font><br>     
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(‘<img src="images/shy.gif">’);  
match(id);&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">END</font>&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE IF</font> lookahead=array <font color="#0000FF"> THEN BEGIN</font><br>     
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(array); match(‘[’); simple;<br>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(‘]’); 
match(of); type&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">END</font><br>    
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE</font> error<br>     
&nbsp; <font color="#0000FF">END</font>;<br><br>
<font color="#0000FF">
PROCEDURE</font> simple;<br>     
&nbsp; <font color="#0000FF">BEGIN</font><br>    
&nbsp;&nbsp;&nbsp; <font color="#0000FF">IF</font> lookahead=integer <font color="#0000FF">THEN</font>&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(integer)&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE</font> <font color="#0000FF">IF</font> lookahead=char 
<font color="#0000FF">THEN</font>&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(char)&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE IF</font> lookahead=num&nbsp; <font color="#0000FF"> THEN BEGIN</font>&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match(num);&nbsp; match(dotdot); match(num)&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; <font color="#0000FF">END</font><br>    
&nbsp;&nbsp;&nbsp; <font color="#0000FF">ELSE</font>&nbsp; error<br>     
&nbsp; <font color="#0000FF">END</font>;</p>
<p align="center">图4.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.2.1.1b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.2.2.0b.htm'"></img></td>
</tr>     
</table>     
     
</BODY>     
</html>

⌨️ 快捷键说明

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