diff --git a/compiler/C_CodeGen.jrag b/compiler/C_CodeGen.jrag index cb5f8b523b09e18703d24dd9e0d349812c757c40..ef59b2bf820f97b32fd09983ed89c71afa3b437a 100644 --- a/compiler/C_CodeGen.jrag +++ b/compiler/C_CodeGen.jrag @@ -46,7 +46,11 @@ aspect C_CodeGenEnv { this.qualid = qualid; this.lcName = lcName; this.rawPrefix = rawPrefix; - this.prefix = rawPrefix + "_"; + if (rawPrefix.equals("")) { + this.prefix = rawPrefix; + } else { + this.prefix = rawPrefix + "_"; + } this.indent = indent; this.depth = depth; this.printer = printer; @@ -57,7 +61,11 @@ aspect C_CodeGenEnv { this.qualid = qualid; this.lcName = lcName; this.rawPrefix = rawPrefix; - this.prefix = rawPrefix + "_"; + if (rawPrefix.equals("")) { + this.prefix = rawPrefix; + } else { + this.prefix = rawPrefix + "_"; + } this.depth = 0; this.indent = 0; this.printer = new C_printer(out); @@ -641,7 +649,7 @@ aspect C_Encoder { env.println(")"); env.println("{"); env.indent(); - env.println("int result;"); + env.println("int result = 0;"); getType().C_emitEncoder(env); env.println("return result;"); env.unindent(); @@ -1094,11 +1102,13 @@ aspect C_Info { } public void TypeDecl.C_info(C_env env) { - env.println("C,typedef," + getName() + "," + getName()); + env.println("C,typedef," + env.prefix + getName() + "," + + env.prefix + getName()); } public void SampleDecl.C_info(C_env env) { - env.println("C,sample," + getName() + "," + getName()); + env.println("C,sample," + env.prefix + getName() + "," + + env.prefix + getName()); } }