Template Class spf_lexer

Class Documentation

template<typename Reader>
class spf_lexer

The tokenizer over a file_reader. scan() hands every token to a consumer’s callbacks; there is no token object. A consumer declares three constexpr flags (decode_strings, decode_values, keep_keywords) that decide what the loop decodes and copies, and each callback returns whether to go on: operator_(pos, char), identifier(pos, name), string(pos, text) or string(begin, end), keyword(pos, text), enumeration(pos, text), binary(pos, text), boolean(pos, char), integer(pos, value), real(pos, value), literal(pos).

Public Functions

spf_lexer(const spf_lexer&) = delete
spf_lexer &operator=(const spf_lexer&) = delete
std::string &get_temp_string() const
inline void reset_pool() const
inline void pop_pool_entry()
spf_lexer(Reader *stream, ifcopenshell::logger &logger = ifcopenshell::logger::root())
template<typename Consumer>
void scan(Consumer &consumer)
~spf_lexer()

Public Members

Reader *stream