home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / MUI / MUIBuilder22.lha / MUIBuilder / MB / E / sources / GenCodeE.e < prev    next >
Encoding:
Text File  |  1995-02-06  |  3.4 KB  |  142 lines

  1. OPT OSVERSION=37
  2. OPT PREPROCESS
  3.  
  4.  
  5. ->*****
  6. ->** External modules
  7. ->*****
  8. MODULE 'muibuilder' , 'libraries/muibuilder'
  9. MODULE 'utility/tagitem'
  10.  
  11. MODULE '*.config'
  12. MODULE '*MUIStrings'
  13. MODULE '*AuxProcs'
  14. MODULE '*Variable'
  15. MODULE '*GUIFile'
  16.  
  17.  
  18. ->*****
  19. ->** Exception handling
  20. ->*****
  21. RAISE    "LIB"    IF    OpenLibrary()    =    NIL    ,
  22.         "MBtf"    IF    Mb_Open()        =    NIL    ,
  23.         "MEM"    IF    String()        =    NIL
  24.  
  25.  
  26. /*******************
  27. ** Main procedure **
  28. *******************/
  29. PROC main() HANDLE
  30.  
  31.     DEF application = FALSE , declarations = FALSE , code = FALSE
  32.     DEF notifications = FALSE , environment = FALSE , locale = FALSE
  33.     DEF filename : PTR TO CHAR , catalog_filename : PTR TO CHAR
  34.     DEF catalog_name : PTR TO CHAR , getstring_func : PTR TO CHAR
  35.     DEF number_vars , vars : PTR TO variable , ident_length_max
  36.     DEF genfile = NIL : PTR TO gui_file
  37.     DEF tmp_string : PTR TO CHAR
  38.  
  39.     muibbase := OpenLibrary( 'muibuilder.library' , 0 )
  40.     Mb_Open()
  41.  
  42.     Mb_GetA( [    MUIB_VARNUMBER        , {number_vars}            ,
  43.                 MUIB_APPLICATION    , {application}            ,
  44.                 MUIB_DECLARATIONS    , {declarations}        ,
  45.                 MUIB_CODE            , {code}                ,
  46.                 MUIB_NOTIFICATIONS    , {notifications}        ,
  47.                 MUIB_ENVIRONMENT    , {environment}            ,
  48.                 MUIB_LOCALE            , {locale}                ,
  49.                 MUIB_FILENAME        , {filename}            ,
  50.                 MUIB_CATALOGNAME    , {catalog_filename}    ,
  51.                 MUIB_GETSTRINGNAME    , {getstring_func}        ,
  52.                 TAG_END ] )
  53.  
  54. #ifdef EV30
  55.     tmp_string := filename
  56.     filename := String( StrLen( filename ) + 3 )
  57.     StringF( filename , '\s.em' , tmp_string )
  58. #endif
  59.  
  60. #ifdef EV31
  61.     tmp_string := filename
  62.     filename := String( StrLen( filename ) + 2 )
  63.     StringF( filename , '\s.e' , tmp_string )
  64. #endif
  65.  
  66.     catalog_filename := FilePart( catalog_filename )
  67.     catalog_name := String( StrLen( catalog_filename ) + 5 )
  68.     StringF( catalog_name , 'catalog_\s' , catalog_filename )
  69.  
  70.     vars , ident_length_max := init_variables( number_vars )
  71.  
  72.     NEW genfile.open( filename , number_vars , vars , ident_length_max )
  73.  
  74.     IF declarations
  75.  
  76.         IF environment THEN genfile.put_header( application , locale )
  77.         genfile.put_aux_objects( environment , application )
  78.         genfile.put_main_object( environment )
  79.         genfile.put_constants( environment )
  80.         genfile.put_global_vars( environment , locale , catalog_name )
  81.  
  82.     ENDIF
  83.  
  84.     IF code
  85.  
  86.         IF environment THEN genfile.put_create_declaration( application )
  87.         IF environment THEN genfile.put_create_local_defs()
  88.         IF environment THEN genfile.put_create_initialisations( locale , getstring_func )
  89.         genfile.put_code( getstring_func , muistrings_contents() )
  90.         IF environment THEN genfile.put_create_end()
  91.         IF environment THEN genfile.put_dispose_method()
  92.  
  93.     ENDIF
  94.  
  95.     IF notifications
  96.  
  97.         IF environment THEN genfile.put_init_notifications_declaration()
  98.         genfile.put_notifications( muistrings_contents() , getstring_func )
  99.         IF environment THEN genfile.put_init_notifications_end()
  100.  
  101.     ENDIF
  102.  
  103.     IF environment AND locale THEN genfile.put_aux_funcs()
  104.  
  105. EXCEPT DO
  106.  
  107.     SELECT exception
  108.  
  109.         CASE "MEM"
  110.  
  111.             error_request( 'Out of memory !' )
  112.  
  113.         CASE "LIB"
  114.  
  115.             error_request( 'Can''t open muibuilder.library !' )
  116.  
  117.         CASE "MBtf"
  118.  
  119.             error_request( 'Unable to get temporary files !' )
  120.  
  121.         CASE "OPEN"
  122.  
  123.             error_request( 'Unable to open file to generate !' )
  124.  
  125.         CASE "OUT"
  126.  
  127.             error_request( 'Trouble writing file to generate !' )
  128.  
  129.     ENDSELECT
  130.  
  131.     IF genfile    THEN genfile.close()
  132.     IF muibbase    THEN Mb_Close()
  133.     IF muibbase    THEN CloseLibrary( muibbase )
  134.  
  135. ENDPROC
  136.  
  137.  
  138. /*******************
  139. ** String version **
  140. *******************/
  141. CHAR '$VER: GenCodeE 2.3 (5.2.95)' , 0
  142.