Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
eve_parser.hpp
Go to the documentation of this file.
1/*
2 Copyright 2013 Adobe
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5*/
6/**************************************************************************************************/
7
8#ifndef ADOBE_EVE_PARSER_HPP
9#define ADOBE_EVE_PARSER_HPP
10
11#include <adobe/config.hpp>
12
13#include <any>
14#include <functional>
15#include <string>
16#include <vector>
17
18#include <adobe/array.hpp>
19#include <adobe/istream.hpp>
20#include <adobe/name.hpp>
21#include <adobe/string.hpp>
22
23/**************************************************************************************************/
24
147
148
149/**************************************************************************************************/
150
151namespace adobe {
152
153/**************************************************************************************************/
154
157
158 struct relation_t {
159 std::vector<name_t> name_set_m;
162 std::string detailed_m;
163 std::string brief_m;
164 };
165
166 using position_t = std::any;
167
168 using add_view_proc_t = std::function<position_t(
169 const position_t& parent, const line_position_t& parse_location, name_t name,
170 const array_t& parameters, const std::string& brief, const std::string& detailed)>;
171
172 using add_cell_proc_t = std::function<void(
173 cell_type_t type, name_t name, const line_position_t& position, const array_t& initializer,
174 const std::string& brief, const std::string& detailed)>;
175
176 using add_relation_proc_t = std::function<void(
177 const line_position_t& position, const array_t& conditional, const relation_t* first,
178 const relation_t* last, const std::string& brief, const std::string& detailed)>;
179
180 using add_interface_proc_t = std::function<void(
181 name_t cell_name, bool linked, const line_position_t& position1, const array_t& initializer,
182 const line_position_t& position2, const array_t& expression, const std::string& brief,
183 const std::string& detailed)>;
184
185 using finalize_sheet_proc_t = std::function<void()>;
186
192};
193
194line_position_t parse(std::istream& in, const line_position_t&,
196
197/**************************************************************************************************/
198
199} // namespace adobe
200
201/**************************************************************************************************/
202
203#endif // ADOBE_EVE_PARSER_HPP
204
205/**************************************************************************************************/
void parse(std::istream &stream, const line_position_t &position, const adam_callback_suite_t &callbacks)
std::vector< any_regular_t > array_t
Definition array_fwd.hpp:23
std::function< void( const line_position_t &position, const array_t &conditional, const relation_t *first, const relation_t *last, const std::string &brief, const std::string &detailed)> add_relation_proc_t
std::function< void()> finalize_sheet_proc_t
finalize_sheet_proc_t finalize_sheet_proc_m
std::function< position_t( const position_t &parent, const line_position_t &parse_location, name_t name, const array_t &parameters, const std::string &brief, const std::string &detailed)> add_view_proc_t
add_relation_proc_t add_relation_proc_m
add_view_proc_t add_view_proc_m
std::function< void( name_t cell_name, bool linked, const line_position_t &position1, const array_t &initializer, const line_position_t &position2, const array_t &expression, const std::string &brief, const std::string &detailed)> add_interface_proc_t
add_interface_proc_t add_interface_proc_m
std::function< void( cell_type_t type, name_t name, const line_position_t &position, const array_t &initializer, const std::string &brief, const std::string &detailed)> add_cell_proc_t
add_cell_proc_t add_cell_proc_m
A type detailing parser position information.
Definition istream.hpp:127
A character string class for immutable strings.
Definition name.hpp:220