source: translator/ControlStruct/CaseRangeMutator.h @ 1ead581

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since 1ead581 was 51b7345, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

initial commit

  • Property mode set to 100644
File size: 659 bytes
Line 
1#ifndef CASERNG_MUTATOR_H
2#define CASERNG_MUTATOR_H
3
4#include <list>
5
6#include "SynTree/Mutator.h"
7
8namespace ControlStruct {
9
10  class CaseRangeMutator : public Mutator
11  {
12  public:
13    CaseRangeMutator() {}
14
15    virtual Statement* mutate(ChooseStmt   *);
16    virtual Statement* mutate(SwitchStmt   *);
17    virtual Statement* mutate(FallthruStmt *);
18    virtual Statement* mutate(CaseStmt     *);
19
20  private:
21    void fillRange(Expression *lo, Expression *hi);
22
23    Expression *currentCondition;
24    std::list< Expression * > newCaseLabels;
25  };
26
27} // namespace ControlStruct
28
29#endif // #ifndef CASERNG_MUTATOR_H
30
31/*
32  Local Variables:
33  mode: c++
34  End:
35*/
Note: See TracBrowser for help on using the repository browser.