Logo Search packages:      
Sourcecode: viewvc version File versions  Download package

scanner.h

#ifndef SCANNER_H
#define SCANNER_H


#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/* constants and errors returned by the scanner */
enum
{
    SCANNER_EOF = -1,           /* returned by get_char_t and
                                   scanner_get_token to symbolize EOF */

    E_TOO_MANY_INDENTS = -100,  /* too many indents */
    E_DEDENT_MISMATCH,          /* no matching indent */
    E_BAD_CONTINUATION,         /* character occurred after \ */
    E_BAD_NUMBER,               /* parse error in a number */
    E_UNKNOWN_TOKEN,            /* dunno what we found */
    E_UNTERM_STRING             /* unterminated string constant */
};

typedef int (*get_char_t)(void *user_ctx);

void *scanner_begin(get_char_t getfunc, void *user_ctx);

int scanner_get_token(void *ctx);

void scanner_identifier(void *ctx, const char **ident, int *len);
void scanner_token_range(void *ctx, int *start, int *end);
void scanner_token_linecol(void *ctx,
                           int *sline, int *scol, int *eline, int *ecol);

void scanner_end(void *ctx);


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* SCANNER_H */

Generated by  Doxygen 1.6.0   Back to index