Herb C Reference
Loading...
Searching...
No Matches
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
12typedef struct {
13 uint32_t position;
14 uint32_t line;
15 uint32_t column;
17 uint32_t previous_line;
22
23char lexer_peek(const lexer_T* lexer, uint32_t offset);
24bool lexer_peek_for_doctype(const lexer_T* lexer, uint32_t offset);
25bool lexer_peek_for_xml_declaration(const lexer_T* lexer, uint32_t offset);
26bool lexer_peek_for_cdata_start(const lexer_T* lexer, uint32_t offset);
27bool lexer_peek_for_cdata_end(const lexer_T* lexer, uint32_t offset);
28
29bool lexer_peek_for_html_comment_start(const lexer_T* lexer, uint32_t offset);
30bool lexer_peek_for_html_comment_end(const lexer_T* lexer, uint32_t offset);
31
32bool lexer_peek_erb_close_tag(const lexer_T* lexer, uint32_t offset);
33bool lexer_peek_erb_dash_close_tag(const lexer_T* lexer, uint32_t offset);
34bool lexer_peek_erb_percent_close_tag(const lexer_T* lexer, uint32_t offset);
35bool lexer_peek_erb_equals_close_tag(const lexer_T* lexer, uint32_t offset);
36bool lexer_peek_erb_end(const lexer_T* lexer, uint32_t offset);
37
38char lexer_backtrack(const lexer_T* lexer, uint32_t offset);
39
41bool 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
token_type_T
Definition token_struct.h:7