#ifndef C_TO_HTML_H

/*Farbendefinition*/
#define WEISS   "#FFFFFF"
#define ROT     "#FF0000"
#define SCHWARZ "#000000"
#define GRAU    "#B3B3B3"
#define BLAU    "#0015CE"
#define GRUEN   "#1ADD00"
#define PURPLE  "#C909DA"
#define BRAUN   "#6C403C"

/*Zeichentypen für die Funktion read_word()*/
#define ALPHABET    0x0100   /*A-Z, a-z*/
#define DEZIMAL     0x0200   /*0-9*/
#define KOMMENTAR_S 0x0300   /*Kommentaranfang*/
#define KOMMENTAR_E 0x0400   /*Kommentarende*/
#define BLOCK_S     0x0500   /*Blockanfang*/
#define BLOCK_E     0x0600   /*Blockende*/
#define QUOTING_A   0x0700   /*Stringanfang*/
#define QUOTING_E   0x0800   /*Stringende*/
#define CHAR_A      0x0900   /*Zeichenanfang*/
#define CHAR_E      0x0A00   /*Zeichenende*/
#define MASK        0x0B00   /*Maskierung*/
#define HASH        0x0C00   /*HASH*/

#define MAXWORD 512 /*Maximale Wortlänge*/

/*C-Schlüsselworte*/
static const char *C_key_words[] = {
 "auto", "break", "case",   "continue", "default",
 "do",  "else", "enum",  "for", "goto", "if",  "return", "short",
  "sizeof",  "struct", "switch", "typedef", "union",  "while" };

/*Präprozessordirektiven*/
static const char *P_key_words[] = {
 "define", "defined", "elif", "else", "endif", "error", "if",
 "ifdef", "ifndef", "include", "line", "pragma", "undef" };

/*Datentypen*/
static const char *C_typen[]= {
  "char", "const", "double", "extern", "float", "int", "long",
  "register", "short", "static", "unsigned", "void" "volatile" };

/*Anzahl der Elemente im Array*/
static const int C_keys = (sizeof(C_key_words) / sizeof(char *));
static const int P_keys = (sizeof(P_key_words) / sizeof(char *));
static const int C_typs = (sizeof(C_typen) / sizeof(char *));

/*Syntaxhiglightning, Farbdefinition*/
static char *background= WEISS;    /*Hintergrundfarbe*/
static char *textcolor = SCHWARZ;     /*Textfarbe*/
static char *keyscolor = SCHWARZ;  /*Schlüsselworte*/
static char *strings   = ROT;      /*Strings/Zeichen*/
static char *kommentar = GRAU;     /*Kommentarfarbe*/
static char *praeproze = GRUEN;    /*Präprozessordirektive*/
static char *zeichen = PURPLE;    /*einzelnes Zeichen*/
static char *types   = BRAUN;     /*Datentypen*/

/*Funktionsprototypen*/
static void c2html(void);
static int is_key_word(char *, const char *[],const int);
static int read_word(char *, int);
static void HTML_head(char *);
static void HTML_end(void);

#define C_TO_HTML_H
#endif



