stlab.adobe.com Adobe Systems Incorporated
adam_parser.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2005-2007 Adobe Systems Incorporated
3  Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
4  or a copy at http://stlab.adobe.com/licenses.html)
5 */
6 
7 /*************************************************************************************************/
8 
9 #ifndef ADOBE_ADAM_PARSER_HPP
10 #define ADOBE_ADAM_PARSER_HPP
11 
12 #include <adobe/config.hpp>
13 
14 #include <iosfwd>
15 #include <string>
16 
17 #include <boost/function.hpp>
18 
19 #include <adobe/array.hpp>
20 #include <adobe/istream.hpp>
21 #include <adobe/string.hpp>
22 #include <adobe/vector.hpp>
23 
127 /*************************************************************************************************/
128 
129 namespace adobe {
130 
131 /*************************************************************************************************/
132 
134 {
136  {
137  input_k, // array_t is an initializer
138  output_k, // array_t is an expression
139  constant_k, // array_t is an initializer
140  logic_k, // array_t is an expression
141  invariant_k // array_t is an expression
142  };
143 
144  struct relation_t
145  {
151  };
152 
153  typedef boost::function<void ( cell_type_t type,
154  name_t cell_name,
155  const line_position_t& position,
156  const array_t& expr_or_init,
157  const std::string& brief,
158  const std::string& detailed)> add_cell_proc_t;
159 
160  typedef boost::function<void ( const line_position_t& position,
161  const array_t& conditional,
162  const relation_t* first,
163  const relation_t* last,
164  const std::string& brief,
165  const std::string& detailed)> add_relation_proc_t; // REVISIT (sparent) where's brief?
166 
167  typedef boost::function<void ( name_t cell_name,
168  bool linked,
169  const line_position_t& position1,
170  const array_t& initializer,
171  const line_position_t& position2,
172  const array_t& expression,
173  const std::string& brief,
174  const std::string& detailed)> add_interface_proc_t;
175 
176  typedef boost::function<void ( name_t cell_name,
177  const line_position_t& position,
178  const std::string& brief,
179  const std::string& detailed)> add_external_proc_t;
180 
185 };
186 
187 /*************************************************************************************************/
188 
189 void parse(std::istream& stream, const line_position_t& position, const adam_callback_suite_t& callbacks);
190 
191 /*************************************************************************************************/
192 
193 array_t parse_adam_expression(const std::string& expression);
194 
195 /*************************************************************************************************/
196 
197 } // namespace adobe
198 
199 /*************************************************************************************************/
200 
201 #endif // ADOBE_ADAM_PARSER_HPP
202 
203 /*************************************************************************************************/
add_relation_proc_t add_relation_proc_m
Callback class for the Adam parser.
A type detailing parser position information.
Definition: istream.hpp:153
Struct containing details of a relation expression for client callbacks from the Adam parser...
add_external_proc_t add_external_proc_m
boost::function< void(cell_type_t type, name_t cell_name, const line_position_t &position, const array_t &expr_or_init, const std::string &brief, const std::string &detailed)> add_cell_proc_t
add_cell_proc_t add_cell_proc_m
boost::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
boost::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
array_t parse_adam_expression(const std::string &expression)
boost::function< void(name_t cell_name, const line_position_t &position, const std::string &brief, const std::string &detailed)> add_external_proc_t
add_interface_proc_t add_interface_proc_m
void parse(std::istream &stream, const line_position_t &position, const adam_callback_suite_t &callbacks)

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google