picofuse

Data Structures | Typedefs | Enumerations | Functions
scanner.h File Reference

Flag-driven tokenizer: turns a byte stream into a sequence of typed tokens, one sys_scanner_next() call at a time. More...

#include <picofuse/sys.h>
#include <stdbool.h>
#include <stddef.h>
Include dependency graph for scanner.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sys_scanner_t
 Scanner state: reads a stream into a sequence of typed tokens. More...
 

Typedefs

typedef struct sys_scanner_t sys_scanner_t
 Scanner state: reads a stream into a sequence of typed tokens. More...
 

Enumerations

enum  sys_scanner_class_t {
  sys_scanner_other = 0, sys_scanner_space, sys_scanner_digit, sys_scanner_alpha,
  sys_scanner_punct, sys_scanner_symbol, sys_scanner_control, sys_scanner_escape,
  sys_scanner_newline, sys_scanner_keyword, sys_scanner_string, sys_scanner_comment,
  sys_scanner_number
}
 Classification of a scanned token. More...
 
enum  sys_scanner_flags_t {
  sys_scanner_none = 0, sys_scanner_escapes = 1 << 1, sys_scanner_newlines = 1 << 2, sys_scanner_keywords = 1 << 3,
  sys_scanner_keywords_withunderscores = sys_scanner_keywords | (1 << 4), sys_scanner_keywords_withdashes = sys_scanner_keywords | (1 << 5), sys_scanner_quotes_single = 1 << 6, sys_scanner_quotes_double = 1 << 7,
  sys_scanner_quotes = sys_scanner_quotes_single | sys_scanner_quotes_double, sys_scanner_comments_hash = 1 << 8, sys_scanner_comments_slash = 1 << 9, sys_scanner_comments = sys_scanner_comments_hash | sys_scanner_comments_slash,
  sys_scanner_numbers = 1 << 10, sys_scanner_numbers_octal = sys_scanner_numbers | (1 << 11), sys_scanner_numbers_binary = sys_scanner_numbers | (1 << 12), sys_scanner_numbers_hex = sys_scanner_numbers | (1 << 13),
  sys_scanner_numbers_float = sys_scanner_numbers | (1 << 14)
}
 Flags controlling which tokenization rules sys_scanner_init() applies. More...
 

Functions

sys_scanner_t sys_scanner_init (sys_iostream_t *stream, sys_scanner_flags_t flags)
 Initialize a scanner over a stream. More...
 
bool sys_scanner_next (sys_scanner_t *it)
 Advance to the next token. More...
 
size_t sys_scanner_token (sys_scanner_t *it, char *buf, size_t cap)
 Read the current token's text. More...
 

Detailed Description

Flag-driven tokenizer: turns a byte stream into a sequence of typed tokens, one sys_scanner_next() call at a time.

Definition in file scanner.h.