X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=idl%2Flexer.h;h=c41bd1d6a8796da192428de9e01fd5f4baa7dff8;hp=be1ee574be95de0c64442ba340c246cfc07fcefd;hb=69008ba2a7733358974c8985caa2e5bcb1182fe1;hpb=059fffcaee65cf92b95bdbe91e5a156b89b2cf71 diff --git a/idl/lexer.h b/idl/lexer.h index be1ee57..c41bd1d 100644 --- a/idl/lexer.h +++ b/idl/lexer.h @@ -1,33 +1,18 @@ -#define BSIZE 256 +#ifndef _PSI_LEXER_H +#define _PSI_LEXER_H -typedef int token_t; - -typedef struct PSI_Token { - token_t type; - unsigned line; - size_t size; - char text[1]; -} PSI_Token; - -typedef struct impls impls; -typedef struct decls decls; -typedef struct decl_typedefs decl_typedefs; +#ifndef BSIZE +# define BSIZE 256 +#endif typedef struct PSI_Lexer { - decl_typedefs *defs; - decls *decls; - impls *impls; - char *lib; - char *fn; - FILE *fp; - size_t line; - char *cur, *tok, *lim, *eof, *ctx, *mrk, buf[BSIZE]; + } PSI_Lexer; -PSI_Lexer *PSI_LexerInit(PSI_Lexer *L, const char *filename); size_t PSI_LexerFill(PSI_Lexer *L, size_t n); -token_t PSI_LexerScan(PSI_Lexer *L); void PSI_LexerDtor(PSI_Lexer *L); void PSI_LexerFree(PSI_Lexer **L); +PSI_Lexer *PSI_LexerInit(PSI_Lexer *L, const char *filename); +token_t PSI_LexerScan(PSI_Lexer *L); -PSI_Token *PSI_TokenAlloc(PSI_Lexer *L, token_t t); +#endif