Newer
Older
Import / research / reflection / tests / test_basic.txt

// test end of line comment

module bbb
{
  /*
         a test multi line comment block
  */

  information  /* A test comment */
  {
     description := "Module // bbb";
     version     := "1.00";
     copyright   := "Copyright (C) 2019";
     author      := "John Ryland";         // author
     checksum    := "_";                   // perhaps compiler can update this or there is a publish step
                                           // perhaps 2 checksums, one for with comments and one without
  }

  imports
  {
    xml,
    json
  }

  interface
  {
    type minute := int8 ;     // struct minute { int8 value; };
    struct bar
    {
       int16 x;
    }
    struct foo;               // forward declared
    type blah := int8;
    type blah2 := blah;
    const flt32 pi := 3.14;
    enum blah3
    {
      g,
      gg := 1,
      ggg
    }
    struct blah4
    {
      blah  a;
      int8  b;
      int16 d;
    }
    struct blah5;
    function ff(int8 a, int16 b) => int8;
    function makefoo ( ) => foo;
    function makeFooFromString ( string input ) => foo;

  }
  
  implementation
  {
    type second := int8 ;
    struct bar2
    {
       int16 x;
    }
    struct foo2;               // forward declared
    type blah6 := int8;
    type blah7 := blah;
    const flt32 pi2 := 3.14;
    enum blah8
    {
      g,
      gg := 1,
      ggg
    }
    struct blah9
    {
      blah  a;
      int8  b;
      int16 d;
    }
    struct blah10;
    function ff2(int8 a, int16 b) => int8
    {
      int8 var1;  // should this be illegal ?
    }
    function makefoo2 ( ) => foo;
    function makeFooFromString2 ( string input ) => foo;
  }
  
  tests

}