#include <stdio.h>
#include <string.h>

int main() {
    char line[100];
    char lhs[20], op1[20], op2[20];
    char op;

    printf("Enter statements (end with #):\\n");

    while (1) {
        fgets(line, sizeof(line), stdin);

        if (line[0] == '#') break;

        // Declaration
        if (strncmp(line, "int", 3) == 0) {
            sscanf(line, "int %[^;];", lhs); \\\\extract value from string
            printf("%s DW ?\\n", lhs);
        }

        // Assignment with operator
        else if (sscanf(line, "%[^=]=%[^+-*/]%c%[^;];", lhs, op1, &op, op2) == 4) {

            printf("MOV AX, %s\\n", op1);

            if (op == '+') printf("ADD AX, %s\\n", op2);
            else if (op == '-') printf("SUB AX, %s\\n", op2);
            else if (op == '*') printf("MUL %s\\n", op2);
            else if (op == '/') printf("DIV %s\\n", op2);

            printf("MOV %s, AX\\n", lhs);
        }

        // Simple assignment
        else if (sscanf(line, "%[^=]=%[^;];", lhs, op1) == 2) {
            printf("MOV %s, %s\\n", lhs, op1);
        }

        // printf
        else if (strncmp(line, "printf", 6) == 0) {
            sscanf(line, "printf(\\"%*[^,],%[^)]);", lhs);
            printf("PRINT %s\\n", lhs);
        }

        // return
        else if (strncmp(line, "return", 6) == 0) {
            printf("RET\\n");
        }
    }

    return 0;
}