1 // =================================
 2 // Copyright (c) 2020 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef SNG2HTML_SNG2HTML_VISITOR_INCLUDED
 7 #define SNG2HTML_SNG2HTML_VISITOR_INCLUDED
 8 
 9 namespace sng2html { namespace sng2html {
10 
11 class EmptyParser;
12 class TokenParser;
13 class CharParser;
14 class StringParser;
15 class CharSetParser;
16 class OptionalParser;
17 class KleeneParser;
18 class PositiveParser;
19 class ExpectationParser;
20 class GroupingParser;
21 class SequenceParser;
22 class AlternativeParser;
23 class DifferenceParser;
24 class ListParser;
25 class ActionParser;
26 class NonterminalParser;
27 class RuleParser;
28 class GrammarParser;
29 class ParserFile;
30 class LexerFile;
31 class Domain;
32 class Char;
33 class Any;
34 class Range;
35 class Class;
36 class Alt;
37 class Cat;
38 class Kleene;
39 class Pos;
40 class Opt;
41 class ParenExpr;
42 class SymbolExpr;
43 class RefExpr;
44 
45 class Visitor 
46 {
47 public:
48     virtual ~Visitor();
49     virtual void Visit(EmptyParser& parser) {}
50     virtual void Visit(TokenParser& parser) {}
51     virtual void Visit(CharParser& parser) {}
52     virtual void Visit(StringParser& parser) {}
53     virtual void Visit(CharSetParser& parser) {}
54     virtual void Visit(OptionalParser& parser) {}
55     virtual void Visit(KleeneParser& parser) {}
56     virtual void Visit(PositiveParser& parser) {}
57     virtual void Visit(ExpectationParser& parser) {}
58     virtual void Visit(GroupingParser& parser) {}
59     virtual void Visit(SequenceParser& parser) {}
60     virtual void Visit(AlternativeParser& parser) {}
61     virtual void Visit(DifferenceParser& parser) {}
62     virtual void Visit(ListParser& parser) {}
63     virtual void Visit(ActionParser& parser) {}
64     virtual void Visit(NonterminalParser& parser) {}
65     virtual void Visit(RuleParser& parser) {}
66     virtual void Visit(GrammarParser& parser) {}
67     virtual void Visit(ParserFile& parserFile) {}
68     virtual void Visit(Domain& domain) {}
69     virtual void Visit(LexerFile& lexerFile) {}
70     virtual void Visit(Char& symbol) {}
71     virtual void Visit(Any& symbol) {}
72     virtual void Visit(Range& symbol) {}
73     virtual void Visit(Class& symbol) {}
74     virtual void Visit(Alt& alt) {}
75     virtual void Visit(Cat& cat) {}
76     virtual void Visit(Kleene& kleene) {}
77     virtual void Visit(Pos& pos) {}
78     virtual void Visit(Opt& opt) {}
79     virtual void Visit(ParenExpr& parenExpr) {}
80     virtual void Visit(SymbolExpr& symbolExpr) {}
81     virtual void Visit(RefExpr& refExpr) {}
82 };
83 
84 } } // namespace sng2html::sng2html
85 
86 #endif // SNG2HTML_SNG2HTML_VISITOR_INCLUDED