Dynalib Utils
KAMLParser.h
Go to the documentation of this file.
1 #ifndef KAML_PARSER_H
2 #define KAML_PARSER_H
3 
4 #include "../String.h"
5 #include "../DynaList.h"
6 #include "../IntWrapper.h"
7 #include "../Parser/Tokenizer.h"
8 #include "../Parser/Token.h"
9 #include "../Graph/Node.h"
10 
11 using namespace Graph;
12 
14 
15 class DynaLogger;
16 
17 namespace KAML {
18 
19  class KAMLParser {
20  static DynaLogger* logger;
21  Tokenizer* _tok = nullptr;
22  CastType _currCast = CastType::NO_CAST;
23  bool _unwind = false;
24 
25  public:
26  KAMLParser();
27  virtual ~KAMLParser();
28 
29  Tokenizer* getTok();
30 
31  bool parseKaml(const String& buf, Node* rootNode);
32  bool parseBlock(Token& token, Node* parentNode, int parentIndent, int level);
33  bool parseTypeCast(Token& token);
34  void applyTypeCast(Node* valueNode);
35  bool parseBlockValue(Token& token, Node* parentNode, int level);
36  bool parseFlowValue(Token& token, Node* parentNode);
37  bool parseFlowList(Token& token, Node* parentNode);
38  bool parseFlowMap(Token& token, Node* parentNode);
39  bool parseScalar(Token& token, Node* scalarNode);
40  bool parseUnquotedString(Token& token, Node* scalarNode);
41  bool parseFormattedString(Token& token, Node* scalarNode);
42  };
43 }
44 
45 #endif
Definition: Tokenizer.h:17
DynaLogger * logger
Definition: Manager.cpp:23
Definition: String.h:60
Definition: Node.h:47
CastType
Definition: KAMLParser.h:13
Definition: KAMLParser.h:19
Definition: DynaLogger.h:321
Definition: File.cpp:10
Definition: Node.cpp:13
Definition: Token.h:35