Skip to content

Commit

Permalink
Add Condition and its derived classes into Visitor
Browse files Browse the repository at this point in the history
  • Loading branch information
9rnsr committed Aug 9, 2014
1 parent 726e1ae commit 1e03d82
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/cond.h
Expand Up @@ -40,6 +40,7 @@ class Condition
virtual int include(Scope *sc, ScopeDsymbol *sds) = 0;
virtual void toCBuffer(OutBuffer *buf, HdrGenState *hgs) = 0;
virtual DebugCondition *isDebugCondition() { return NULL; }
virtual void accept(Visitor *v) { v->visit(this); }
};

class DVCondition : public Condition
Expand All @@ -52,6 +53,7 @@ class DVCondition : public Condition
DVCondition(Module *mod, unsigned level, Identifier *ident);

Condition *syntaxCopy();
void accept(Visitor *v) { v->visit(this); }
};

class DebugCondition : public DVCondition
Expand All @@ -65,6 +67,7 @@ class DebugCondition : public DVCondition
int include(Scope *sc, ScopeDsymbol *sds);
void toCBuffer(OutBuffer *buf, HdrGenState *hgs);
DebugCondition *isDebugCondition() { return this; }
void accept(Visitor *v) { v->visit(this); }
};

class VersionCondition : public DVCondition
Expand All @@ -84,6 +87,7 @@ class VersionCondition : public DVCondition

int include(Scope *sc, ScopeDsymbol *sds);
void toCBuffer(OutBuffer *buf, HdrGenState *hgs);
void accept(Visitor *v) { v->visit(this); }
};

class StaticIfCondition : public Condition
Expand All @@ -96,6 +100,7 @@ class StaticIfCondition : public Condition
Condition *syntaxCopy();
int include(Scope *sc, ScopeDsymbol *sds);
void toCBuffer(OutBuffer *buf, HdrGenState *hgs);
void accept(Visitor *v) { v->visit(this); }
};

#endif
12 changes: 12 additions & 0 deletions src/visitor.h
Expand Up @@ -291,6 +291,12 @@ class TemplateValueParameter;
class TemplateAliasParameter;
class TemplateTupleParameter;

class Condition;
class DVCondition;
class DebugCondition;
class VersionCondition;
class StaticIfCondition;

class Visitor
{
public:
Expand Down Expand Up @@ -571,6 +577,12 @@ class Visitor
virtual void visit(TemplateValueParameter *tp) { visit((TemplateParameter *)tp); }
virtual void visit(TemplateAliasParameter *tp) { visit((TemplateParameter *)tp); }
virtual void visit(TemplateTupleParameter *tp) { visit((TemplateParameter *)tp); }

virtual void visit(Condition *) { assert(0); }
virtual void visit(DVCondition *c) { visit((Condition *)c); }
virtual void visit(DebugCondition *c) { visit((DVCondition *)c); }
virtual void visit(VersionCondition *c) { visit((DVCondition *)c); }
virtual void visit(StaticIfCondition *c) { visit((Condition *)c); }
};

class StoppableVisitor : public Visitor
Expand Down

0 comments on commit 1e03d82

Please sign in to comment.