#include "../../emit.h" #include #include void c99_emit_error(const char *str, i32 length, i32 line) { printf("Error at line: %d (%.*s)\n ", line, length, str); exit(1); } void c99_prolog() { } void c99_epilogue() { } void c99_emit_add() { printf("+ "); } void c99_emit_sub() { printf("- "); } void c99_emit_mul() { printf("* "); } void c99_emit_div() { printf("/ "); } void c99_emit_lt() { printf("< "); } void c99_emit_le() { printf("<= "); } void c99_emit_gt() { printf("> "); } void c99_emit_ge() { printf(">= "); } void c99_emit_ne() { printf("!= "); } void c99_emit_eq() { printf("== "); } void c99_emit_false() { printf("false "); } void c99_emit_true() { printf("true "); } void c99_emit_nil() { printf("nil "); } void c99_emit_neg() { printf("-"); } void c99_emit_not() { printf("!"); } void c99_emit_void() { } i32 c99_emit_bool_type(const char *str, i32 length) { printf("%.*s ", length, str); return 1; } i32 c99_emit_byte_type(const char *str, i32 length) { printf("%.*s ", length, str); return 1; } i32 c99_emit_int_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_nat_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_real_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_str_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_u8_type(const char *str, i32 length) { printf("%.*s ", length, str); return 1; } i32 c99_emit_i8_type(const char *str, i32 length) { printf("%.*s ", length, str); return 1; } i32 c99_emit_i16_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_u16_type(const char *str, i32 length) { printf("%.*s ", length, str); return 2; } i32 c99_emit_i32_type(const char *str, i32 length) { printf("%.*s ", length, str); return 4; } i32 c99_emit_u32_type(const char *str, i32 length) { printf("%.*s ", length, str); return 4; } i32 c99_emit_f32_type(const char *str, i32 length) { printf("%.*s ", length, str); return 4; } void c99_emit_int(const char *str, i32 length) { printf("%.*s ", length, str); } void c99_emit_nat(const char *str, i32 length) { printf("%.*s ", length, str); } void c99_emit_real(const char *str, i32 length) { printf("%.*s ", length, str); } void c99_emit_byte(const char *str, i32 length) { printf("%.*s ", length, str); } void c99_emit_str(const char *str, i32 length) { printf("%.*s ", length, str); } void c99_emit_array() { } void c99_emit_function() { } void c99_emit_plex() { } void c99_emit_method() { } void c99_emit_trait() { } void c99_emit_const() { } void c99_emit_print() { printf("printf"); } void c99_emit_open_paren() { printf("("); } void c99_emit_close_paren() { printf(")"); } void c99_emit_constant(const char *str, i32 length) { USED(str); USED(length); } void c99_emit_variable(Symbol *sym) { USED(sym); } void c99_emit_write() { } void c99_emit_read() { } void c99_emit_open() { } void c99_emit_close() { } void c99_emit_stat() { } Emitter c99_emitter() { return (Emitter){ INFIX, TEXT, c99_emit_error, c99_prolog, c99_epilogue, c99_emit_add, c99_emit_sub, c99_emit_mul, c99_emit_div, c99_emit_lt, c99_emit_le, c99_emit_gt, c99_emit_ge, c99_emit_ne, c99_emit_eq, c99_emit_false, c99_emit_true, c99_emit_nil, c99_emit_void, c99_emit_int, c99_emit_nat, c99_emit_real, c99_emit_byte, c99_emit_str, c99_emit_bool_type, c99_emit_byte_type, c99_emit_int_type, c99_emit_nat_type, c99_emit_real_type, c99_emit_str_type, c99_emit_u8_type, c99_emit_i8_type, c99_emit_i16_type, c99_emit_u16_type, c99_emit_i32_type, c99_emit_u32_type, c99_emit_f32_type, c99_emit_array, c99_emit_function, c99_emit_plex, c99_emit_method, c99_emit_trait, c99_emit_const, c99_emit_print, c99_emit_neg, c99_emit_not, c99_emit_open_paren, c99_emit_close_paren, c99_emit_constant, c99_emit_variable, c99_emit_write, c99_emit_read, c99_emit_open, c99_emit_close, c99_emit_stat, }; }