欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Lex 編譯器入門

系統 2967 0
Lex工具
-------
Lex工具是一種詞法分析程序生成器,它可以根據詞法規則說明書的要求來生成單詞識別程序,由該程序識別出輸入文本中的各個單詞。
1 、lex程序的結構

-定義部分
-規則部分
-用戶子程序部分

其中規則部分是必須的,定義和用戶子程序部分是任選的。

(
1 )?定義部分
定義部分起始于
" %{ " 符號,終止于 " %} " 符號,其間可以是包括include語句、聲明語句在內的C語句。
%{
#include?
" stdio.h "
#include?
" y.tab.h "
extern?int?lineno
;
%}

(
2 )?規則部分
規則部分起始于
" %% " 符號,終止于 " %% " 符號,其間則是詞法規則。詞法規則由模式和動作兩部分組成。模式部分可以由任意的正則表達式組成,動作部分是由C語言語句組成,這些語句用來對所匹配的模式進行相應處理。需要注意的是,lex將識別出來的單詞存放在yytext? [] 字符數據中,因此該數組的內容就代表了所識別出來的單詞的內容。

%%
[ ] ?{ ; }
[ 0-9 ] +.? [ 0-9 ] *. [ 0-9 ] +
{?sscanf(yytext
, " %1f " , ?&yylval.val) ;
return?NUMBER ; ?}
?{?lineno++ ; return?'' '';?}
.?{?return?yytex+ [ 0 ] ; ?}
%%

(
3 )?用戶子程序部分
用戶子程序部分可以包含用C語言編寫的子程序,而這些子程序可以用在前面的動作中,這樣就可以達到簡化編程的目的。下面是帶有用戶子程序的lex程序片段。
" /* " ?skipcmnts() ;
.?/*?rest?of?rules?*/
%%
skipcmnts()
{
for?(?
; ?;?)
{
while?(input()!
= ''*'') ;
if(input()! = ''/'')
unput(yytext
[ yylen-1 ] ) ;
else?return ;
}?

?以上是這個工具的簡要說明。

我在這里以《編譯原理》(龍書)的習題為例,
3.11 編寫一個Lex程式,該程式復制一個文件,并將每一個非空的空白符序列用一個空格代替。
首先,這個“非空的空白符序列”是指由空格和制表符號組成的序列,其正則表達式是[ \t],大家注意在前面有一個空格。
再則就是做一個替換操作了。

代碼為:

%{
#include?
" stdio.h "
%}

delim????
[ ? ]
ws????{delim}+

%%
{ws}?printf(
" ? " ) ;
.?printf( " %c " , yytext [ 0 ] ) ;
%%

存為? P3-11.l
編譯過程
lex P3-11.l
cc -c lex.yy.c
cc lex.yy.o -ll -o run

使用過程
run < in.txt
輸入文件內容

I?am?????a?best?player???in?the???world ,
And?????????I??am?very????sorry?????to?trouble?you.

Hehe.


輸出結果為

I?am?a?best?player?in?the?world ,
And?I?am?very?sorry?to?trouble?you.

Hehe.


最后我提供一個腳本,方便編譯。
我的系統環境是
Ubuntu 7.10
flex 2.5.33

安裝Lex過程
sudo apt-get install flex

# ?Copyright?(C)?2003-2008?Wang?Pengcheng?<wpc0000@gmail.com>
#!/usr/bash

lex?$ 1 ?
cc?
- c?lex . yy . c
cc?lex
. yy . o? - ll? - o?run
rm?lex
. yy .*
rm?
*~

?

Lex 編譯器入門


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久在线 | 久久一区精品 | 玖草在线播放 | 日本亚洲天堂网 | 99久久99九九99九九九 | 国产不卡在线蜜 | 精品久久久久久久人人人人传媒 | 狠狠色婷婷丁香六月 | 日韩亚洲欧美中文高清在线 | 日韩精品网址 | 91精品久久久久久久久久久 | 久久综合九色综合欧美9v777 | 日韩精品久久一区二区三区 | a级黄色片视频 | 另类在线视频 | 高清激情小视频在线观看 | 最新中文字幕在线 | 欧美激情视频网站 | 在线a视频| 激情深爱| 山岸逢花在线观看无删减 | 久久精品久久久久久 | 亚洲 日本 欧美 中文幕 | 污网站在线免费看 | 精品国产一区二区三区久久久 | 国产精品综合亚洲AV久久久小说 | 亚洲精品免费在线 | 欧洲成人免费视频 | 99精品国产高清在线观看 | 国产人妻人伦精品潘金莲 | 日韩免费一区二区 | 欧美日韩一区二区三区免费视频 | 国产午夜精品福利视频 | 色一欲一性一乱一区二区三区 | 草草影院地址ccyycom浮力影院37 日日干干夜夜 | 久在线观看视频 | 狠狠色依依成人婷婷九月 | 日本一区二区三区四区在线观看 | 色性综合| 国产成人18黄网站免费 | 91tv在线观看 |