當前位置:編程學習大全網 - 網站源碼 - lex是什麽意思

lex是什麽意思

Lex是Lexical Analyzer Generator(取前三個字母)的縮寫,是Unix環境下非常著名的工具。

Lex是Lexical Analyzer Generator(取前三個字母)的縮寫,是Unix環境下非常著名的工具,主要功能是生成壹個詞法分析器(scanner)的C源碼,描述規則采用正則表達式(regular expression)。

描述詞法分析器的文件,經過lex編譯後,生成壹個lex.yy.c的文件,然後由C編譯器編譯生成壹個詞法分析器。詞法分析器,簡單來說,其任務就是將輸入的各種符號,轉化成相應的標識符(token),轉化後的標識符很容易被後續階段處理。

Lex將用戶輸入的表達式和動作actions轉換為宿主語言;生成的程序叫做yylex。yylex識別字符流中的表達式,並且當每壹個表達式被檢測出來後,輸出相應的動作。

警告和缺陷:

有壹些病態的表達式會使由表格轉化的確定的自動機成指數增長;幸運的是,這樣的情況很少見。

REJECT沒有重復掃描輸入;而是記住先前掃描的結果。這意味著如果壹條規則需要回退發現的上下文,並且REJECT被執行了,用戶將不能使用unput來改變輸入流中的後續字符。這是對用戶操作後續輸入的唯壹限制。

  • 上一篇:平安保險公司出險後誘導車主到黑修理廠(漢中豐合)汽修廠,報天價配件,後又以舊翻新充新騙司機咋辦
  • 下一篇:c# 菜鳥問題 如何用C#寫壹個壹啟動就是全屏的窗口。源代碼?
  • copyright 2024編程學習大全網