1 #ifndef OMEGA_H_READER_HPP
2 #define OMEGA_H_READER_HPP
7 #include <Omega_h_any.hpp>
8 #include <Omega_h_reader_tables.hpp>
9 #include <Omega_h_std_vector.hpp>
17 virtual ~
Reader() =
default;
18 Reader(ReaderTablesPtr tables_in);
19 any read_stream(std::istream& stream, std::string
const& stream_name_in =
"");
21 std::string
const&
string, std::string
const& string_name =
"");
22 any read_file(std::string
const& file_name);
25 virtual any at_shift(
int token, std::string& text);
26 virtual any at_reduce(
int token, std::vector<any>& rhs);
29 ReaderTablesPtr tables;
36 std::string lexer_text;
37 std::string line_text;
39 std::size_t last_lexer_accept;
40 std::size_t last_lexer_accept_line;
41 std::size_t last_lexer_accept_column;
42 std::string last_lexer_accept_line_text;
44 std::vector<int> parser_stack;
45 std::vector<any> value_stack;
46 std::vector<any> reduction_rhs;
47 std::string stream_name;
52 std::string indent_text;
55 std::size_t start_length;
56 std::size_t end_length;
61 std::vector<IndentStackEntry> indent_stack;
65 std::vector<std::size_t> symbol_indentation_stack;
68 void at_token(std::istream& stream);
69 [[noreturn]]
void indent_mismatch();
70 void at_token_indent(std::istream& stream);
71 void at_lexer_end(std::istream& stream);
72 void backtrack_to_last_accept(std::istream& stream);
73 void reset_lexer_state();
74 void update_position(
char c);
75 void error_print_line(std::istream& is, std::ostream& os);
80 DebugReader(ReaderTablesPtr tables_in, std::ostream& os_in);
85 virtual any at_shift(
int token, std::string& text)
override;
86 virtual any at_reduce(
int token, std::vector<any>& rhs)
override;
Definition: Omega_h_reader.hpp:78
Definition: Omega_h_reader.hpp:13
Definition: Omega_h_any.hpp:68
Definition: amr_mpi_test.cpp:6
Definition: Omega_h_finite_automaton.hpp:19
Definition: Omega_h_parser.hpp:26
Definition: Omega_h_reader.hpp:53