91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 105KB
    文件類型:
    金幣: 1
    下載: 0 次
    發布日期: 2021-07-07
  • 語言: 其他
  • 標簽:

資源簡介

設計思想 (1)程序主體結構部分: 說明部分 %% 規則部分 %% 輔助程序部分 (2)主體結構的說明 在這里說明部分告訴我們使用的LETTER,DIGIT, IDENT(標識符,通常定義為字母開頭的字母數字串)和STR(字符串常量,通常定義為雙引號括起來的一串字符)是什么意思.這部分也可以包含一些初始化代碼.例如用#include來使用標準的頭文件和前向說明(forward ,references).這些代碼應該再標記"%{"和"%}"之間;規則部分&gt;可以包括任何你想用來分析的代碼;我們這里包括了忽略所有注釋中字符的功能,傳送ID名稱和字符串常量內容到主調函數和main函數的功能. (3)實現原理 程序中先判斷這個句語句中每個單元為關鍵字、常數、運算符、界符,對與不同的單詞符號給出不同編碼形式的編碼,用以區分之。 PL/0語言的EBNF表示 ::==; ::=={|}; ::=+|- ::=*|/ ::==|#|<||>= ::=a|b|…|X|Y|Z ::=0|1|2|…|8|9 三:設計過程 1. 關鍵字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf 并為小寫。 2."+”;”-”;”*”;”/”;”:=“;”:”;”<“;”“;”>=“;”“;”=“;”(“;”)”;”;”;”#”為運算符。 3. 其他標記 如字符串,表示以字母開頭的標識符。 4. 空格符跳過。 5. 各符號對應種別碼 關鍵字分別對應1-13 運算符分別對應401-418,501-513。 字符串對應100 常量對應200 結束符# 四:舉例說明 目標:實現對常量的判別 代碼: digit [0-9] letter [A-Za-z] other_char [!-@\[-~] id ({letter}|[_])({letter}|{digit}|[_])* string {({letter}|{digit}|{other_char})+} int_num {digit}+ %% [ |\t|\n]+ "auto"|"double"|"int"|"struct"|"break"|"else"|"long"|"switch"|"case"|"enum"|"register"|"typedef"|"char"|"extern"|"return"|"union"|"const"|"float"|"short"|"unsigned"|"continue"|"for"|"signed"|"void"|"default"|"goto"|"sizeof"|"do"|"if"|"static"|"while"|"main" {Upper(yytext,yyleng);printf("%s,NULL\n",yytext);} \"([!-~])*\" {printf("CONST_string,%s\n",yytext);} -?{int_num}[.]{int_num}?([E][+|-]?{int_num})? {printf("CONST_real,%s\n",yytext);} "0x"?{int_num} {printf("CONST_int,%s\n",yytext);} ","|";"|"("|")"|"{"|"}"|"["|"]"|"->"|"."|"!"|"~"|"++"|"--"|"*"|"&"|"sizeof"|"/"|"%"|"+"|"-"|">"|"="|">="|"<<="|"&="|"^="|"|="|"=" {printf("%s,NULL\n",yytext);} {id} {printf("ID,%s\n",yytext);} {digit}({letter})+ {printf("error1:%s\n",yytext);} %% #include Upper(char *s,int l) { int i; for(i=0;i<l;i++) { s[i]=toupper(s[i])

資源截圖

代碼片段和文件信息

評論

共有 條評論

相關資源