From df2a18ef2c7347f964526990c326899e1f4393de Mon Sep 17 00:00:00 2001 From: Sven Gestegard Robertz <sven.robertz@cs.lth.se> Date: Wed, 25 Jun 2014 14:30:59 +0200 Subject: [PATCH] added more messages to RAPID exceptions. added an example .lc file that works for RAPID --- compiler/RAPID_CodeGen.jrag | 18 +++++++++--------- examples/simple/notypes.lc | 20 ++++++-------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/compiler/RAPID_CodeGen.jrag b/compiler/RAPID_CodeGen.jrag index 9759b94..5e49e26 100644 --- a/compiler/RAPID_CodeGen.jrag +++ b/compiler/RAPID_CodeGen.jrag @@ -94,7 +94,7 @@ aspect RAPID_CodeGen { } public void Decl.RAPID_gen(RAPID_env env) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation (currently) does not support "+getClass().getSimpleName()); } public void SampleDecl.RAPID_gen(RAPID_env env) { @@ -194,7 +194,7 @@ aspect RAPID_CodeGen { } public String Type.RAPID_AddType(RAPID_env env, String name) { - throw new UnsupportedOperationException("RAPID_AddType not implemented for "+getClass().getSimpleName()); + throw new UnsupportedOperationException("RAPID code generation does (currently) not support "+getClass().getSimpleName()); } public String StructType.RAPID_AddType(RAPID_env env, String name) { @@ -212,7 +212,7 @@ aspect RAPID_CodeGen { public String FixedArrayType.RAPID_AddType(RAPID_env env, String name) { String typeName = getType().RAPID_AddType(env, name + "_e"); if (getNumExp() > 1) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID generation only (currently) supports one-dimensional arrays"); } ArrayList<String> components = new ArrayList<String>(); for (int i = 1; i <= getExp(0).RAPID_getValue(); i++) { @@ -236,13 +236,13 @@ aspect RAPID_CodeGen { } else if (getToken() == LABCOMM_BYTE) { return "byte"; } - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName()); } public void Type.RAPID_AddDecodeInstr(RAPID_env env, java.util.List<String> instrs, String var_name, String stream_name) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName()); } public void StructType.RAPID_AddDecodeInstr(RAPID_env env, @@ -289,14 +289,14 @@ aspect RAPID_CodeGen { instrs.add("Decode_String " + stream_name + "," + var_name + ";"); break; default: - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName()); } } public void Type.RAPID_AddEncodeInstr(RAPID_env env, java.util.List<String> instrs, String var_name, String stream_name) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName()); } public void StructType.RAPID_AddEncodeInstr(RAPID_env env, @@ -343,12 +343,12 @@ aspect RAPID_CodeGen { instrs.add("Encode_String " + stream_name + "," + var_name + ";"); break; default: - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName()); } } public int Exp.RAPID_getValue() { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName()); } public int IntegerLiteral.RAPID_getValue() { diff --git a/examples/simple/notypes.lc b/examples/simple/notypes.lc index 378fae5..d85969e 100644 --- a/examples/simple/notypes.lc +++ b/examples/simple/notypes.lc @@ -6,17 +6,9 @@ sample struct { } IntString; sample struct { - double x; - double y; -} TwoDoubles; - -sample struct { - int fixed[2]; - int variable[2,_]; -} TwoArrays; - -sample struct { - int a[2]; - int b[2,3]; -} TwoFixedArrays; - + struct { + float x; + float y; + } point; + boolean b; +} nestedStruct; -- GitLab