Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • labcomm2006
  • typedefs
  • anders.blomdell
  • typeref
  • pragma
  • compiler-refactoring
  • labcomm2013
  • v2014.4
  • v2006.0
  • v2014.3
  • v2014.2
  • v2014.1
  • v2014.0
  • v2013.0
15 results

labcomm

  • Clone with SSH
  • Clone with HTTPS
  • Forked from Anders Blomdell / LabComm
    436 commits behind the upstream repository.
    user avatar
    Sven Robertz authored
    a6e3a38d
    History
    Name Last commit Last update
    compiler
    doc
    examples
    lib
    test
    .bzrignore
    Makefile
    README
    Embryo of documentation. More details on http://wiki.cs.lth.se/moin/LabComm
    
    *** The LabComm data description language: ***
    
    Primitive types
    
      sample boolean a_boolean;
      sample byte a_byte;
      sample short a_short;
      sample int an_int;
      sample long a_long;
      sample float a_float;
      sample double a_double;
      sample string a_string;
    
    
    Arrays
    
      sample int fixed_array[3];
      sample int variable_array[_];                // Note 1
      sample int fixed_array_of_array[3][4];       // Note 2
      sample int fixed_rectangular_array[3, 4];    // Note 2
      sample int variable_array_of_array[_][_];    // Notes 1 & 2
      sample int variable_rectangular_array[_, _]; // Notes 1 & 2
    
    1 In contrast to C, LabComm supports both fixed and variable (denoted by '_') sized arrays.
    2 In contrast to Java, LabComm supports multidimensional arrays and not only arrays of arrays. 
    
    
    Structures
    
      sample struct {
        int an_int_field;
        double a_double_field;
      } a_struct;
    
    
    User defined types
    
      typedef struct {
        int field_1;
        byte field_2;
      } user_type[_];
      sample user_type a_user_type_instance;
      sample user_type another_user_type_instance;
    
    
    Example sample declaration (e.g. example.lc)
    
      sample struct {
        int sequence;
        struct {
          boolean last;
          string data;
        } line[_];
      } log_message;
    
    From an .lc file, the labcomm compiler can generate marshalling and demarshalling code
    for C, Java, Python, and C#.