1: #ifndef·SYNTAX_H
    2: #define·SYNTAX_H
    3: 
    4: #ifdef·__cplusplus
    5: extern·"C"·{
    6: #endif
    7: 
    8: typedef·enum·{
    9: ··IDENT=0,·KEYWORD,·COMMENT,·STRING,·CHAR,·PREPROCESSOR,·OPERATOR,
   10: ··NUMBER,·INVALID,·WHITESPACE,·UNDEFINED,·NONE
   11: }·syntax_t;
   12: 
   13: typedef·enum·{
   14: ··C=0,·CPP,·JAVA
   15: }·language_t;
   16: extern·language_t·language;··/* which keyword set and comment style to use */
   17: 
   18: /* get_syntax: figure out the syntax of a string
   19:  * parameters:
   20:  *   char *buf: the full line in question
   21:  *   int i:     the current index into the line
   22:  *   int *di:   this will return how much i should be incremented
   23:  *   int reset: this should be true each time a new line is parsed
   24:  * return value:
   25:  *   one of the syntax_t values defined above
   26:  * notes:
   27:  *   this must be called repeatedly for a line, and i must always
   28:  *   be incremented by the amount returned in *di.  All lines are
   29:  *   independent.  Use reset=1 when starting a new line.
   30:  *   See chtml.c and codeviewer.c for examples.
   31:  */
   32: syntax_t·get_syntax(char·*buf,·int·i,·int·*di,·int·reset);
   33: 
   34: #ifdef·__cplusplus
   35: }
   36: #endif
   37: 
   38: #endif