Example #1
0
void parse_Expression_dash() {
  printf("Enter Expression_dash\n");
  if (nextToken == T_PLUS) {
    nextToken = getToken();
    parse_Term();
    /* ここで + の処理 */
    parse_Expression_dash();
  } else if (nextToken == T_MINUS) {
    nextToken = getToken();
    parse_Term();
    /* ここで - の処理 */
    parse_Expression_dash();
  } else {
  }
}
Example #2
0
void parse_Expression() {
  printf("Enter Expressions\n");
  if (nextToken == T_PLUS) {
    nextToken = getToken();
    parse_Term();
    /* ここで 0 Term + をスタックにつむ */
    parse_Expression_dash();
  } else if (nextToken == T_MINUS) {
    nextToken = getToken();
    parse_Term();
    /* ここで 0 Term - をスタックにつむ */
    parse_Expression_dash();
  } else {
    parse_Term();
    parse_Expression_dash();
  }
}
Example #3
0
void parse_Expression_dash() { /* E' → +TE'|ε */
  if (nextToken == T_PLUS) {
    nextToken = getToken();
    parse_Term();
    /* T_PLUS のコード生成はじまり */
    printf("POP B\n");
    printf("POP A\n");
    printf("PLUS\n");
    printf("PUSH C\n");
    /* T_PLUS のコード生成おわり */
    parse_Expression_dash();
  }
}
Example #4
0
void parse_Expression() { /* E → TE' */
  parse_Term();
  parse_Expression_dash();
}