void parse_Term_dash() { printf("Enter Term_dash\n"); if (nextToken == T_MULTI) { nextToken = getToken(); parse_Factor(); /* ここで * の処理 */ parse_Term_dash(); } else if (nextToken == T_DIVIDE) { nextToken = getToken(); parse_Factor(); /* ここで / の処理 */ parse_Term_dash(); } else { } }
void parse_Term_dash() { /* T' → *FT'|ε */ if (nextToken == T_MULTI) { nextToken = getToken(); parse_Factor(); /* T_MULTI のコード生成はじまり */ printf("POP B\n"); printf("POP A\n"); printf("MULTI\n"); printf("PUSH C\n"); /* T_MULTI のコード生成おわり */ parse_Term_dash(); } }
void parse_Term() { /* T → FT' */ parse_Factor(); parse_Term_dash(); }
void parse_Term() { printf("Enter Term\n"); parse_Factor(); parse_Term_dash(); }