私はアセンブリコンパイラにacを作成していますが、プログラムを開始するために2つの引数を指定します。-コードを含むソースファイル(.c)-コンパイラによって生成されたアセンブリコードを含む宛先ファイル。起動の例:./compiler sum_test.c result.asm
これは実際に機能します:echo "int main(){int a; int b; int c; a = 2; b = 3; c = a + b;}" | 。/コンパイラ
しかし、私は本当にファイルからコードを読みたいです。
sum_test.cからSTDINへのすべてのコンテンツの解析に問題があります。プログラムがスタックし、入力を待ちます。
これが私の主な機能と私が試したことです:
int main(int argc, char** argv)
{
extern FILE * yyin;
yyin = fopen( argv[1], "r");
yyin = stdin;
labelVrai = labelFaux = labelFin = labelDebut = labelSuite = labelWhileDebut = labelWhileFin = n_labels = labelN_else = 0;
dico_global = dictionnaire_create();
dico_local = creer_piledico();
if ( yyparse() != 0 )
{ fprintf(stderr,"Syntaxe incorrecte\n"); return 1; }
dictionnaire_destroy(dico_global);
destroy_piledico(dico_local);
return 0;
}
あなたが私を助けることができればそれは素晴らしいでしょう、ありがとう。