PropertyVisitor.hpp
Go to the documentation of this file.
1 // @formatter:off
2 //
3 // Balau core C++ library
4 //
5 // Copyright (C) 2017 Bora Software (contact@borasoftware.com)
6 //
7 // Licensed under the Boost Software License - Version 1.0 - August 17th, 2003.
8 // See the LICENSE file for the full license text.
9 //
10 
16 
17 #ifndef COM_BORA_SOFTWARE__BALAU_LANG_PROPERTY_UTIL__PROPERTY_VISITOR
18 #define COM_BORA_SOFTWARE__BALAU_LANG_PROPERTY_UTIL__PROPERTY_VISITOR
19 
20 namespace Balau::Lang::Property {
21 
22 namespace AST {
23 
24 class Properties;
25 class ValueProperty;
26 class CompositeProperty;
27 class IncludePropertyNode;
28 class CommentPropertyNode;
29 class EmptyLinePropertyNode;
30 
31 } // namespace AST
32 
39 class Payload {
43  public: virtual ~Payload() = default;
44 };
45 
56  public: virtual void visit(Payload & payload, const AST::Properties & object) = 0;
57 
64  public: virtual void visit(Payload & payload, const AST::ValueProperty & object) = 0;
65 
72  public: virtual void visit(Payload & payload, const AST::CompositeProperty & object) = 0;
73 
80  public: virtual void visit(Payload & payload, const AST::IncludePropertyNode & object) = 0;
81 
88  public: virtual void visit(Payload & payload, const AST::CommentPropertyNode & object) = 0;
89 
96  public: virtual void visit(Payload & payload, const AST::EmptyLinePropertyNode & object) = 0;
97 };
98 
99 } // namespace Balau::Lang::Property
100 
101 #endif // COM_BORA_SOFTWARE__BALAU_LANG_PROPERTY_UTIL__PROPERTY_VISITOR
Simple name-value property node.
Definition: PropertyAst.hpp:221
Visitor interface for property AST nodes.
Definition: PropertyVisitor.hpp:49
Represents a blank line in a property file.
Definition: PropertyAst.hpp:465
Composite name-value property node.
Definition: PropertyAst.hpp:288
Base class of property visitor payloads.
Definition: PropertyVisitor.hpp:39
Include property node.
Definition: PropertyAst.hpp:357
Comment property node.
Definition: PropertyAst.hpp:411
The Property parser.
The outer structure.
Definition: PropertyAst.hpp:175