From 57c84e53c222a052c1124b548ed129452eb8f314 Mon Sep 17 00:00:00 2001 From: Sven Gestegard Robertz <sven.robertz@cs.lth.se> Date: Fri, 30 Jan 2015 14:59:41 +0100 Subject: [PATCH] Send TYPE_DEF also for primitive types --- compiler/2014/Signature.jrag | 14 +++++++------- examples/user_types/ExampleDecoder.cs | 12 +++++++++++- lib/c/2014/test/test_labcomm_generated_encoding.c | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/compiler/2014/Signature.jrag b/compiler/2014/Signature.jrag index 5395095..53d59b6 100644 --- a/compiler/2014/Signature.jrag +++ b/compiler/2014/Signature.jrag @@ -184,17 +184,17 @@ aspect Signature { } public void UserType.genSigLineForDecl(SignatureList list, boolean decl) { - if(decl){ - //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName()); - TypeDecl thet=lookupType(getName()); - //System.out.println("************ thet: "+thet.getName() +":"+thet.getType()); - thet.genSigLineForDecl(list, decl); - }else{ +// if(decl){ +// //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName()); +// TypeDecl thet=lookupType(getName()); +// //System.out.println("************ thet: "+thet.getName() +":"+thet.getType()); +// thet.genSigLineForDecl(list, decl); +// }else{ //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName()); TypeDecl thet = lookupType(getName()); // System.out.println("************ thet: "+thet.getName() +":"+thet.getType()); list.addTypeRef(thet, null); - } +// } } public void ArrayType.genSigLineForDecl(SignatureList list, boolean decl) { diff --git a/examples/user_types/ExampleDecoder.cs b/examples/user_types/ExampleDecoder.cs index d33873b..2b4ef09 100644 --- a/examples/user_types/ExampleDecoder.cs +++ b/examples/user_types/ExampleDecoder.cs @@ -7,7 +7,10 @@ using se.lth.control.labcomm; namespace user_types { - class Decoder : twoLines.Handler, twoInts.Handler + class Decoder : twoLines.Handler, + twoInts.Handler, + theFirstInt.Handler, + theSecondInt.Handler { DecoderChannel dec; @@ -16,6 +19,8 @@ namespace user_types dec = new DecoderChannel(stream); twoLines.register(dec, this); twoInts.register(dec, this); + theFirstInt.register(dec, this); + theSecondInt.register(dec, this); try { Console.WriteLine("Running decoder."); @@ -49,6 +54,11 @@ namespace user_types Console.WriteLine("b: "+d.b); } + public void handle(int d) + { + Console.WriteLine("Got int: "+d); + } + static void Main(string[] args) { new Decoder(new FileStream(args[0], FileMode.Open)); diff --git a/lib/c/2014/test/test_labcomm_generated_encoding.c b/lib/c/2014/test/test_labcomm_generated_encoding.c index 247a69d..11f9d7c 100644 --- a/lib/c/2014/test/test_labcomm_generated_encoding.c +++ b/lib/c/2014/test/test_labcomm_generated_encoding.c @@ -215,7 +215,7 @@ int main(void) labcomm_encoder_register_generated_encoding_V(encoder); EXPECT({ 0x02, 0x06, VARIABLE(0), 0x01, 'V', 0x02, 0x11, 0x00, 0x04, 0x08, VARIABLE(1), 0x03, 'v', '_', 't', 0x02, 0x11, 0x00, - 0x04, 0x04, VARIABLE(2), 0x01, 'V', VARIABLE(1), + 0x04, 0x05, VARIABLE(2), 0x01, 'V', 0x01, VARIABLE(1), 0x05, 0x02, VARIABLE(0), VARIABLE(2) }); labcomm_encoder_ioctl(encoder, IOCTL_WRITER_RESET); -- GitLab