<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/62782f14d7996104df5a7560/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/62782f14d7996104df5a7560/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">词法分析器的设计</div><div class="t m0 x2 h4 y3 ff1 fs1 fc0 sc0 ls0 ws0">一、实验目的</div><div class="t m0 x3 h5 y4 ff1 fs2 fc0 sc1 ls0 ws0">设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。</div><div class="t m0 x2 h4 y5 ff1 fs1 fc0 sc0 ls0 ws0">二、实验要求</div><div class="t m0 x2 h5 y6 ff2 fs2 fc0 sc1 ls0 ws0">2.1 <span class="ff1">待分析的简单的词法</span></div><div class="t m0 x4 h5 y7 ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff2">1</span>)注<span class="ff2"> </span>释:<span class="ff2"> </span>以“<span class="ff2">//<span class="ff3">”</span></span>开头到该行尾部为注释</div><div class="t m0 x4 h5 y8 ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff2">2</span>)关键字:(共<span class="_ _0"> </span><span class="ff2">6<span class="_ _0"> </span></span>个):<span class="ff2">int real if then else while<span class="ff4"> </span></span></div><div class="t m0 x4 h5 y9 ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff2">3</span>)标识符:<span class="ff2"> </span>以字母开头,后跟字母或数字的符号串,最长为<span class="_ _0"> </span><span class="ff2">64<span class="_ _0"> </span></span>个字符。(注意:关</div><div class="t m0 x5 h5 ya ff1 fs2 fc0 sc1 ls0 ws0">键字不是标识符)<span class="ff2"> </span></div><div class="t m0 x4 h5 yb ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff2">4</span>)操作符:(共<span class="_ _0"> </span><span class="ff2">11<span class="_ _0"> </span></span>个):<span class="ff2"> + - / * = == < <= > >= != </span></div><div class="t m0 x4 h5 yc ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff3">5</span>)分隔符:(共<span class="_ _0"> </span><span class="ff2">5<span class="_ _0"> </span></span>个):<span class="ff2"> ( ) { } ; </span></div><div class="t m0 x4 h5 yd ff1 fs2 fc0 sc1 ls0 ws0">(<span class="ff2">6</span>)数字(用正规式描述):</div><div class="t m0 x6 h5 ye ff2 fs2 fc0 sc1 ls0 ws0">digit <span class="ff5"></span> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <span class="ff1">整数</span> <span class="ff5"></span> digit</div><div class="t m0 x7 h6 yf ff2 fs3 fc0 sc1 ls0 ws0">+</div><div class="t m0 x8 h5 ye ff2 fs2 fc0 sc1 ls0 ws0"> (<span class="ff1">最大整数为<span class="_ _0"> </span></span>2</div><div class="t m0 x9 h6 yf ff2 fs3 fc0 sc1 ls0 ws0">31</div><div class="t m0 xa h7 ye ff2 fs2 fc0 sc1 ls0 ws0">)</div><div class="t m0 x6 h7 y10 ff2 fs2 fc0 sc1 ls0 ws0">exponent <span class="ff5"></span> E ( + | - | <span class="ff5"></span> ) digit</div><div class="t m0 xb h6 y11 ff2 fs3 fc0 sc1 ls0 ws0">+</div><div class="t m0 xc h5 y10 ff2 fs2 fc0 sc1 ls0 ws0"> (<span class="ff1">最大指数为<span class="_ _0"> </span></span>128)</div><div class="t m0 xd h7 y12 ff2 fs2 fc0 sc1 ls0 ws0">fraction <span class="ff5"></span> . digit</div><div class="t m0 xe h6 y13 ff2 fs3 fc0 sc1 ls0 ws0">+</div><div class="t m0 xf h5 y12 ff2 fs2 fc0 sc1 ls0 ws0"> <span class="ff1">实数</span> <span class="ff5"></span> digit</div><div class="t m0 x10 h6 y13 ff2 fs3 fc0 sc1 ls0 ws0">+</div><div class="t m0 x11 h7 y12 ff2 fs2 fc0 sc1 ls0 ws0"> exponent | digit</div><div class="t m0 x12 h6 y13 ff2 fs3 fc0 sc1 ls0 ws0">+</div><div class="t m0 x7 h7 y12 ff2 fs2 fc0 sc1 ls0 ws0"> fraction ( exponent | <span class="ff5"></span> )</div><div class="t m0 x2 h5 y14 ff2 fs2 fc0 sc1 ls0 ws0">2.2 <span class="ff1">各种单词符号对应的种别码:</span></div><div class="t m0 x13 h8 y15 ff1 fs4 fc0 sc1 ls0 ws0">单词符号<span class="_ _1"> </span>种别码<span class="ff2"> syn<span class="_ _2"> </span></span>单词符号<span class="_ _3"> </span>种别码</div><div class="t m0 x14 h9 y16 ff2 fs4 fc0 sc1 ls0 ws0">int<span class="_ _4"> </span>1<span class="_ _4"> </span>=<span class="_ _5"> </span>14</div><div class="t m0 x6 h9 y17 ff6 fs5 fc0 sc1 ls0 ws0">real<span class="ff2 fs4"> </span></div><div class="t m0 x15 h9 y18 ff2 fs4 fc0 sc1 ls0 ws0">2<span class="_ _6"> </span>==<span class="_ _7"> </span>15</div><div class="t m0 x16 h9 y19 ff2 fs4 fc0 sc1 ls0 ws0">If <span class="_ _8"> </span>3<span class="_ _4"> </span><<span class="_ _5"> </span>16</div><div class="t m0 xd h9 y1a ff2 fs4 fc0 sc1 ls0 ws0">then <span class="_ _9"> </span>4<span class="_ _6"> </span><=<span class="_ _7"> </span>17</div><div class="t m0 x17 h9 y1b ff2 fs4 fc0 sc1 ls0 ws0">else <span class="_ _a"> </span>5<span class="_ _4"> </span>><span class="_ _5"> </span>18</div><div class="t m0 x6 h9 y1c ff2 fs4 fc0 sc1 ls0 ws0">while <span class="_ _b"> </span>6<span class="_ _6"> </span>>=<span class="_ _7"> </span>19</div><div class="t m0 xd h9 y1d ff2 fs4 fc0 sc1 ls0 ws0">digit <span class="_ _c"> </span>7<span class="_ _d"> </span>{<span class="_ _e"> </span>20</div><div class="t m0 x18 h9 y1e ff2 fs4 fc0 sc1 ls0 ws0">fraction<span class="ff6 fs5"> <span class="_ _f"> </span></span>8<span class="_ _d"> </span>}<span class="_ _e"> </span>21</div><div class="t m0 x19 h9 y1f ff6 fs5 fc0 sc1 ls0 ws0">exponent<span class="ff2 fs4"> </span></div><div class="t m0 x15 h9 y20 ff2 fs4 fc0 sc1 ls0 ws0">9<span class="_ _e"> </span>(<span class="_ _10"> </span>22</div><div class="t m0 x1a h8 y21 ff2 fs4 fc0 sc1 ls0 ws0">lettet<span class="ff1">(</span>letter|digit<span class="ff1">)</span>*</div><div class="t m0 x1b h9 y22 ff2 fs4 fc0 sc1 ls0 ws0">10<span class="_ _11"> </span>)<span class="_ _10"> </span>23</div><div class="t m0 x1c h9 y23 ff2 fs4 fc0 sc1 ls0 ws0">-<span class="_ _e"> </span>11<span class="_ _12"> </span>;<span class="_ _13"> </span>24</div><div class="t m0 x1d h9 y24 ff2 fs4 fc0 sc1 ls0 ws0">*<span class="_ _d"> </span>12<span class="_ _11"> </span>!<span class="_ _10"> </span>25</div><div class="t m0 x1c h9 y25 ff2 fs4 fc0 sc1 ls0 ws0">/<span class="_ _14"> </span>13<span class="_ _15"> </span> !=<span class="_ _16"> </span>26</div><div class="t m0 x16 h9 y26 ff2 fs4 fc0 sc1 ls0 ws0">+<span class="_ _4"> </span>27<span class="_ _15"> </span> #<span class="_ _17"> </span>0</div><div class="t m0 x2 h5 y27 ff2 fs2 fc0 sc1 ls0 ws0">2.3 <span class="ff1">词法分析程序的功能:</span></div><div class="t m0 x1e h5 y28 ff1 fs2 fc0 sc1 ls0 ws0">输入:所给文法的源程序字符串。</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>