home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / psform.zip / GLOBALS.H < prev    next >
Text File  |  1995-03-23  |  10KB  |  228 lines

  1. /******************************************************************************
  2. *                                                                             *
  3. *  Datei:  GLOBALS.H                                                          *
  4. *                                                                             *
  5. ******************************************************************************/
  6.  
  7. #include <stdio.h>
  8.  
  9. /******************************************************************************
  10. *                                                                             *
  11. *      Typ BOOLEAN                                                            *
  12. *                                                                             *
  13. ******************************************************************************/
  14.  
  15. #ifndef BOOLEAN
  16.   #define TRUE    1
  17.   #define FALSE   0
  18. #endif
  19.  
  20. /******************************************************************************
  21. *                                                                             *
  22. *      Default-Werte                                                          *
  23. *                                                                             *
  24. ******************************************************************************/
  25.  
  26. #define VARANFANG               "{"
  27. #define VARENDE                 "}"
  28. #define BLOCK_ANFANG            "["
  29. #define BLOCK_ENDE              "]"
  30. #define FUELL_ZEICHEN           " "
  31. #define SPEZ_FUELL_ZEICHEN      "\""
  32. #define SEPARATOR_ZEICHEN       ";"
  33. #define VARIABLENTRENNUNG       ";"              /*BUGBUG  überprüfen auf Notwendigkeit */
  34.  
  35. #define INI_NAME_WERT_TRENNER   "="
  36. #define STRING_1                "\""  /* !! u.a. Verwendung in SYNTAX.H      */
  37. #define STRING_2                "'"
  38. #define COMMENT_ANFANG          "/*"
  39. #define COMMENT_ENDE            "*/"
  40. #define COMMENT_ZEILE           "//"
  41.  
  42. #define MAXDATEI                 13   /* Max.Dateilaenge nach DOS-Konvention */
  43. #define MAXBEFEHL               255   /* MAXBEFEHL > 2 * MAXDATEI            */
  44. #define MAXBUFFER               255   /* Max. nutzbare Pufferlänge           */
  45. #define MAX_KURZ_LAENGE         3     /* Max. Länge der Kurznamen            */
  46.  
  47. #define SPEZIFIKATIONSTRENNUNG  ","
  48.  
  49. #define FORMULARDATEI "FormularDatei"
  50. #define PROGRAMMNAME  "ProgrammName"
  51. #define FELDZEICHEN   "Feldzeichen"
  52. #define SEPARATOR     "Separatorzeichen"
  53. #define KURZNAME      "Kurzname"
  54. #define FUNKTIONEN    "Funktionen"
  55. #define FUELL         "Füllzeichen"
  56.  
  57. #define POSTSCRIPT_TYP     1
  58. #define SPEZIFIKATIONS_TYP 2
  59.  
  60. // ASCII-Codierung
  61. #define BACKSLASH          92
  62. #define ANFUEHRUNGSZEICHEN 34
  63. #define SEMIKOLON          59
  64. #define BLANK              32
  65. #define BUFFER_CR_CHAR     127
  66.  
  67.  
  68. char *VARBUFFER;
  69.  
  70.  
  71. /******************************************************************************
  72. *                                                                             *
  73. *      Variablen für Laufkontrolle der Formulare                              *
  74. *                                                                             *
  75. ******************************************************************************/
  76. int FORMANZ  = 0;            /*  Anzahl der Formulare                        */
  77. int FORMCTRL = 0;            /*  Flag zur Steuerung                          */
  78. int ANZCTRL  = 0;
  79.  
  80. /******************************************************************************
  81. *                                                                             *
  82. *      Typen für die Spezifikationsdaten                                      *
  83. *                                                                             *
  84. ******************************************************************************/
  85.  
  86. typedef struct spez_daten{
  87.    short typ;                               // Typ
  88.    char  ausrichtung[2];
  89.    char  fuellzeichen[2];
  90.    // Typ 1
  91.    int   position;                          // Position
  92.    int   laenge;                            // Länge
  93.    // Typ 2
  94.    char konstante[80];
  95.    // Typ 3
  96.    char funktion[80];
  97.    // Typ 4 
  98.    char ininame[80];
  99.    char wert[80];
  100.    // Typ 6 und Typ 9
  101.    int index;
  102. } spez_daten;
  103.  
  104.  
  105. typedef struct posliste{
  106.    long int offset;
  107.    char varname[80];
  108.    int laenge;
  109.    spez_daten daten;
  110.    struct posliste *next;
  111. } Posliste;
  112.  
  113. int fkt_count = 0;
  114.  
  115. /******************************************************************************
  116. *                                                                             *
  117. *      verwendete Zeichen                                                     *
  118. *                                                                             *
  119. ******************************************************************************/
  120. char anfangszeichen[2];
  121. char endezeichen[2];
  122. char fuellzeichen[2];
  123. char separator[2];
  124.  
  125. /******************************************************************************
  126. *                                                                             *
  127. *      Typ für die Liste der Funktionen / Kurznamen                           *
  128. *                                                                             *
  129. ******************************************************************************/
  130.  
  131. typedef struct liste{
  132.    char *ptr;
  133.    struct liste *next;
  134. } liste;
  135.  
  136. liste *head = NULL;
  137.  
  138. int name_count = 0;
  139.  
  140. /******************************************************************************
  141. *                                                                             *
  142. *      Prototypen  GEN_READ.C                                                 *
  143. *                                                                             *
  144. ******************************************************************************/
  145. int        prf_kurzname(char *feld );
  146. int        conv_ps( char *daten );
  147. int        getfiles( char *daten);
  148. int        getfunc( char *daten, FILE *file);
  149. int        del_comments( char *daten);
  150. Posliste   *typ_3_lesen( char *daten);
  151. void       typ_3_global( char *daten, FILE *fp);
  152. void       typ_3_fest( char *daten, FILE *fp);
  153. int        find_x(char *ptr);
  154. int        find_x_vor(char *ptr);
  155.  
  156. /******************************************************************************
  157. *                                                                             *
  158. *      Prototypen  DR_READ.C                                                  *
  159. *                                                                             *
  160. ******************************************************************************/
  161. char       *offset_kurz ( char *buffer, Posliste *liste );
  162. int        read_var( const char *datei, int typ);
  163. int        formanz(FILE *fp, int typ);
  164.  
  165. /******************************************************************************
  166. *                                                                             *
  167. *      Prototypen  ALLG.C                                                     *
  168. *                                                                             *
  169. ******************************************************************************/
  170. int        anfang (char *feld );
  171. int        ende (char *feld );
  172. char       *buf_file( const char *datei );
  173. int        isdruck( int c );
  174. liste      *create_element(void);
  175. void       add_element(liste *element);
  176. void       del_liste( liste *liste);
  177. char       *aus_und_fuellz( Posliste *new_element, char *feld, char *buffer, int *i);
  178. Posliste   *create_posliste_element(void);
  179.  
  180. /******************************************************************************
  181. *                                                                             *
  182. *      Prototypen  GEN_WRIT.C                                                 *
  183. *                                                                             *
  184. ******************************************************************************/
  185. void       write_buf( char *daten, FILE *file, int typ );
  186. void       write_kurz_namen(FILE *fp);
  187.  
  188. /******************************************************************************
  189. *                                                                             *
  190. *      Prototypen                                                             *
  191. *                                                                             *
  192. ******************************************************************************/
  193.  
  194. void typ_3_druck(Posliste *liste, FILE *druckdatei);
  195.  
  196. int        spez_buf(char *daten, Posliste *liste);
  197. int        get_var(char *daten, Posliste *liste );
  198. void       ini_liste( Posliste *liste);
  199. int        listcpy( Posliste *liste1, Posliste *liste2);
  200. int        var_print( const char *vardatei, const char *druckdatei, char *daten, Posliste *liste);
  201. int        read_ini( char *inidaten, Posliste *liste);
  202. void       del_posliste( Posliste *liste);
  203. char       *f_pos(int position, int laenge);
  204. char       *f_index1(int index);
  205. char       *f_index2(int index);
  206. void       ufuell(char *varstring, Posliste *liste, FILE *fp);
  207. void       fsizeprf(char *daten, char *fkt);
  208.             
  209. /******************************************************************************
  210. *                                                                             *
  211. *      Funktionen für Spezifikationsprüfung                                   *
  212. *                                                                             *
  213. ******************************************************************************/
  214.  
  215. int        check_spez( char *datei );
  216. char       *commentprf(char *buffer);
  217. void       errfile( char *datei );
  218. int        iszeichen( int c );
  219. char       *trennprf(char *buffer);
  220. char       *intprf(char *buffer);
  221. char       *nameprf(char *buffer);
  222. char       *textprf(char *buffer);
  223. char       *ausgabeprf(char *buffer);
  224. char       *ausrichtungprf(char *buffer);
  225. char       *feldprf(char *buffer);
  226. char       *kurzprf(char *buffer);
  227. char       *zeichenprf(char *buffer);
  228.