ScriptParser.hpp
Go to the documentation of this file.
1 /***************************************************************************
2  tag: Peter Soetens Fri Oct 22 20:28:53 2010 +0200 ScriptParser.hpp
3 
4  ScriptParser.hpp - description
5  -------------------
6  begin : Fri Oct 22 2010
7  copyright : (C) 2010 Peter Soetens
8  email : peter@thesourceworks.com
9 
10  ***************************************************************************
11  * This library is free software; you can redistribute it and/or *
12  * modify it under the terms of the GNU General Public *
13  * License as published by the Free Software Foundation; *
14  * version 2 of the License. *
15  * *
16  * As a special exception, you may use this file as part of a free *
17  * software library without restriction. Specifically, if other files *
18  * instantiate templates or use macros or inline functions from this *
19  * file, or you compile this file and link it with other files to *
20  * produce an executable, this file does not by itself cause the *
21  * resulting executable to be covered by the GNU General Public *
22  * License. This exception does not however invalidate any other *
23  * reasons why the executable file might be covered by the GNU General *
24  * Public License. *
25  * *
26  * This library is distributed in the hope that it will be useful, *
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29  * General Public License for more details. *
30  * *
31  * You should have received a copy of the GNU General Public *
32  * License along with this library; if not, write to the Free Software *
33  * Foundation, Inc., 59 Temple Place, *
34  * Suite 330, Boston, MA 02111-1307 USA *
35  * *
36  ***************************************************************************/
37 
38 
39 #ifndef RTT_SCRIPTING_PARSER_HPP
40 #define RTT_SCRIPTING_PARSER_HPP
41 
42 #include "parser-types.hpp"
43 
44 #include <map>
45 #include <string>
46 #include <boost/function.hpp>
47 #include <boost/shared_ptr.hpp>
48 #include "../internal/DataSource.hpp"
49 #include "../Service.hpp"
50 
51 namespace RTT
52 {
53  namespace scripting
54  {
55 
60  {
61  // Our task we are parsing in :
63  // The task that will execute it:
65  // The storage for top-level variables
69  // running offset
70  int ln_offset;
71  std::string program_text;
72 
76  rule_t function;
78 
83 
84  void clear();
85 
86  void seenstatement();
87  void seenprogram();
88  void seenfunction();
89  void seenstatemachine();
90 
91  error_status<> handle_no_function(scanner_t const& scan, parser_error<std::string, iter_t>&e );
92 
93  public:
99  ScriptParser(iter_t& positer, TaskContext* tc, ExecutionEngine* caller);
100  ~ScriptParser();
101 
108  void parse(iter_t& begin, iter_t end);
109 
120  iter_t end);
121 
122  };
123  }
124 }
125 
126 #endif
base::DataSourceBase::shared_ptr parseExcerpt(iter_t &begin, iter_t end)
void parse(iter_t &begin, iter_t end)
Service::shared_ptr storage
A Parser for Orocos Program Scripts.
This class contains some very common parser definitions.
boost::shared_ptr< Service > shared_ptr
Definition: Service.hpp:101
ScriptParser(iter_t &positer, TaskContext *tc, ExecutionEngine *caller)
scanner< iter_t, scanner_pol_t > scanner_t
StateGraphParser * stateparser
position_iterator< our_iterator_t > our_pos_iter_t
rule< scanner_t > rule_t
ProgramGraphParser * programparser
error_status handle_no_function(scanner_t const &scan, parser_error< std::string, iter_t > &e)
boost::intrusive_ptr< DataSourceBase > shared_ptr
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition: Activity.cpp:53
our_pos_iter_t iter_t
ProgramGraphParser * statementparser


rtt
Author(s): RTT Developers
autogenerated on Tue Jun 25 2019 19:33:27