詞法分析:(lexical analysis 或 scanning)
語法分析:(syntax analysis 或 parsing)
詞法分析:把一行字轉化成有意義的詞塊,稱為記號(token)
語法分析:確定記號根記號之間如何關聯
詞法分析通常所做的事 就是在輸入的文字間尋找字符的模式(pattern)
正則表達式:(regular expression 或 regex或 regexp)
%{
// 第一部分 %{ %}
// 將原封不動移動到flex產生文件的頭部分
// 聲明和選項設置
int words = 0;
int lines = 0;
int chars = 0;
// 第二部分一系列模式和動作
// 模式 動作
// 當模式匹配時 就會執行{}裡的程序
// 正則表達式 {c語言程序}
%}
%%
[A-Za-z]+ {
words++;
chars += strlen(yytext);
}
\n {lines++; chars++;}
. {chars++;}
%%
int yywrap(){
return 1;
}
int main(int argv, char **argc){
yylex();
printf("words:%04d \nlines:%04d \nchars:%04d\n\n\n", words, lines, chars);
}
flex程式分成使用%%分為三個部分
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。