diff --git a/compiler/C_CodeGen.jrag b/compiler/C_CodeGen.jrag index d3d3976bd423d857f73955140c6c73991dda7542..a6f54aec44e438906e98893c78ec8d8f7b69a5ea 100644 --- a/compiler/C_CodeGen.jrag +++ b/compiler/C_CodeGen.jrag @@ -161,6 +161,7 @@ aspect C_CodeGen { env.println(""); // Include + env.println("#include <stdint.h>"); env.println("#include \"labcomm.h\""); for (int i = 0 ; i < includes.size() ; i++) { env.println("#include \"" + includes.get(i) + "\""); @@ -260,11 +261,14 @@ aspect C_Type { public void PrimType.C_emitType(C_env env, String name) { switch (getToken()) { - case LABCOMM_BOOLEAN: { env.print("unsigned char"); } break; - case LABCOMM_BYTE: { env.print("unsigned char"); } break; + case LABCOMM_BOOLEAN: { env.print("uint8_t"); } break; + case LABCOMM_BYTE: { env.print("uint8_t"); } break; + case LABCOMM_SHORT: { env.print("int16_t"); } break; + case LABCOMM_INT: { env.print("int32_t"); } break; + case LABCOMM_LONG: { env.print("int64_t"); } break; + case LABCOMM_FLOAT: { env.print("float"); } break; + case LABCOMM_DOUBLE: { env.print("double"); } break; case LABCOMM_STRING: { env.print("char*"); } break; - case LABCOMM_LONG: { env.print("long long"); } break; - default: { env.print(getName()); } break; } env.print(" " + name); }