diff --git a/compiler/2014/ArrayTypeRewrite.jrag b/compiler/2014/ArrayTypeRewrite.jrag index 28e3c79f4fa93b7ac6aeb3ec4da3174472080d87..8d83ffb97c52b4a6c20e34a2ffeab2dc6907898e 100644 --- a/compiler/2014/ArrayTypeRewrite.jrag +++ b/compiler/2014/ArrayTypeRewrite.jrag @@ -13,28 +13,28 @@ aspect ArrayRewrite { when (! getDim(0).isVariable()) to FixedArrayType { if (getNumDim() == 1) { - return new FixedArrayType(getType(), + return new FixedArrayType(getDataType(), getDim(0).getExpList()); } else { List l = new List(); for (int i = 1 ; i < getNumDim() ; i++) { l.add(getDim(i)); } - return new FixedArrayType(new ParseArrayType(getType(), l), + return new FixedArrayType(new ParseArrayType(getDataType(), l), getDim(0).getExpList()); } } when (getDim(0).isVariable()) to VariableArrayType { if (getNumDim() == 1) { - return new VariableArrayType(getType(), + return new VariableArrayType(getDataType(), getDim(0).getExpList()); } else { List l = new List(); for (int i = 1 ; i < getNumDim() ; i++) { l.add(getDim(i)); } - return new VariableArrayType(new ParseArrayType(getType(), l), + return new VariableArrayType(new ParseArrayType(getDataType(), l), getDim(0).getExpList()); } } diff --git a/compiler/2014/CS_CodeGen.jrag b/compiler/2014/CS_CodeGen.jrag index 69f50b6f98a488e197f9756b4420df0e5decdc4c..1dfb8189bb51b20a7a4b393bbce1d021d90820e7 100644 --- a/compiler/2014/CS_CodeGen.jrag +++ b/compiler/2014/CS_CodeGen.jrag @@ -175,11 +175,11 @@ aspect CS_CodeGenEnv { aspect CS_StructName { inh int Decl.CS_Depth(); - inh int Type.CS_Depth(); + inh int DataType.CS_Depth(); eq Program.getDecl(int i).CS_Depth() = 0; eq StructType.getField(int i).CS_Depth() = CS_Depth() + 1; - inh String Type.CS_structName(); + inh String DataType.CS_structName(); eq Program.getDecl(int i).CS_structName() = getDecl(i).getName(); eq StructType.getField(int i).CS_structName() { if (CS_Depth() == 0) { @@ -192,9 +192,9 @@ aspect CS_StructName { aspect CS_Void { - syn boolean Decl.CS_isVoid() = getType().CS_isVoid(); + syn boolean Decl.CS_isVoid() = getDataType().CS_isVoid(); syn boolean UserType.CS_isVoid() = decl().CS_isVoid(); - syn boolean Type.CS_isVoid() = false; + syn boolean DataType.CS_isVoid() = false; syn boolean VoidType.CS_isVoid() = true; } @@ -273,7 +273,7 @@ aspect CS_Class { Decl t = it.next(); t.CS_emitUserTypeDeps(env, t.getName(), outputCode); - if( outputCode && t.getType().isUserType() ) { + if( outputCode && t.getDataType().isUserType() ) { env.println(t.getName()+".register(e);"); } else { // Just output a comment String refpath = (via == null) ? "directly" : "indirectly via "+via; @@ -329,7 +329,7 @@ aspect CS_Class { } public void TypeDecl.CS_emitClass(CS_env env) { - if (getType().CS_needInstance()) { + if (getDataType().CS_needInstance()) { // Hackish prettyprint preamble env.println("/* "); pp(env.getPrintStream()); @@ -338,7 +338,7 @@ aspect CS_Class { env.println("public class " + getName() + " : SampleType {"); env.println(); env.indent(); - getType().CS_emitInstance(env); + getDataType().CS_emitInstance(env); if( isReferenced()) { CS_emitRegisterEncoder(env); CS_emitDispatcher(env,false); @@ -359,11 +359,11 @@ aspect CS_Class { env.println("public class " + getName() + " : Sample {"); env.println(); env.indent(); - getType().CS_emitInstance(env); + getDataType().CS_emitInstance(env); env.println("public interface Handler : SampleHandler {"); env.print(" void handle("); if (!isVoid()) { - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.print(" value"); } env.println(");"); @@ -506,12 +506,12 @@ aspect CS_Class { env.print("public static void encode(Encoder e"); if (!isVoid()) { env.print(", "); - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.print(" value"); } env.println(") {"); env.indent(); - getType().CS_emitEncoder(env, "value"); + getDataType().CS_emitEncoder(env, "value"); env.unindent(); env.println("}"); env.println(); @@ -521,20 +521,20 @@ aspect CS_Class { env.print("public static void encode(Encoder e"); if (!isVoid()) { env.print(", "); - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.print(" value"); } env.println(") {"); env.indent(); env.println("e.begin(typeof(" + getName() + "));"); - getType().CS_emitEncoder(env, "value"); + getDataType().CS_emitEncoder(env, "value"); env.println("e.end(typeof(" + getName() + "));"); env.unindent(); env.println("}"); env.println(); } - public void Type.CS_emitEncoder(CS_env env, String name) { + public void DataType.CS_emitEncoder(CS_env env, String name) { throw new Error(this.getClass().getName() + ".CS_emitEncoder(CS_env env, String name)" + " not declared"); @@ -575,7 +575,7 @@ aspect CS_Class { index = index + ", " + env.print_for_begin(limit); } } - getType().CS_emitEncoder(env, name + "[" + index + "]"); + getDataType().CS_emitEncoder(env, name + "[" + index + "]"); for (int i = 0 ; i < getNumExp() ; i++) { env.print_for_end(); } @@ -600,7 +600,7 @@ aspect CS_Class { public void StructType.CS_emitEncoder(CS_env env, String name) { for (int i = 0 ; i < getNumField() ; i++) { Field f = getField(i); - f.getType().CS_emitEncoder(env, name + "." + f.getName()); + f.getDataType().CS_emitEncoder(env, name + "." + f.getName()); } } @@ -608,19 +608,19 @@ aspect CS_Class { if (CS_needInstance()) { env.println(getName() + ".encode(e, " + name + ");"); } else { - decl().getType().CS_emitEncoder(env, name); + decl().getDataType().CS_emitEncoder(env, name); } } public void Decl.CS_emitDecoder(CS_env env) { env.print("public static "); - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.println(" decode(Decoder d) {"); env.indent(); if (!isVoid()) { - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.println(" result;"); - getType().CS_emitDecoder(env, "result"); + getDataType().CS_emitDecoder(env, "result"); env.println("return result;"); } env.unindent(); @@ -628,7 +628,7 @@ aspect CS_Class { env.println(); } - public void Type.CS_emitDecoder(CS_env env, String name) { + public void DataType.CS_emitDecoder(CS_env env, String name) { throw new Error(this.getClass().getName() + ".CS_emitDecoder(CS_env env, String name)" + " not declared"); @@ -666,7 +666,7 @@ aspect CS_Class { env.println(";"); } env.print(name + " = new "); - getType().CS_emitTypePrefix(env); + getDataType().CS_emitTypePrefix(env); env.print("["); for (int i = 0 ; i < getNumExp() ; i++) { if (i > 0) { @@ -675,7 +675,7 @@ aspect CS_Class { env.print("i_" + (baseDepth + i) + "_max"); } env.print("]"); - getType().CS_emitTypeSuffix(env); + getDataType().CS_emitTypeSuffix(env); env.println(";"); String index = null; @@ -687,7 +687,7 @@ aspect CS_Class { index = index + ", " + env.print_for_begin(limit); } } - getType().CS_emitDecoder(env, name + "[" + index + "]"); + getDataType().CS_emitDecoder(env, name + "[" + index + "]"); for (int i = 0 ; i < getNumExp() ; i++) { env.print_for_end(); } @@ -715,7 +715,7 @@ aspect CS_Class { env.println("();"); for (int i = 0 ; i < getNumField() ; i++) { Field f = getField(i); - f.getType().CS_emitDecoder(env, name + "." + f.getName()); + f.getDataType().CS_emitDecoder(env, name + "." + f.getName()); } } @@ -723,11 +723,11 @@ aspect CS_Class { if (CS_needInstance()) { env.println(name + " = " + getName() + ".decode(d);"); } else { - decl().getType().CS_emitDecoder(env, name); + decl().getDataType().CS_emitDecoder(env, name); } } - public void Type.CS_emitTypePrefix(CS_env env) { + public void DataType.CS_emitTypePrefix(CS_env env) { throw new Error(this.getClass().getName() + ".CS_emitTypePrefix(CS_env env)" + " not declared"); @@ -745,24 +745,24 @@ aspect CS_Class { if (CS_needInstance()) { env.print(getName()); } else { - decl().getType().CS_emitTypePrefix(env); + decl().getDataType().CS_emitTypePrefix(env); } } public void ArrayType.CS_emitTypePrefix(CS_env env){ - getType().CS_emitTypePrefix(env); + getDataType().CS_emitTypePrefix(env); } public void StructType.CS_emitTypePrefix(CS_env env){ env.print(CS_structName()); } - public void Type.CS_emitTypeSuffix(CS_env env) { + public void DataType.CS_emitTypeSuffix(CS_env env) { } public void UserType.CS_emitTypeSuffix(CS_env env) { if (! CS_needInstance()) { - decl().getType().CS_emitTypeSuffix(env); + decl().getDataType().CS_emitTypeSuffix(env); } } @@ -772,10 +772,10 @@ aspect CS_Class { env.print(","); } env.print("]"); - getType().CS_emitTypeSuffix(env); + getDataType().CS_emitTypeSuffix(env); } - public boolean Type.CS_needInstance() { + public boolean DataType.CS_needInstance() { throw new Error(this.getClass().getName() + ".CS_needInstance()" + " not declared"); @@ -790,7 +790,7 @@ aspect CS_Class { } public boolean UserType.CS_needInstance() { - return decl().getType().CS_needInstance(); + return decl().getDataType().CS_needInstance(); } public boolean StructType.CS_needInstance() { @@ -798,10 +798,10 @@ aspect CS_Class { } public boolean ArrayType.CS_needInstance() { - return getType().CS_needInstance(); + return getDataType().CS_needInstance(); } - public boolean Type.CS_isPrimitive() { + public boolean DataType.CS_isPrimitive() { return false; } @@ -809,7 +809,7 @@ aspect CS_Class { return true; } - public void Type.CS_emitInstance(CS_env env) { + public void DataType.CS_emitInstance(CS_env env) { throw new Error(this.getClass().getName() + ".CS_emitInstance(CS_env env)" + " not declared"); @@ -822,7 +822,7 @@ aspect CS_Class { } public void ArrayType.CS_emitInstance(CS_env env) { - getType().CS_emitInstance(env); + getDataType().CS_emitInstance(env); } public void StructType.CS_emitInstance(CS_env env) { @@ -831,7 +831,7 @@ aspect CS_Class { env.indent(); } for (int i = 0 ; i < getNumField() ; i++) { - getField(i).getType().CS_emitInstance(env); + getField(i).getDataType().CS_emitInstance(env); } for (int i = 0 ; i < getNumField() ; i++) { getField(i).CS_emitField(env); @@ -848,11 +848,11 @@ aspect CS_Class { public void Field.CS_emitField(CS_env env) { env.print("public "); - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.println(" " + getName() + ";"); } - public void Type.CS_emitType(CS_env env) { + public void DataType.CS_emitType(CS_env env) { throw new Error(this.getClass().getName() + ".CS_emitType(CS_env env)" + " not declared"); @@ -872,17 +872,17 @@ aspect CS_Class { } public void UserType.CS_emitType(CS_env env) { - decl().getType().CS_emitType(env); + decl().getDataType().CS_emitType(env); } public void ArrayType.CS_emitType(CS_env env){ - getType().CS_emitTypePrefix(env); + getDataType().CS_emitTypePrefix(env); env.print("["); for (int i = 1 ; i < getNumExp() ; i++) { env.print(","); } env.print("]"); - getType().CS_emitTypeSuffix(env); + getDataType().CS_emitTypeSuffix(env); } public void StructType.CS_emitType(CS_env env){ @@ -902,7 +902,7 @@ aspect CS_Signature { public void TypeRefSignatureLine.CS_emitSignature(CS_env env, boolean isDecl){ env.print(getIndentString()); - env.println("e.encodePacked32(e.getTypeId( typeof("+decl.getName()+")));"); + env.println("e.encodePacked32(e.getDataTypeId( typeof("+decl.getName()+")));"); } public void DataSignatureLine.CS_emitSignature(CS_env env, boolean decl){ @@ -955,14 +955,14 @@ aspect CS_Info { public void TypeDecl.CS_info(CS_env env, String namespace) { env.print(";C#;typedef;" + namespace + getName() + ";"); - getType().CS_emitType(env) ; + getDataType().CS_emitType(env) ; env.print(";not_applicable_for_C#"); env.println(); } public void SampleDecl.CS_info(CS_env env, String namespace) { env.print(";C#;sample;" + namespace + getName() + ";"); - getType().CS_emitType(env); + getDataType().CS_emitType(env); env.print(";not_applicable_for_C#"); env.println(); } diff --git a/compiler/2014/C_CodeGen.jrag b/compiler/2014/C_CodeGen.jrag index 9b7cac5c4da04e4260db1c02baff5b8e5fdd9663..526b2ad02d60c303a928e1f007d6632a9047c2af 100644 --- a/compiler/2014/C_CodeGen.jrag +++ b/compiler/2014/C_CodeGen.jrag @@ -158,20 +158,20 @@ aspect C_CodeGenEnv { aspect C_IsDynamic { // Determine if a type has dynamically allocated data - syn boolean Decl.C_isDynamic() = getType().C_isDynamic(); - syn boolean Type.C_isDynamic() = false; + syn boolean Decl.C_isDynamic() = getDataType().C_isDynamic(); + syn boolean DataType.C_isDynamic() = false; syn boolean PrimType.C_isDynamic() = getToken() == LABCOMM_STRING; syn boolean UserType.C_isDynamic() = - lookupType(getName()).getType().C_isDynamic(); + lookupType(getName()).getDataType().C_isDynamic(); syn boolean StructType.C_isDynamic() { for (int i = 0 ; i < getNumField() ; i++) { - if (getField(i).getType().C_isDynamic()) { + if (getField(i).getDataType().C_isDynamic()) { return true; } } return false; } - syn boolean FixedArrayType.C_isDynamic() = getType().C_isDynamic(); + syn boolean FixedArrayType.C_isDynamic() = getDataType().C_isDynamic(); syn boolean VariableArrayType.C_isDynamic() = true; } @@ -272,7 +272,7 @@ aspect C_Type { public void TypeDecl.C_emitType(C_env env) { env.println("#ifndef LABCOMM_DEFINED_" + env.prefix + getName()); env.print("typedef "); - getType().C_emitType(env, env.prefix + getName()); + getDataType().C_emitType(env, env.prefix + getName()); env.println(";"); env.println("#define LABCOMM_DEFINED_" + env.prefix + getName()); env.println("#endif"); @@ -281,7 +281,7 @@ aspect C_Type { public void SampleDecl.C_emitType(C_env env) { env.println("#ifndef LABCOMM_DEFINED_" + env.prefix + getName()); env.print("typedef "); - getType().C_emitType(env, env.prefix + getName()); + getDataType().C_emitType(env, env.prefix + getName()); env.println(";"); env.println("#define LABCOMM_DEFINED_" + env.prefix + getName()); env.println("#endif"); @@ -290,7 +290,7 @@ aspect C_Type { ";"); } - public void Type.C_emitType(C_env env, String name) { + public void DataType.C_emitType(C_env env, String name) { throw new Error(this.getClass().getName() + ".C_emitType(C_env env, String name)" + " not declared"); @@ -333,7 +333,7 @@ aspect C_Type { } public void Field.C_emitType(C_env env) { - getType().C_emitType(env, getName()); + getDataType().C_emitType(env, getName()); } public void FixedArrayType.C_emitType(C_env env, String name) { @@ -343,7 +343,7 @@ aspect C_Type { for (int i = 0 ; i < getNumExp() ; i++) { index.append("[" + getExp(i).C_getValue() + "]"); } - getType().C_emitType(env, index.toString()); + getDataType().C_emitType(env, index.toString()); env.println(";"); env.unindent(); env.print("} " + name); @@ -359,7 +359,7 @@ aspect C_Type { env.println("// n_" + i + "=" + getExp(i).C_getValue()); } } - getType().C_emitType(env, "*a"); + getDataType().C_emitType(env, "*a"); env.println(";"); env.unindent(); env.print("} " + name); @@ -502,12 +502,12 @@ aspect C_Decoder { env.println("{"); env.indent(); env.println(env.prefix + getName() + " v;"); - getType().C_emitDecoder(env); + getDataType().C_emitDecoder(env); env.println("handle(&v, context);"); if (C_isDynamic()) { env.println("{"); env.indent(); - getType().C_emitDecoderDeallocation(env); + getDataType().C_emitDecoderDeallocation(env); env.unindent(); env.println("}"); } @@ -515,7 +515,7 @@ aspect C_Decoder { env.println("}"); } - public void Type.C_emitDecoder(C_env env) { + public void DataType.C_emitDecoder(C_env env) { throw new Error(this.getClass().getName() + ".C_emitDecoder(C_env env)" + " not declared"); @@ -538,7 +538,7 @@ aspect C_Decoder { } public void UserType.C_emitDecoder(C_env env) { - lookupType(getName()).getType().C_emitDecoder(env); + lookupType(getName()).getDataType().C_emitDecoder(env); } public void StructType.C_emitDecoder(C_env env) { @@ -563,7 +563,7 @@ aspect C_Decoder { env.indent(); } C_emitCalcIndex(env); - getType().C_emitDecoder(C_Nest(env)); + getDataType().C_emitDecoder(C_Nest(env)); for (int i = getNumExp() - 1 ; i >= 0 ; i--) { env.unindent(); env.println("}"); @@ -573,7 +573,7 @@ aspect C_Decoder { } public void Field.C_emitDecoder(C_env env) { - getType().C_emitDecoder(env.nestStruct("." + getName())); + getDataType().C_emitDecoder(env.nestStruct("." + getName())); } public void Exp.C_emitDecoderDecodeLimit(C_env env, int i) { @@ -604,7 +604,7 @@ aspect C_Decoder { // Code for deallocation of dynamically allocated data - public void Type.C_emitDecoderDeallocation(C_env env) { + public void DataType.C_emitDecoderDeallocation(C_env env) { throw new Error(this.getClass().getName() + ".C_emitDecoderDeallocation(C_env env)" + " not declared"); @@ -619,7 +619,7 @@ aspect C_Decoder { public void UserType.C_emitDecoderDeallocation(C_env env) { if (C_isDynamic()) { - lookupType(getName()).getType().C_emitDecoderDeallocation(env); + lookupType(getName()).getDataType().C_emitDecoderDeallocation(env); } } @@ -632,7 +632,7 @@ aspect C_Decoder { } public void ArrayType.C_emitDecoderDeallocation(C_env env) { - if (getType().C_isDynamic()) { + if (getDataType().C_isDynamic()) { env.println("{"); env.indent(); C_emitLoopVariables(env); @@ -646,7 +646,7 @@ aspect C_Decoder { env.indent(); } C_emitCalcIndex(env); - getType().C_emitDecoderDeallocation(C_Nest(env)); + getDataType().C_emitDecoderDeallocation(C_Nest(env)); for (int i = 0 ; i < getNumExp() ; i++) { env.unindent(); env.println("}"); @@ -663,7 +663,7 @@ aspect C_Decoder { } public void Field.C_emitDecoderDeallocation(C_env env) { - getType().C_emitDecoderDeallocation(env.nestStruct("." + getName())); + getDataType().C_emitDecoderDeallocation(env.nestStruct("." + getName())); } public void Decl.C_emitDecoderRegisterHandler(C_env env) { @@ -748,12 +748,12 @@ aspect C_copy { env_src.println(""); env_src.println("{"); env_src.indent(); - getType().C_emitCopy(env_src, env_dst); + getDataType().C_emitCopy(env_src, env_dst); env_src.unindent(); env_src.println("}"); } - public void Type.C_emitCopy(C_env env_src, C_env env_dst) { + public void DataType.C_emitCopy(C_env env_src, C_env env_dst) { throw new Error(this.getClass().getName() + ".C_emitCopy(C_env env)" + " not declared"); @@ -780,7 +780,7 @@ aspect C_copy { } public void UserType.C_emitCopy(C_env env_src, C_env env_dst) { - lookupType(getName()).getType().C_emitCopy(env_src, env_dst); + lookupType(getName()).getDataType().C_emitCopy(env_src, env_dst); } public void StructType.C_emitCopy(C_env env_src, C_env env_dst) { @@ -805,7 +805,7 @@ aspect C_copy { env_src.indent(); } C_emitCalcIndex(env_src); - getType().C_emitCopy(C_Nest(env_src), C_Nest(env_dst)); + getDataType().C_emitCopy(C_Nest(env_src), C_Nest(env_dst)); for (int i = getNumExp() - 1 ; i >= 0 ; i--) { env_src.unindent(); env_src.println("}"); @@ -816,7 +816,7 @@ aspect C_copy { public void Field.C_emitCopy(C_env env_src, C_env env_dst) { String fnam = env_src.memberAccessor() + getName(); - getType().C_emitCopy(env_src.nestStruct(fnam), env_dst.nestStruct(fnam)); + getDataType().C_emitCopy(env_src.nestStruct(fnam), env_dst.nestStruct(fnam)); } public void Exp.C_emitCopyDecodeLimit(C_env env_src, C_env env_dst, int i) { @@ -889,12 +889,12 @@ aspect C_copy { env.println(""); env.println("{"); env.indent(); - getType().C_emitCopyDeallocation(env); + getDataType().C_emitCopyDeallocation(env); env.unindent(); env.println("}"); } - public void Type.C_emitCopyDeallocation(C_env env) { + public void DataType.C_emitCopyDeallocation(C_env env) { throw new Error(this.getClass().getName() + ".C_emitCopyDeallocation(C_env env)" + " not declared"); @@ -912,7 +912,7 @@ aspect C_copy { public void UserType.C_emitCopyDeallocation(C_env env) { if (C_isDynamic()) { - lookupType(getName()).getType().C_emitCopyDeallocation(env); + lookupType(getName()).getDataType().C_emitCopyDeallocation(env); } } @@ -925,7 +925,7 @@ aspect C_copy { } public void ArrayType.C_emitCopyDeallocation(C_env env) { - if (getType().C_isDynamic()) { + if (getDataType().C_isDynamic()) { env.println("{"); env.indent(); C_emitLoopVariables(env); @@ -939,7 +939,7 @@ aspect C_copy { env.indent(); } C_emitCalcIndex(env); - getType().C_emitCopyDeallocation(C_Nest(env)); + getDataType().C_emitCopyDeallocation(C_Nest(env)); for (int i = 0 ; i < getNumExp() ; i++) { env.unindent(); env.println("}"); @@ -956,7 +956,7 @@ aspect C_copy { } public void Field.C_emitCopyDeallocation(C_env env) { - getType().C_emitCopyDeallocation(env.nestStruct(env.memberAccessor() + getDataType().C_emitCopyDeallocation(env.nestStruct(env.memberAccessor() + getName())); } } @@ -1023,7 +1023,7 @@ aspect C_Encoder { env.println("{"); env.indent(); env.println("int result = 0;"); - getType().C_emitEncoder(env); + getDataType().C_emitEncoder(env); env.println("return result;"); env.unindent(); env.println("}"); @@ -1047,7 +1047,7 @@ aspect C_Encoder { env.println("}"); } - public void Type.C_emitEncoder(C_env env) { + public void DataType.C_emitEncoder(C_env env) { throw new Error(this.getClass().getName() + ".C_emitEncoder(C_env env)" + " not declared"); @@ -1074,7 +1074,7 @@ aspect C_Encoder { } public void UserType.C_emitEncoder(C_env env) { - decl().getType().C_emitEncoder(env); + decl().getDataType().C_emitEncoder(env); } public void StructType.C_emitEncoder(C_env env) { @@ -1098,7 +1098,7 @@ aspect C_Encoder { env.indent(); } C_emitCalcIndex(env); - getType().C_emitEncoder(C_Nest(env)); + getDataType().C_emitEncoder(C_Nest(env)); for (int i = getNumExp() - 1 ; i >= 0 ; i--) { env.unindent(); env.println("}"); @@ -1108,7 +1108,7 @@ aspect C_Encoder { } public void Field.C_emitEncoder(C_env env) { - getType().C_emitEncoder(env.nestStruct("." + getName())); + getDataType().C_emitEncoder(env.nestStruct("." + getName())); } public void Exp.C_emitEncoderEncodeLimit(C_env env, int i) { @@ -1516,7 +1516,7 @@ aspect C_Sizeof { } public int Decl.C_fixedSizeof() { - return getType().C_fixedSizeof(); + return getDataType().C_fixedSizeof(); } public void Decl.C_emitSizeof(C_env env) { @@ -1535,7 +1535,7 @@ aspect C_Sizeof { env.println("}"); } - public int Type.C_fixedSizeof() { + public int DataType.C_fixedSizeof() { throw new Error(this.getClass().getName() + ".C_fixedSizeof()" + " not declared"); @@ -1564,13 +1564,13 @@ aspect C_Sizeof { } public int UserType.C_fixedSizeof() { - return lookupType(getName()).getType().C_fixedSizeof(); + return lookupType(getName()).getDataType().C_fixedSizeof(); } public int StructType.C_fixedSizeof() { int result = 0; for (int i = 0 ; i < getNumField() ; i++) { - result += getField(i).getType().C_fixedSizeof(); + result += getField(i).getDataType().C_fixedSizeof(); } return result; } @@ -1581,7 +1581,7 @@ aspect C_Sizeof { int n = Integer.parseInt(((IntegerLiteral)getExp(i)).getValue()); elements = elements * n; } - return getType().C_fixedSizeof() * elements; + return getDataType().C_fixedSizeof() * elements; } public void Decl.C_emitSizeofValue(C_env env) { @@ -1595,7 +1595,7 @@ aspect C_Sizeof { env.println("int result = 0;"); if (C_isDynamic()) { env.println(env.prefix + getName() + " *v = vv;"); - getType().C_emitSizeof(env); + getDataType().C_emitSizeof(env); } else { env.println("result += " + C_fixedSizeof() + ";"); } @@ -1604,7 +1604,7 @@ aspect C_Sizeof { env.println("}"); } - public void Type.C_emitSizeof(C_env env) { + public void DataType.C_emitSizeof(C_env env) { throw new Error(this.getClass().getName() + ".C_emitSizeof(C_env env)" + " not declared"); @@ -1625,17 +1625,17 @@ aspect C_Sizeof { } public void UserType.C_emitSizeof(C_env env) { - lookupType(getName()).getType().C_emitSizeof(env); + lookupType(getName()).getDataType().C_emitSizeof(env); } public void StructType.C_emitSizeof(C_env env) { int fixed = 0; for (int i = 0 ; i < getNumField() ; i++) { - if (getField(i).getType().C_isDynamic()) { - getField(i).getType().C_emitSizeof( + if (getField(i).getDataType().C_isDynamic()) { + getField(i).getDataType().C_emitSizeof( env.nestStruct("." + getField(i).getName())); } else { - fixed += getField(i).getType().C_fixedSizeof(); + fixed += getField(i).getDataType().C_fixedSizeof(); } } if (fixed > 0) { @@ -1655,7 +1655,7 @@ aspect C_Sizeof { for (int i = 0 ; i < getNumExp() ; i++) { getExp(i).C_emitSizeof(env, i); } - if (getType().C_isDynamic()) { + if (getDataType().C_isDynamic()) { env.println("{"); env.indent(); C_emitLoopVariables(env); @@ -1669,7 +1669,7 @@ aspect C_Sizeof { env.indent(); } C_emitCalcIndex(env); - getType().C_emitSizeof(C_Nest(env)); + getDataType().C_emitSizeof(C_Nest(env)); for (int i = 0 ; i < getNumExp() ; i++) { env.unindent(); env.println("}"); @@ -1677,7 +1677,7 @@ aspect C_Sizeof { env.unindent(); env.println("}"); } else { - env.print("result += " + getType().C_fixedSizeof()); + env.print("result += " + getDataType().C_fixedSizeof()); for (int i = 0 ; i < getNumExp() ; i++) { env.print(" * " + getExp(i).C_getLimit(env, i)); } diff --git a/compiler/2014/DeclNames.jrag b/compiler/2014/DeclNames.jrag index 042739b0f9d229f550d38a76cfc5b19e445eee22..c448c6d7e73933815e0fbee438ac437f05f65561 100644 --- a/compiler/2014/DeclNames.jrag +++ b/compiler/2014/DeclNames.jrag @@ -1,14 +1,14 @@ aspect DeclNames { - inh String Type.declName(); - eq Decl.getType().declName() = getName(); + inh String DataType.declName(); + eq Decl.DataType().declName() = getName(); inh String Field.declName(); eq StructType.getField(int i).declName() = declName(); - + //TODO: aspect should be renamed to parent-something - inh Decl Type.parentDecl(); + inh Decl DataType.parentDecl(); inh Decl Field.parentDecl(); - eq Decl.getType().parentDecl() = this; + eq Decl.getDataType().parentDecl() = this; eq StructType.getField(int i).parentDecl() = parentDecl(); } diff --git a/compiler/2014/FlatSignature.jrag b/compiler/2014/FlatSignature.jrag index b96c119ce386f0a0d2b7e9e2c1edb001050e5f27..688d84c0c782ebbabe4531d9ecf8378db26d8b12 100644 --- a/compiler/2014/FlatSignature.jrag +++ b/compiler/2014/FlatSignature.jrag @@ -14,11 +14,11 @@ aspect FlatSignature { } public void TypeDecl.flatSignature(SignatureList list) { - getType().flatSignature(list); + getDataType().flatSignature(list); } public void SampleDecl.flatSignature(SignatureList list) { - getType().flatSignature(list); + getDataType().flatSignature(list); } // public void SampleRefType.flatSignature(SignatureList list) { @@ -45,7 +45,7 @@ aspect FlatSignature { for (int i = 0 ; i < getNumExp() ; i++) { getExp(i).flatSignature(list); } - getType().flatSignature(list); + getDataType().flatSignature(list); list.unindent(); list.add(null, "}"); } @@ -63,7 +63,7 @@ aspect FlatSignature { public void Field.flatSignature(SignatureList list) { list.addString(getName(), signatureComment()); - getType().flatSignature(list); + getDataType().flatSignature(list); } public void IntegerLiteral.flatSignature(SignatureList list) { @@ -93,7 +93,7 @@ aspect FlatSignature { } public String Field.signatureComment() { - return getType().signatureComment() + " '" + getName() +"'"; + return getDataType().signatureComment() + " '" + getName() +"'"; } // public String SampleRefType.signatureComment() { diff --git a/compiler/2014/Java_CodeGen.jrag b/compiler/2014/Java_CodeGen.jrag index cb0f6281c0cd375a0a356b081aa5607dc4e9a90b..90a641d9f2c9ba8c2ddc9c1df6f5000ed7e08d7b 100644 --- a/compiler/2014/Java_CodeGen.jrag +++ b/compiler/2014/Java_CodeGen.jrag @@ -178,11 +178,11 @@ aspect Java_CodeGenEnv { aspect Java_StructName { inh int Decl.Java_Depth(); - inh int Type.Java_Depth(); + inh int DataType.Java_Depth(); eq Program.getDecl(int i).Java_Depth() = 0; eq StructType.getField(int i).Java_Depth() = Java_Depth() + 1; - inh String Type.Java_structName(); + inh String DataType.Java_structName(); eq Program.getDecl(int i).Java_structName() = getDecl(i).getName(); eq StructType.getField(int i).Java_structName() { if (Java_Depth() == 0) { @@ -195,9 +195,9 @@ aspect Java_StructName { aspect Java_Void { - syn boolean Decl.isVoid() = getType().isVoid(); + syn boolean Decl.isVoid() = getDataType().isVoid(); syn boolean UserType.isVoid() = decl().isVoid(); - syn boolean Type.isVoid() = false; + syn boolean DataType.isVoid() = false; syn boolean VoidType.isVoid() = true; } @@ -295,7 +295,7 @@ aspect Java_Class { Decl t = it.next(); t.Java_emitUserTypeDeps(env, t.getName(), outputCode); - if( outputCode){// && t.getType().isUserType() ) { + if( outputCode){// && t.getDataType().isUserType() ) { env.println(t.getName()+".register(e);"); } else { // Just output a comment String refpath = (via == null) ? "directly" : "indirectly via "+via; @@ -356,14 +356,14 @@ aspect Java_Class { env.println("import se.lth.control.labcomm"+env.verStr+".Constant;"); env.println("import se.lth.control.labcomm"+env.verStr+".SampleType;"); - if (getType().Java_needInstance() || hasDependencies() || isReferenced()) { + if (getDataType().Java_needInstance() || hasDependencies() || isReferenced()) { env.println("import se.lth.control.labcomm"+env.verStr+".Encoder;"); env.println("import se.lth.control.labcomm"+env.verStr+".SampleDispatcher;"); env.println("import se.lth.control.labcomm"+env.verStr+".SampleHandler;"); // env.println(); // } // -// if (getType().Java_needInstance()) { +// if (getDataType().Java_needInstance()) { env.println("import java.io.IOException;"); env.println("import se.lth.control.labcomm"+env.verStr+".Decoder;"); } @@ -374,14 +374,14 @@ aspect Java_Class { env.println(); env.indent(); - if (getType().Java_needInstance()) { - getType().Java_emitInstance(env); + if (getDataType().Java_needInstance()) { + getDataType().Java_emitInstance(env); Java_emitEncoder(env); Java_emitDecoder(env); } //if(hasDependencies() || isReferenced()) { - //if( getType().isUserType() && isReferenced()) { + //if( getDataType().isUserType() && isReferenced()) { if( isReferenced()) { Java_emitRegisterEncoder(env); Java_emitDispatcher(env, false); @@ -414,17 +414,17 @@ aspect Java_Class { // Code for making samples of user types extend their type // currently commented out. Is this a good idea or not? // -// if(getType().isUserType()) { -// env.print(" extends "+getType().getTypeName()); +// if(getDataType().isUserType()) { +// env.print(" extends "+getDataType().getTypeName()); // } env.println(" implements Sample {"); env.println(); env.indent(); - getType().Java_emitInstance(env); + getDataType().Java_emitInstance(env); env.println("public interface Handler extends SampleHandler {"); env.print(" public void handle_" + getName() + "("); if (!isVoid()) { - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.print(" value"); } env.println(") throws Exception;"); @@ -611,12 +611,12 @@ aspect Java_Class { env.print("public static void encode(Encoder e"); if (!isVoid()) { env.print(", "); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.print(" value"); } env.println(") throws IOException {"); env.indent(); - getType().Java_emitEncoder(env, "value"); + getDataType().Java_emitEncoder(env, "value"); env.unindent(); env.println("}"); env.println(); @@ -626,20 +626,20 @@ aspect Java_Class { env.print("public static void encode(Encoder e"); if (!isVoid()) { env.print(", "); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.print(" value"); } env.println(") throws IOException {"); env.indent(); env.println("e.begin(" + getName() + ".class);"); - getType().Java_emitEncoder(env, "value"); + getDataType().Java_emitEncoder(env, "value"); env.println("e.end(" + getName() + ".class);"); env.unindent(); env.println("}"); env.println(); } - public void Type.Java_emitEncoder(Java_env env, String name) { + public void DataType.Java_emitEncoder(Java_env env, String name) { throw new Error(this.getClass().getName() + ".Java_emitEncoder(Java_env env, String name)" + " not declared"); @@ -676,7 +676,7 @@ aspect Java_Class { String limit = "i_" + (baseDepth + i) + "_max"; name = name + env.print_for_begin(limit); } - getType().Java_emitEncoder(env, name); + getDataType().Java_emitEncoder(env, name); for (int i = 0 ; i < getNumExp() ; i++) { env.print_for_end(); env.print_block_end(); @@ -701,7 +701,7 @@ aspect Java_Class { public void StructType.Java_emitEncoder(Java_env env, String name) { for (int i = 0 ; i < getNumField() ; i++) { Field f = getField(i); - f.getType().Java_emitEncoder(env, name + "." + f.getName()); + f.getDataType().Java_emitEncoder(env, name + "." + f.getName()); } } @@ -709,19 +709,19 @@ aspect Java_Class { if (Java_needInstance()) { env.println(getName() + ".encode(e, " + name + ");"); } else { - decl().getType().Java_emitEncoder(env, name); + decl().getDataType().Java_emitEncoder(env, name); } } public void Decl.Java_emitDecoder(Java_env env) { env.print("public static "); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.println(" decode(Decoder d) throws IOException {"); env.indent(); if (!isVoid()) { - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.println(" result;"); - getType().Java_emitDecoder(env, "result"); + getDataType().Java_emitDecoder(env, "result"); env.println("return result;"); } env.unindent(); @@ -729,7 +729,7 @@ aspect Java_Class { env.println(); } - public void Type.Java_emitDecoder(Java_env env, String name) { + public void DataType.Java_emitDecoder(Java_env env, String name) { throw new Error(this.getClass().getName() + ".Java_emitDecoder(Java_env env, String name)" + " not declared"); @@ -769,7 +769,7 @@ aspect Java_Class { env.println(";"); name = name + env.print_for_begin(limit); } - getType().Java_emitDecoder(env, name); + getDataType().Java_emitDecoder(env, name); for (int i = 0 ; i < getNumExp() ; i++) { env.print_for_end(); } @@ -797,7 +797,7 @@ aspect Java_Class { env.println("();"); for (int i = 0 ; i < getNumField() ; i++) { Field f = getField(i); - f.getType().Java_emitDecoder(env, name + "." + f.getName()); + f.getDataType().Java_emitDecoder(env, name + "." + f.getName()); } } @@ -805,11 +805,11 @@ aspect Java_Class { if (Java_needInstance()) { env.println(name + " = " + getName() + ".decode(d);"); } else { - decl().getType().Java_emitDecoder(env, name); + decl().getDataType().Java_emitDecoder(env, name); } } - public void Type.Java_emitNew(Java_env env, String size) { + public void DataType.Java_emitNew(Java_env env, String size) { throw new Error(this.getClass().getName() + ".Java_emitNew(Java_env env, String size)" + " not declared"); @@ -817,15 +817,15 @@ aspect Java_Class { public void ArrayType.Java_emitNew(Java_env env, String size, int depth) { env.print("new "); - getType().Java_emitTypePrefix(env); + getDataType().Java_emitTypePrefix(env); env.print("[" + size + "]"); - getType().Java_emitTypeSuffix(env); + getDataType().Java_emitTypeSuffix(env); for (int i = 1 ; i < depth ; i++) { env.print("[]"); } } - public void Type.Java_emitTypePrefix(Java_env env) { + public void DataType.Java_emitTypePrefix(Java_env env) { throw new Error(this.getClass().getName() + ".Java_emitTypePrefix(Java_env env)" + " not declared"); @@ -843,35 +843,35 @@ aspect Java_Class { if (Java_needInstance()) { env.print(getName()); } else { - decl().getType().Java_emitTypePrefix(env); + decl().getDataType().Java_emitTypePrefix(env); } } public void ArrayType.Java_emitTypePrefix(Java_env env){ - getType().Java_emitTypePrefix(env); + getDataType().Java_emitTypePrefix(env); } public void StructType.Java_emitTypePrefix(Java_env env){ env.print(Java_structName()); } - public void Type.Java_emitTypeSuffix(Java_env env) { + public void DataType.Java_emitTypeSuffix(Java_env env) { } public void UserType.Java_emitTypeSuffix(Java_env env) { if (! Java_needInstance()) { - decl().getType().Java_emitTypeSuffix(env); + decl().getDataType().Java_emitTypeSuffix(env); } } public void ArrayType.Java_emitTypeSuffix(Java_env env){ - getType().Java_emitTypeSuffix(env); + getDataType().Java_emitTypeSuffix(env); for (int i = 0 ; i < getNumExp() ; i++) { env.print("[]"); } } - public boolean Type.Java_needInstance() { + public boolean DataType.Java_needInstance() { throw new Error(this.getClass().getName() + ".Java_needInstance()" + " not declared"); @@ -886,7 +886,7 @@ aspect Java_Class { } public boolean UserType.Java_needInstance() { - return decl().getType().Java_needInstance(); + return decl().getDataType().Java_needInstance(); } public boolean StructType.Java_needInstance() { @@ -894,10 +894,10 @@ aspect Java_Class { } public boolean ArrayType.Java_needInstance() { - return getType().Java_needInstance(); + return getDataType().Java_needInstance(); } - public boolean Type.Java_isPrimitive() { + public boolean DataType.Java_isPrimitive() { return false; } @@ -905,7 +905,7 @@ aspect Java_Class { return true; } - public void Type.Java_emitInstance(Java_env env) { + public void DataType.Java_emitInstance(Java_env env) { throw new Error(this.getClass().getName() + ".Java_emitInstance(Java_env env)" + " not declared"); @@ -918,7 +918,7 @@ aspect Java_Class { } public void ArrayType.Java_emitInstance(Java_env env) { - getType().Java_emitInstance(env); + getDataType().Java_emitInstance(env); } public void StructType.Java_emitInstance(Java_env env) { @@ -927,7 +927,7 @@ aspect Java_Class { env.indent(); } for (int i = 0 ; i < getNumField() ; i++) { - getField(i).getType().Java_emitInstance(env); + getField(i).getDataType().Java_emitInstance(env); } for (int i = 0 ; i < getNumField() ; i++) { getField(i).Java_emitField(env); @@ -944,11 +944,11 @@ aspect Java_Class { public void Field.Java_emitField(Java_env env) { env.print("public "); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.println(" " + getName() + ";"); } - public void Type.Java_emitType(Java_env env) { + public void DataType.Java_emitType(Java_env env) { throw new Error(this.getClass().getName() + ".Java_emitType(Java_env env)" + " not declared"); @@ -967,11 +967,11 @@ aspect Java_Class { } public void UserType.Java_emitType(Java_env env) { - decl().getType().Java_emitType(env); + decl().getDataType().Java_emitType(env); } public void ArrayType.Java_emitType(Java_env env){ - getType().Java_emitType(env); + getDataType().Java_emitType(env); for (int i = 0 ; i < getNumExp() ; i++) { env.print("[]"); } @@ -1047,14 +1047,14 @@ aspect Java_Info { public void TypeDecl.Java_info(Java_env env) { env.print(",Java,typedef," + getName() + ","); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.print(",not_applicable_for_Java"); env.println(); } public void SampleDecl.Java_info(Java_env env) { env.print(",Java,sample," + getName() + ","); - getType().Java_emitType(env); + getDataType().Java_emitType(env); env.print(",not_applicable_for_Java"); env.println(); } diff --git a/compiler/2014/LabComm.ast b/compiler/2014/LabComm.ast index d3d5e592fc95cb38bf9fd3844d8b3ad2d3cb9081..e861eafaf9986a2d93241236faa8aca65241f6ad 100644 --- a/compiler/2014/LabComm.ast +++ b/compiler/2014/LabComm.ast @@ -1,6 +1,6 @@ Program ::= Decl*; -abstract Decl ::= Type <Name:String> /Signature/; +abstract Decl ::= DataType <Name:String> /Signature/; TypeDecl : Decl; SampleDecl : Decl; @@ -17,16 +17,16 @@ IntSignatureLine : DataSignatureLine ::= <Data:int>; StringSignatureLine : DataSignatureLine ::= <Data:String>; TypeRefSignatureLine : SignatureLine ::= Decl; -Field ::= Type <Name:String>; +Field ::= DataType <Name:String>; -abstract Type; -VoidType : Type; -//SampleRefType : Type; -PrimType : Type ::= <Name:String> <Token:int>; -UserType : Type ::= <Name:String>; -StructType : Type ::= Field*; -ParseArrayType : Type ::= Type Dim*; -abstract ArrayType : Type ::= Type Exp*; +abstract DataType; +VoidType : DataType; +//SampleRefType : DataType; +PrimType : DataType ::= <Name:String> <Token:int>; +UserType : DataType ::= <Name:String>; +StructType : DataType ::= Field*; +ParseArrayType : DataType ::= DataType Dim*; +abstract ArrayType : DataType ::= DataType Exp*; VariableArrayType : ArrayType; FixedArrayType : ArrayType; diff --git a/compiler/2014/LabCommParser.parser b/compiler/2014/LabCommParser.parser index e7fb759c1511b95fff7fc3a05b18ba2b1e75e850..7719936e3d7fa5f36561937cba2bb8afb945bcde 100644 --- a/compiler/2014/LabCommParser.parser +++ b/compiler/2014/LabCommParser.parser @@ -73,7 +73,7 @@ SampleDecl sample_decl = {: return new SampleDecl(new ParseArrayType(t, d), IDENTIFIER); :} ; -Type type = +DataType type = prim_type.p {: return p; :} | user_type.u {: return u; :} | struct_type.s {: return s; :} diff --git a/compiler/2014/NameAnalysis.jrag b/compiler/2014/NameAnalysis.jrag index 92dbb41d52c56b4f533649831dda41e60aea5d0a..f9012108517f577686270a3fcbc6a7400a0121aa 100644 --- a/compiler/2014/NameAnalysis.jrag +++ b/compiler/2014/NameAnalysis.jrag @@ -34,8 +34,8 @@ aspect NameAnalysis { return null; } - syn TypeDecl Type.decl(); - eq Type.decl() = null; + syn TypeDecl DataType.decl(); + eq DataType.decl() = null; eq UserType.decl() = lookupType(getName()); eq PrimType.decl() = null; //HERE BE DRAGONS XXX diff --git a/compiler/2014/PrettyPrint.jrag b/compiler/2014/PrettyPrint.jrag index 3808c952309d375c828023c199472d2e6b9e43de..35904daa2280e1c14acd35ec8172ea59e9570986 100644 --- a/compiler/2014/PrettyPrint.jrag +++ b/compiler/2014/PrettyPrint.jrag @@ -27,24 +27,24 @@ aspect PrettyPrint { // Pretty print declarations public void TypeDecl.pp(PrintStream out) { out.print("typedef "); - getType().ppIdentifier(out, getName()); + getDataType().ppIdentifier(out, getName()); out.println(";"); } public void SampleDecl.pp(PrintStream out) { out.print("sample "); - getType().ppIdentifier(out, getName()); + getDataType().ppIdentifier(out, getName()); out.println(";"); } public void Field.pp(PrintStream out) { out.print(pp_indent()); - getType().ppIdentifier(out, getName()); + getDataType().ppIdentifier(out, getName()); out.println(";"); } // Pretty print variable of a given type - public void Type.ppIdentifier(PrintStream out, String id) { + public void DataType.ppIdentifier(PrintStream out, String id) { ppPrefix(out); out.print(" "); out.print(id); @@ -58,7 +58,7 @@ aspect PrettyPrint { } // PrettyPrint prefix type info - public void Type.ppPrefix(PrintStream out) { + public void DataType.ppPrefix(PrintStream out) { throw new Error(this.getClass().getName() + ".ppPrefix(PrintStream out)" + " not declared"); @@ -81,7 +81,7 @@ aspect PrettyPrint { } public void ArrayType.ppPrefix(PrintStream out) { - getType().ppPrefix(out); + getDataType().ppPrefix(out); } public void StructType.ppPrefix(PrintStream out) { @@ -94,7 +94,7 @@ aspect PrettyPrint { } // PrettyPrint suffix type info (array dimensions) - public void Type.ppSuffix(PrintStream out) { } + public void DataType.ppSuffix(PrintStream out) { } public void ArrayType.ppSuffix(PrintStream out) { out.print("["); @@ -103,7 +103,7 @@ aspect PrettyPrint { getExp(i).pp(out); } out.print("]"); - getType().ppSuffix(out); + getDataType().ppSuffix(out); } public void IntegerLiteral.pp(PrintStream out) { diff --git a/compiler/2014/Python_CodeGen.jrag b/compiler/2014/Python_CodeGen.jrag index 1731c941a6fa4e51495f3dbc7fda1c25451980e1..cc238d798d307e574e8b9e7ee9f20ff625c43a4d 100644 --- a/compiler/2014/Python_CodeGen.jrag +++ b/compiler/2014/Python_CodeGen.jrag @@ -117,7 +117,7 @@ aspect PythonTypes { env.indent(); env.println("typedef = labcomm2014.typedef('" + getName() + "',"); env.indent(); - getType().Python_genTypedef(env); + getDataType().Python_genTypedef(env); env.unindent(); env.println(")"); env.unindent(); @@ -129,12 +129,12 @@ aspect PythonTypes { env.indent(); env.println("signature = labcomm2014.sample('" + getName() + "', "); env.indent(); - getType().Python_genSignature(env); + getDataType().Python_genSignature(env); env.unindent(); env.println(")"); env.println("typedef = labcomm2014.sample('" + getName() + "', "); env.indent(); - getType().Python_genTypedef(env); + getDataType().Python_genTypedef(env); env.unindent(); env.println(")"); env.unindent(); @@ -142,10 +142,10 @@ aspect PythonTypes { } public void UserType.Python_genSignature(Python_env env) { - lookupType(getName()).getType().Python_genSignature(env); + lookupType(getName()).getDataType().Python_genSignature(env); } - public void Type.Python_genSignature(Python_env env) { + public void DataType.Python_genSignature(Python_env env) { throw new Error(this.getClass().getName() + ".Python_genSignature(Python_env env)" + " not declared"); @@ -173,7 +173,7 @@ aspect PythonTypes { } env.println("],"); env.indent(); - getType().Python_genSignature(env); + getDataType().Python_genSignature(env); env.print(")"); env.unindent(); } @@ -195,7 +195,7 @@ aspect PythonTypes { public void Field.Python_genSignature(Python_env env) { env.print("('" + getName() + "', "); - getType().Python_genSignature(env); + getDataType().Python_genSignature(env); env.print(")"); } @@ -203,7 +203,7 @@ aspect PythonTypes { env.println(getName() + ".typedef"); } - public void Type.Python_genTypedef(Python_env env) { + public void DataType.Python_genTypedef(Python_env env) { throw new Error(this.getClass().getName() + ".Python_genTypedef(Python_env env)" + " not declared"); @@ -231,7 +231,7 @@ aspect PythonTypes { } env.println("],"); env.indent(); - getType().Python_genTypedef(env); + getDataType().Python_genTypedef(env); env.print(")"); env.unindent(); } @@ -253,7 +253,7 @@ aspect PythonTypes { public void Field.Python_genTypedef(Python_env env) { env.print("('" + getName() + "', "); - getType().Python_genTypedef(env); + getDataType().Python_genTypedef(env); env.print(")"); } diff --git a/compiler/2014/RAPID_CodeGen.jrag b/compiler/2014/RAPID_CodeGen.jrag index b367ee5720eb34ff4cd308cd4eeab56a6d1002cd..dc3f343ac66067df0ddc746f9814e1b3963cb663 100644 --- a/compiler/2014/RAPID_CodeGen.jrag +++ b/compiler/2014/RAPID_CodeGen.jrag @@ -126,7 +126,7 @@ aspect RAPID_CodeGen { public void SampleDecl.RAPID_gen(RAPID_env env) { // Add type declarations - String fullName = getType().RAPID_AddType(env, getName()); + String fullName = getDataType().RAPID_AddType(env, getName()); // Add signature constants String sig_len_name = "signature_len_" + getName(); String sig_name = "signature_" + getName(); @@ -167,7 +167,7 @@ aspect RAPID_CodeGen { params.add("VAR LabComm_Stream st"); params.add("VAR LabComm_Decoder_Sample s"); stmts.add("VAR " + fullName + " tmp;"); - getType().RAPID_AddDecodeInstr(env, stmts, "tmp", "st"); + getDataType().RAPID_AddDecodeInstr(env, stmts, "tmp", "st"); stmts.add("% s.handler % tmp;"); env.addProc("Decode_And_Handle_" + getName(), params, stmts); @@ -201,11 +201,11 @@ aspect RAPID_CodeGen { params.add("VAR LabComm_Encoder_Sample s"); params.add("VAR " + fullName + " val"); stmts.add("Encode_Packed st, s.user_id;"); - getType().RAPID_AddEncodeInstr(env, stmts, "val", "st"); + getDataType().RAPID_AddEncodeInstr(env, stmts, "val", "st"); env.addProc("Encode_" + getName(), params, stmts); } - public String Type.RAPID_AddType(RAPID_env env, String name) { + public String DataType.RAPID_AddType(RAPID_env env, String name) { throw new UnsupportedOperationException("RAPID code generation does (currently) not support "+getClass().getSimpleName()); } @@ -214,7 +214,7 @@ aspect RAPID_CodeGen { for (int i = 0; i < getNumField(); i++) { Field f = getField(i); components.add( - f.getType().RAPID_AddType(env, name + "_" + f.getName()) + + f.getDataType().RAPID_AddType(env, name + "_" + f.getName()) + " " + f.getName() + ";"); } String typeName = env.addRecord(name, components); @@ -222,7 +222,7 @@ aspect RAPID_CodeGen { } public String FixedArrayType.RAPID_AddType(RAPID_env env, String name) { - String typeName = getType().RAPID_AddType(env, name + "_e"); + String typeName = getDataType().RAPID_AddType(env, name + "_e"); if (getNumExp() > 1) { throw new UnsupportedOperationException("RAPID generation only (currently) supports one-dimensional arrays"); } @@ -251,7 +251,7 @@ aspect RAPID_CodeGen { throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName()); } - public void Type.RAPID_AddDecodeInstr(RAPID_env env, + public void DataType.RAPID_AddDecodeInstr(RAPID_env env, java.util.List<String> instrs, String var_name, String stream_name) { throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName()); @@ -261,7 +261,7 @@ aspect RAPID_CodeGen { java.util.List<String> instrs, String var_name, String stream_name) { for (int i = 0; i < getNumField(); i++) { - getField(i).getType().RAPID_AddDecodeInstr(env, instrs, + getField(i).getDataType().RAPID_AddDecodeInstr(env, instrs, var_name + "." + getField(i).getName(), stream_name); } } @@ -270,7 +270,7 @@ aspect RAPID_CodeGen { java.util.List<String> instrs, String var_name, String stream_name) { for (int i = 1; i <= getExp(0).RAPID_getValue(); i++) { - getType().RAPID_AddDecodeInstr(env, instrs, + getDataType().RAPID_AddDecodeInstr(env, instrs, var_name + ".e" + i, stream_name); } } @@ -305,7 +305,7 @@ aspect RAPID_CodeGen { } } - public void Type.RAPID_AddEncodeInstr(RAPID_env env, + public void DataType.RAPID_AddEncodeInstr(RAPID_env env, java.util.List<String> instrs, String var_name, String stream_name) { throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName()); @@ -315,7 +315,7 @@ aspect RAPID_CodeGen { java.util.List<String> instrs, String var_name, String stream_name) { for (int i = 0; i < getNumField(); i++) { - getField(i).getType().RAPID_AddEncodeInstr(env, instrs, + getField(i).getDataType().RAPID_AddEncodeInstr(env, instrs, var_name + "." + getField(i).getName(), stream_name); } } @@ -324,7 +324,7 @@ aspect RAPID_CodeGen { java.util.List<String> instrs, String var_name, String stream_name) { for (int i = 1; i <= getExp(0).RAPID_getValue(); i++) { - getType().RAPID_AddEncodeInstr(env, instrs, + getDataType().RAPID_AddEncodeInstr(env, instrs, var_name + ".e" + i, stream_name); } } diff --git a/compiler/2014/Signature.jrag b/compiler/2014/Signature.jrag index b32e53580aa900e31357333904aeeb115180bcf0..f3f0119cadfc0968338b4d21c351f19ec2489691 100644 --- a/compiler/2014/Signature.jrag +++ b/compiler/2014/Signature.jrag @@ -159,14 +159,14 @@ aspect Signature { public void TypeDecl.genSigLineForDecl(SignatureList list, boolean decl) { if(decl){ - getType().genSigLineForDecl(list, decl); + getDataType().genSigLineForDecl(list, decl); }else{ list.addTypeRef(this, "//TODO (from list.addTypeRef)"); } } public void SampleDecl.genSigLineForDecl(SignatureList list, boolean decl) { - getType().genSigLineForDecl(list, decl); + getDataType().genSigLineForDecl(list, decl); } public void VoidType.genSigLineForDecl(SignatureList list, boolean decl) { @@ -197,7 +197,7 @@ aspect Signature { for (int i = 0 ; i < getNumExp() ; i++) { getExp(i).genSigLineForDecl(list, false); } - getType().genSigLineForDecl(list, false); + getDataType().genSigLineForDecl(list, false); list.unindent(); list.add(null, "}"); } @@ -215,7 +215,7 @@ aspect Signature { public void Field.genSigLineForDecl(SignatureList list, boolean decl) { list.addString(getName(), signatureComment()); - getType().genSigLineForDecl(list, decl); + getDataType().genSigLineForDecl(list, decl); } public void IntegerLiteral.genSigLineForDecl(SignatureList list, boolean decl) { diff --git a/compiler/2014/TypeCheck.jrag b/compiler/2014/TypeCheck.jrag index a640ace5098013bef6cad31767a96220aa66b8a7..4d8c40a137ce92a5310d9e957dfdc921301f5cdd 100644 --- a/compiler/2014/TypeCheck.jrag +++ b/compiler/2014/TypeCheck.jrag @@ -6,30 +6,30 @@ aspect TypeCheck { // void is not allowed as a field in a struct or an array element - syn boolean Type.isNull(); - eq Type.isNull() = false; + syn boolean DataType.isNull(); + eq DataType.isNull() = false; eq VoidType.isNull() = true; eq UserType.isNull() = decl().isNull(); syn boolean TypeDecl.isNull(); - eq TypeDecl.isNull() = getType().isNull(); + eq TypeDecl.isNull() = getDataType().isNull(); public void ASTNode.nullTypeCheck() {} public void Field.nullTypeCheck() { - if(getType().isNull()) { + if(getDataType().isNull()) { error("field " + getName() + " of struct "+ declName()+ " may not be of type void"); } } public void ParseArrayType.nullTypeCheck() { - if(getType().isNull()) { + if(getDataType().isNull()) { error("elements of array "+declName()+" may not be of type void"); } } public void ArrayType.nullTypeCheck() { - if(getType().isNull()) { + if(getDataType().isNull()) { error("elements of array "+declName()+" may not be of type void"); } } diff --git a/compiler/2014/TypeReferences.jrag b/compiler/2014/TypeReferences.jrag index 0a7cd9b0a1cd9a0a92ab49f4f4c509eb2a16fe56..1664ecec530cd515fe2ae1fb5d4c9eb4c12009a5 100644 --- a/compiler/2014/TypeReferences.jrag +++ b/compiler/2014/TypeReferences.jrag @@ -1,11 +1,11 @@ aspect User_Types { - syn String Type.getTypeName(); - eq Type.getTypeName() = getClass().getName(); + syn String DataType.getTypeName(); + eq DataType.getTypeName() = getClass().getName(); eq PrimType.getTypeName() = getName(); eq UserType.getTypeName() = getName(); - syn boolean Type.isUserType(); - eq Type.isUserType() = false; + syn boolean DataType.isUserType(); + eq DataType.isUserType() = false; eq UserType.isUserType() = true; } @@ -14,8 +14,8 @@ aspect Type_References { // The dependencies on other type declarations for a Decl. coll Set<Decl> Decl.type_dependencies() [new HashSet<Decl>()] with add; - Field contributes ((UserType)getType()).decl() - when parentDecl() != null && getType().isUserType() + Field contributes ((UserType)getDataType()).decl() + when parentDecl() != null && getDataType().isUserType() to Decl.type_dependencies() for parentDecl(); @@ -24,8 +24,8 @@ aspect Type_References { to Decl.type_dependencies() for parentDecl(); /* - Field contributes getType().decl() - when parentDecl() != null && getType().isLeafType() + Field contributes getDataType().decl() + when parentDecl() != null && getDataType().isLeafType() to Decl.type_dependencies() for parentDecl(); */ diff --git a/doc/tech_report.tex b/doc/tech_report.tex index 62a2f2e086b31edd1dd333342d7309d293f73939..883fd4c3f951339188b1ee0f63372c97a36c41c0 100644 --- a/doc/tech_report.tex +++ b/doc/tech_report.tex @@ -780,20 +780,20 @@ Avro has multiple codecs (for compression of the data): \begin{verbatim} Program ::= Decl*; -abstract Decl ::= Type <Name:String>; +abstract Decl ::= DataType <Name:String>; TypeDecl : Decl; SampleDecl : Decl; -Field ::= Type <Name:String>; +Field ::= DataType <Name:String>; -abstract Type; -VoidType : Type; -SampleRefType : Type; -PrimType : Type ::= <Name:String> <Token:int>; -UserType : Type ::= <Name:String>; -StructType : Type ::= Field*; -ParseArrayType : Type ::= Type Dim*; -abstract ArrayType : Type ::= Type Exp*; +abstract DataType; +VoidType : DataType; +SampleRefType : DataType; +PrimType : DataType ::= <Name:String> <Token:int>; +UserType : DataType ::= <Name:String>; +StructType : DataType ::= Field*; +ParseArrayType : DataType ::= DataType Dim*; +abstract ArrayType : DataType ::= DataType Exp*; VariableArrayType : ArrayType; FixedArrayType : ArrayType; diff --git a/lib/java/se/lth/control/labcomm2014/ASTbuilder.java b/lib/java/se/lth/control/labcomm2014/ASTbuilder.java index 442afb86c2faad21eb76958685f3c6607f1bc1fd..8e36736dfa212d60692ddf386a01db76771da289 100644 --- a/lib/java/se/lth/control/labcomm2014/ASTbuilder.java +++ b/lib/java/se/lth/control/labcomm2014/ASTbuilder.java @@ -21,7 +21,7 @@ import se.lth.control.labcomm2014.compiler.Program; import se.lth.control.labcomm2014.compiler.Decl; import se.lth.control.labcomm2014.compiler.TypeDecl; import se.lth.control.labcomm2014.compiler.SampleDecl; -import se.lth.control.labcomm2014.compiler.Type; +import se.lth.control.labcomm2014.compiler.DataType; import se.lth.control.labcomm2014.compiler.VoidType; import se.lth.control.labcomm2014.compiler.PrimType; import se.lth.control.labcomm2014.compiler.UserType; @@ -41,11 +41,11 @@ import se.lth.control.labcomm2014.compiler.VariableSize; */ public class ASTbuilder implements TypeDefParser.ParsedSymbolVisitor { - private LinkedList<Type> typeStack; + private LinkedList<DataType> typeStack; private LinkedList<Field> fieldStack; public ASTbuilder() { - this.typeStack = new LinkedList<Type>(); + this.typeStack = new LinkedList<DataType>(); this.fieldStack = new LinkedList<Field>(); }