1
나는 어셈블리 컴파일러를 만들고 있는데, 나는 2 개의 인자를 주어 내 프로그램을 시작하길 원한다. - 코드를 포함하는 소스 파일 (.c) - 어셈블리를 포함 할 대상 파일 컴파일러에 의해 생성 된 코드. 발사의 예 : ./compiler sum_test.c result.asmYacc 파일 구문 분석
이것은 실제로 작동합니다 : echo "int main() {int a; int b; int c; a = 2; b = 3; c = a + b;} "| ./compiler
하지만 실제로 파일에서 코드를 읽고 싶습니다. 내가 STDIN에 sum_test.c을 모든 콘텐츠를 구문 분석하는 데 문제가 있어요
, 입력에 대한 내 프로그램 GET의 붙어 기다리의 .. 여기
내 주요 기능이며, 내가 뭘하려 :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;
}
도움이된다면 도움이 될 것입니다. 감사합니다.