『コンパイラ・スクリ ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
768:760 03/07/11 02:17 以下プログラムです lex %% "+" return(ADDOP); "-" return(SUBOP); "*" return(MULOP); "/" return(DVIOP); "(" return(LPAR); ")" return(RPAR); "=" return(ASSIGN); ";" return(SEMI); "{" return(LLPAR); "}" return(RRPAR); "<" return(LLLPAR); ">" return(RRRPAR); "<=" return(REB); ">=" return(LEB); "==" return(EQ); "!=" return(NEQ); "if" return(IF); "put" return(PUT); "get" return(GET); "else" return(ELSE); "while" return(WHILE); "'" return(AP); "," return(CM); [0-9]+ {sscanf(yytext,"%d",&yylval);return(NUMBER);} [a-z] {yylval=yytext[0]-97;return(ALPHABET);} [ \t\n]+ ; . {yylval=yytext[0];return(CHARACTER);} %% 769:760 03/07/11 02:24 yacc-1 program :var_lists{kansu("INT",0,0);} lists {table[0].q=hyo[number-1].add+hyo[number-1].size; kansu("HL",0,0);for(i=0;i<codenum;i++){printf("%s %d%d\n",table[i].op,table[i].p,table[i].q);}} ; var_lists :INT arrays SEMI |var_lists KONMA INT arrays SEMI ; arrays :var_decl{A=touroku(string);} |arrays KONMA var_decl{A=touroku(string);} ; var_decl:VARIABLE|VARIABLE KAKKO5 NUMBER KAKKO6; var1 :/*empty*/{hyo[A].size=1;} |KAKKO5 NUMBER KAKKO6{hyo[A].size=$2;} ; lists :lists list |list ; list :VARIABLE{kansu("LA",0,sansyo(string));} var2 ASSIGN expression SEMI{kansu("ST",0,0);} |KAKKO3 lists KAKKO4 |if_prefix list{table[$1].q=codenum;} |if_prefix list ELSE{$$=codenum;kansu("J",0,0); table[$1].q=codenum;} list{table[$4].q=codenum;} |WHILE{$$=codenum;} KAKKO1 condition KAKKO2{$$=codenum;kansu("FJ",0,0);} list{kansu("J",0,$2); table[$6].q=codenum;}
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4998日前に更新/200 KB
担当:undef