hlc

High level language for lli
Log | Files | Refs

lex.h (690B)


      1 enum lex_type {
      2 	UNKNOWN,
      3 
      4 	STRING,
      5 	NAME,
      6 	NUM,
      7 	SEMI,
      8 	PTR,
      9 	DEREF,
     10 	UNARRAY,
     11 	QUOTE,
     12 	OBRACE,
     13 	CBRACE,
     14 	ASSIGN,
     15 	EQU,
     16 	NEQ,
     17 	LT,
     18 	GT,
     19 	LTE,
     20 	GTE,
     21 	FUNC,
     22 	COMMA,
     23 	ADD,
     24 	SUB,
     25 	DIV,
     26 	MUL,
     27 	BYTE,
     28 	SHORT,
     29 	LONG,
     30 	OCBRACE,
     31 	CCBRACE,
     32 	EOI
     33 };
     34 
     35 typedef struct lex_val {
     36 	enum lex_type type;	
     37 	char *data;
     38 } lex_val;
     39 
     40 extern char *input, *startpos, *endpos;
     41 extern lex_val *(*nextfn)(void);
     42 
     43 lex_val *lex_type(void);
     44 lex_val *lex_number(void);
     45 lex_val *lex_assign(void);
     46 lex_val *lex_name(void);
     47 lex_val *lex_value(void);
     48 lex_val *lex_sym(void);
     49 lex_val *lex_comma(void);
     50 lex_val *lex_semi(void);
     51 
     52 int get_err_len(void);
     53 int get_line_num(char *);
     54 lex_val *get_next(void);
     55 void init_lexer(FILE *);