$darkmode
Herb C Reference
lexer_peek_helpers.h
Go to the documentation of this file.
1 #ifndef HERB_LEXER_PEEK_HELPERS_H
2 #define HERB_LEXER_PEEK_HELPERS_H
3 
4 #include "lexer_struct.h"
5 #include "token_struct.h"
6 
7 #include <stdbool.h>
8 #include <stdint.h>
9 #include <stdio.h>
10 #include <stdlib.h>
11 
12 typedef struct {
13  uint32_t position;
14  uint32_t line;
15  uint32_t column;
17  uint32_t previous_line;
18  uint32_t previous_column;
22 
23 char lexer_peek(const lexer_T* lexer, uint32_t offset);
24 bool lexer_peek_for_doctype(const lexer_T* lexer, uint32_t offset);
25 bool lexer_peek_for_xml_declaration(const lexer_T* lexer, uint32_t offset);
26 bool lexer_peek_for_cdata_start(const lexer_T* lexer, uint32_t offset);
27 bool lexer_peek_for_cdata_end(const lexer_T* lexer, uint32_t offset);
28 
29 bool lexer_peek_for_html_comment_start(const lexer_T* lexer, uint32_t offset);
30 bool lexer_peek_for_html_comment_end(const lexer_T* lexer, uint32_t offset);
31 
32 bool lexer_peek_erb_close_tag(const lexer_T* lexer, uint32_t offset);
33 bool lexer_peek_erb_dash_close_tag(const lexer_T* lexer, uint32_t offset);
34 bool lexer_peek_erb_percent_close_tag(const lexer_T* lexer, uint32_t offset);
35 bool lexer_peek_erb_equals_close_tag(const lexer_T* lexer, uint32_t offset);
36 bool lexer_peek_erb_end(const lexer_T* lexer, uint32_t offset);
37 
38 char lexer_backtrack(const lexer_T* lexer, uint32_t offset);
39 
41 bool lexer_peek_for_close_tag_start(const lexer_T* lexer, uint32_t offset);
42 
45 
46 #endif
char lexer_peek(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:15
bool lexer_peek_for_doctype(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:30
bool lexer_peek_for_html_comment_start(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:46
bool lexer_peek_for_cdata_end(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:42
bool lexer_peek_erb_close_tag(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:54
bool lexer_peek_for_close_tag_start(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:104
bool lexer_peek_erb_equals_close_tag(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:66
bool lexer_peek_for_xml_declaration(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:34
bool lexer_peek_erb_dash_close_tag(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:58
bool lexer_peek_for_html_comment_end(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:50
bool lexer_peek_erb_end(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:70
bool lexer_peek_erb_percent_close_tag(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:62
bool lexer_peek_for_cdata_start(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:38
lexer_state_snapshot_T lexer_save_state(lexer_T *lexer)
Definition: lexer_peek_helpers.c:119
bool lexer_peek_for_token_type_after_whitespace(lexer_T *lexer, token_type_T token_type)
Definition: lexer_peek_helpers.c:77
char lexer_backtrack(const lexer_T *lexer, uint32_t offset)
Definition: lexer_peek_helpers.c:11
void lexer_restore_state(lexer_T *lexer, lexer_state_snapshot_T snapshot)
Definition: lexer_peek_helpers.c:131
lexer_state_T
Definition: lexer_struct.h:10
Definition: lexer_struct.h:16
Definition: lexer_peek_helpers.h:12
char current_character
Definition: lexer_peek_helpers.h:19
uint32_t previous_line
Definition: lexer_peek_helpers.h:17
uint32_t column
Definition: lexer_peek_helpers.h:15
uint32_t previous_position
Definition: lexer_peek_helpers.h:16
uint32_t previous_column
Definition: lexer_peek_helpers.h:18
uint32_t line
Definition: lexer_peek_helpers.h:14
lexer_state_T state
Definition: lexer_peek_helpers.h:20
uint32_t position
Definition: lexer_peek_helpers.h:13
int token_type(const token_T *token)
Definition: token.c:126
token_type_T
Definition: token_struct.h:7