溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flex常用規(guī)范有哪些

發(fā)布時間:2021-11-16 16:47:40 來源:億速云 閱讀:126 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Flex常用規(guī)范有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Flex常用規(guī)范有哪些”吧!

flex定義段 常用option選項    

    noyywrap          yylex等分析函數(shù)結(jié)束后不再調(diào)用yywrap()函數(shù)。

    nodefault         關(guān)閉一些默認行為,比如不能匹配的輸入則回射到標準輸出

    warn              開啟所有警告

    case-insensitive  整個過程中匹配輸入大小寫不敏感,但是yytext還是原本輸入匹配的內(nèi)容

    yylineno          自動的在yylineno變量中維護當前解析的行數(shù)總值,如果是解析的多個文件,可以在開打文件后重置它

flex規(guī)則段 常用正則表達    

. 匹配任意字符,除了 \n。

- 用來指定范圍。例如:A-Z 指從A 到 Z 之間的所有字符。

[ ] 一個字符集合。匹配括號內(nèi)的 任意字符。如果第一個字符是 ^ 那么它表示否定模式。例如: [abC] 匹配 a, b, 和 C中的任何一個。 

* 匹配 0個或者多個上述的模式。 

+ 匹配 1個或者多個上述模式。 

? 匹配 0個或1個上述模式。 

$ 作為模式的最后一個字符匹配一行的結(jié)尾。

{ } 指出一個模式可能出現(xiàn)的次數(shù)。 例如: A{1,3} 表示 A 可能出現(xiàn)1次或3次。

\ 用來轉(zhuǎn)義元字符。同樣用來覆蓋字符在此表中定義的特殊意義,只取字符的本意。

^ 否定。

| 表達式間的邏輯或。

"<一些符號>" 字符的字面含義。元字符具有。

/ 向前匹配。如果在匹配的模版中的“/”后跟有后續(xù)表達式,只匹配模版中“/”前面的部分。如:如果輸入A01,那么在模版A0/1 中的 A0 是匹配的。

( ) 將一系列常規(guī)表達式分組。

常用的全局變量   

    FILE *yyin/*yyout    Lex中本身已定義的輸入和輸出文件指針。

                         這兩變量指明了flex生成的詞法分析器從哪里獲得輸入和輸出到哪里。默認指向標準輸入和標準輸出。

    char *yytext         指向當前是別的詞法單元的指針。

    int   yyleng         當前詞法單元的長度。

    yylineno             提供當前的行數(shù)信息

    ECHO                 lex中預定義的宏,相當于fprintf(yyout, "%s", yytext) , 即輸出當前匹配的詞法單元。

常用的全局函數(shù)   

    yylex()          這一函數(shù)開始分析,它由lex自動生成。

    yywrap()         這一函數(shù)在輸入或文件的末尾調(diào)用。返回0繼續(xù)掃描,-1結(jié)束掃描。

    yymore()         這一函數(shù)告訴lexer將下一個標記附加到當前標記后。

    yyless(int n)    返回當前匹配項除了開始的n個字符內(nèi)的所有的內(nèi)容到輸入緩沖區(qū),

                     解析器處理下一匹配時,他們將會被重新解析。

到此,相信大家對“Flex常用規(guī)范有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI