JODA  0.13.1 (59b41972)
JSON On-Demand Analysis
Store.h
Go to the documentation of this file.
1 //
2 // Created by Nico on 21/02/2019.
3 //
4 
5 #ifndef JODA_STORESTATEMENT_H
6 #define JODA_STORESTATEMENT_H
7 #include "../../../../../../../extern/PEGTL/include/tao/pegtl.hpp"
8 
10 /*
11  * Forward Declaration Actions
12  */
13 template <typename Rule>
14 struct storeAction : tao::pegtl::nothing<Rule> {};
15 
16 /*
17  * Keywords
18  */
19 
20 #ifndef __CLION_IDE__ // Prevent lag from expanding all macros
21 struct storeKW : TAOCPP_PEGTL_KEYWORD("STORE") {};
22 struct asFileKW : TAOCPP_PEGTL_KEYWORD("AS FILE") {};
23 struct asFilesKW : TAOCPP_PEGTL_KEYWORD("AS FILES") {};
24 struct groupedByKW : TAOCPP_PEGTL_KEYWORD("GROUPED BY") {};
25 #endif
26 } // namespace joda::queryparsing::grammar
27 #include "Literals.h"
28 
30 /*
31  * Store Literals
32  */
33 struct storeFileName : tao::pegtl::plus<tao::pegtl::not_one<'"'>> {};
34 struct storeFilesName : tao::pegtl::plus<tao::pegtl::not_one<'"'>> {};
35 struct storeIdent : tao::pegtl::identifier {};
36 
38  : tao::pegtl::seq<tao::pegtl::must<tao::pegtl::one<'"'>>, storeFileName,
39  tao::pegtl::must<tao::pegtl::one<'"'>>> {};
41  : tao::pegtl::seq<tao::pegtl::must<tao::pegtl::one<'"'>>, storeFilesName,
42  tao::pegtl::must<tao::pegtl::one<'"'>>> {};
44  : tao::pegtl::seq<tao::pegtl::pad<asFileKW, tao::pegtl::space>,
45  tao::pegtl::pad<tao::pegtl::must<storeFileliteral>,
46  tao::pegtl::space>> {};
48  : tao::pegtl::seq<tao::pegtl::pad<asFilesKW, tao::pegtl::space>,
49  tao::pegtl::pad<tao::pegtl::must<storeFilesliteral>,
50  tao::pegtl::space>> {};
52  : tao::pegtl::seq<
53  tao::pegtl::pad<groupedByKW, tao::pegtl::space>,
54  tao::pegtl::pad<tao::pegtl::must<groupIdent>, tao::pegtl::space>> {};
56  : tao::pegtl::opt<
57  tao::pegtl::pad<storeKW, tao::pegtl::space>,
58  tao::pegtl::must<tao::pegtl::sor<
59  storeAsGroupCommand, storeAsFileCommand, storeAsFilesCommand,
60  tao::pegtl::pad<storeIdent, tao::pegtl::space>>>> {};
61 
62 } // namespace joda::queryparsing::grammar
63 #endif // JODA_STORESTATEMENT_H