OpenCog Framework  Branch: master, revision 6f0b7fc776b08468cf1b74aa9db028f387b4f0c0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PatternMatch.h
Go to the documentation of this file.
1 /*
2  * PatternMatch.h
3  *
4  * Author: Linas Vepstas February 2008
5  *
6  * Copyright (C) 2008,2009,2015 Linas Vepstas <linasvepstas@gmail.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU Affero General Public License v3 as
10  * published by the Free Software Foundation and including the exceptions
11  * at http://opencog.org/wiki/Licenses
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU Affero General Public License
19  * along with this program; if not, write to:
20  * Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22  */
23 
24 #ifndef _OPENCOG_PATTERN_MATCH_H
25 #define _OPENCOG_PATTERN_MATCH_H
26 
27 #include <set>
28 
32 
33 namespace opencog {
34 
35 class PatternLink;
36 
38 {
39  friend class PatternLink;
40 
41  protected:
43  const std::vector<Handle>& virtuals,
44  const std::vector<Handle>& negations,
45  const std::map<Handle, Handle>& var_gnds,
46  const std::map<Handle, Handle>& term_gnds,
47  std::vector<std::vector<std::map<Handle, Handle>>> comp_var_gnds,
48  std::vector<std::vector<std::map<Handle, Handle>>> comp_term_gnds);
49 };
50 
51 } // namespace opencog
52 
53 #endif // _OPENCOG_PATTERN_MATCH_H
static bool recursive_virtual(PatternMatchCallback &cb, const std::vector< Handle > &virtuals, const std::vector< Handle > &negations, const std::map< Handle, Handle > &var_gnds, const std::map< Handle, Handle > &term_gnds, std::vector< std::vector< std::map< Handle, Handle >>> comp_var_gnds, std::vector< std::vector< std::map< Handle, Handle >>> comp_term_gnds)