#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"

/*Zeichentypen für die Funktion read_word()*/
#define ALPHABET    0x0001   /*A-Z, a-z*/
#define DEZIMAL     0x0002   /*0-9*/
#define KOMMENTAR_S 0x0003   /*Kommentaranfang*/
#define KOMMENTAR_E 0x0004   /*Kommentarende*/
#define BLOCK_S     0x0005   /*Blockanfang*/
#define BLOCK_E     0x0006   /*Blockende*/
#define QUOTING_A   0x0007   /*Stringanfang*/
#define QUOTING_E   0x0008   /*Stringende*/
#define CHAR_A      0x0009   /*Zeichenanfang*/
#define CHAR_E      0x000A   /*Zeichenende*/
#define MASK        0x000B   /*Maskierung*/

#define MAXWORD 4096 /*Maximale Wortlänge*/

/*C-Schlüsselworte*/
static const char *C_key_words[] = {
 "auto", "break", "case", "char", "const", "continue", "default",
 "do", "double", "else", "enum", "extern", "float", "for",
 "goto", "if", "int", "long", "register", "return", "short",
 "signed", "sizeof", "static", "struct", "switch", "typedef",
 "union", "unsigned", "void", "volatile", "while" };

/*Präprozessordirektiven*/
static const char *P_key_words[] = {
 "define", "defined", "elif", "else", "endif", "error", "if",
 "ifdef", "ifndef", "include", "line", "pragma", "undef" };

/*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 *));

/*Syntaxhiglightning, Farbdefinition*/
static char *background= WEISS;    /*Hintergrundfarbe*/
static char *textcolor = BLAU;     /*Textfarbe*/
static char *keyscolor = SCHWARZ;  /*Schlüsselworte*/
static char *strings   = ROT;      /*Strings/Zeichen*/
static char *kommentar = GRAU;     /*Kommentarfarbe*/
static char *preaproze = GRUEN;    /*Präprozessordirektive*/

/*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

