aboutsummaryrefslogtreecommitdiff
path: root/include/lexer.h
blob: 2a03cecef1b97ac4a74dc8b846dcde70f8925aed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef __LEXER_H
#define __LEXER_H

typedef enum { INCLUDE, CONTENTFOR, ENDCONTENT } directive_e;

typedef struct {
  unsigned int offset;
  unsigned int length;
} key_match_t;

typedef struct {
  directive_e type;
  void *operands;
} directive_t;

typedef struct {
  char *key;
  char *content;
  unsigned int length;
} contentfor_operand_t;

directive_t *find_directive(char *content, key_match_t *match);
key_match_t *find_next_key(char *buffer);

#endif