source: src/ArgTweak/FunctionFixer.h@ e7aed49

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors ctor deferred_resn demangler enum forall-pointer-decay gc_noraii jacob/cs343-translation jenkins-sandbox memory new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since e7aed49 was 843054c2, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

licencing: seventh groups of files

  • Property mode set to 100644
File size: 1.6 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// FunctionFixer.h --
8//
9// Author : Rodolfo G. Esteves
10// Created On : Mon May 18 07:44:20 2015
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Mon May 18 23:31:58 2015
13// Update Count : 3
14//
15
16#ifndef _FUNCTION_FIXER_H_
17#define _FUNCTION_FIXER_H_
18
19#include "SynTree/Mutator.h"
20#include "SymTab/Indexer.h"
21
22#include "SynTree/Expression.h"
23
24namespace ArgTweak {
25 class FunctionFixer : public Mutator {
26 typedef Mutator Parent;
27 public:
28 FunctionFixer(SymTab::Indexer *ind = 0);
29 ~FunctionFixer();
30
31 virtual DeclarationWithType *mutate( FunctionDecl *functionDecl );
32 virtual Expression *mutate( UntypedExpr *untypedExpr ) throw ( SemanticError );
33 private:
34 class Matcher {
35 typedef std::string key;
36 typedef DeclarationWithType * pattern_type;
37 typedef Expression * permutation_type;
38 public:
39 static key null_key;
40 static permutation_type null_value;
41
42 std::string extract_key( DeclarationWithType * );
43 std::string extract_key( Expression * );
44
45 bool operator()( DeclarationWithType *, Expression * ) { return true; }
46 };
47
48 SymTab::Indexer *index;
49 };
50
51 template < class L1, class L2, class Predicate > bool align( L1 &pattern, L2 &possible_permutation, Predicate pred );
52} // namespace ArgTweak
53
54#endif // _FUNCTION_FIXER_H_
55
56// Local Variables: //
57// tab-width: 4 //
58// mode: c++ //
59// compile-command: "make install" //
60// End: //
Note: See TracBrowser for help on using the repository browser.