$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 <stdio.h>
9 #include <stdlib.h>
10 
11 typedef struct {
12  size_t position;
13  size_t line;
14  size_t column;
16  size_t previous_line;
21 
22 char lexer_peek(const lexer_T* lexer, int offset);
23 bool lexer_peek_for_doctype(const lexer_T* lexer, int offset);
24 bool lexer_peek_for_xml_declaration(const lexer_T* lexer, int offset);
25 bool lexer_peek_for_cdata_start(const lexer_T* lexer, int offset);
26 bool lexer_peek_for_cdata_end(const lexer_T* lexer, int offset);
27 
28 bool lexer_peek_for_html_comment_start(const lexer_T* lexer, int offset);
29 bool lexer_peek_for_html_comment_end(const lexer_T* lexer, int offset);
30 
31 bool lexer_peek_erb_close_tag(const lexer_T* lexer, int offset);
32 bool lexer_peek_erb_dash_close_tag(const lexer_T* lexer, int offset);
33 bool lexer_peek_erb_percent_close_tag(const lexer_T* lexer, int offset);
34 bool lexer_peek_erb_end(const lexer_T* lexer, int offset);
35 
36 char lexer_backtrack(const lexer_T* lexer, int offset);
37 
39 bool lexer_peek_for_close_tag_start(const lexer_T* lexer, int offset);
40 
43 
44 #endif
bool lexer_peek_erb_end(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:68
bool lexer_peek_erb_percent_close_tag(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:64
bool lexer_peek_for_cdata_start(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:40
char lexer_backtrack(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:10
bool lexer_peek_erb_close_tag(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:56
bool lexer_peek_for_close_tag_start(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:100
char lexer_peek(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:14
bool lexer_peek_for_html_comment_start(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:48
bool lexer_peek_for_cdata_end(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:44
bool lexer_peek_erb_dash_close_tag(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:60
lexer_state_snapshot_T lexer_save_state(lexer_T *lexer)
Definition: lexer_peek_helpers.c:115
bool lexer_peek_for_token_type_after_whitespace(lexer_T *lexer, token_type_T token_type)
Definition: lexer_peek_helpers.c:75
bool lexer_peek_for_doctype(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:32
bool lexer_peek_for_xml_declaration(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:36
void lexer_restore_state(lexer_T *lexer, lexer_state_snapshot_T snapshot)
Definition: lexer_peek_helpers.c:127
bool lexer_peek_for_html_comment_end(const lexer_T *lexer, int offset)
Definition: lexer_peek_helpers.c:52
lexer_state_T
Definition: lexer_struct.h:7
Definition: lexer_struct.h:13
Definition: lexer_peek_helpers.h:11
size_t previous_line
Definition: lexer_peek_helpers.h:16
size_t previous_column
Definition: lexer_peek_helpers.h:17
size_t previous_position
Definition: lexer_peek_helpers.h:15
size_t position
Definition: lexer_peek_helpers.h:12
char current_character
Definition: lexer_peek_helpers.h:18
size_t line
Definition: lexer_peek_helpers.h:13
lexer_state_T state
Definition: lexer_peek_helpers.h:19
size_t column
Definition: lexer_peek_helpers.h:14
int token_type(const token_T *token)
Definition: token.c:156
token_type_T
Definition: token_struct.h:7