5 #ifndef JODA_LOADSTATEMENT_H
6 #define JODA_LOADSTATEMENT_H
8 #include "../../../../../../../extern/PEGTL/include/tao/pegtl.hpp"
14 template <
typename Rule>
21 struct loadKW : TAOCPP_PEGTL_KEYWORD("LOAD") {};
22 struct fromFileKW : TAOCPP_PEGTL_KEYWORD("FROM FILE") {};
25 struct fromURLKW : TAOCPP_PEGTL_KEYWORD("FROM URL") {};
26 struct sampleKW : TAOCPP_PEGTL_KEYWORD("SAMPLE") {};
32 struct loadFileName : tao::pegtl::plus<tao::pegtl::not_one<'"'>> {};
34 struct sampleNum : tao::pegtl::seq<tao::pegtl::one<'0'>, tao::pegtl::one<'.'>,
35 tao::pegtl::plus<tao::pegtl::digit>> {};
39 tao::pegtl::seq<sampleKW, tao::pegtl::pad<tao::pegtl::must<sampleNum>,
41 tao::pegtl::space> {};
43 struct loadFilesKWs : tao::pegtl::sor<fromFilesKW, fromFileKW, fromURLKW> {};
48 : tao::pegtl::seq<tao::pegtl::must<loadFileLiteralStart>,
49 tao::pegtl::must<loadFileName>,
50 tao::pegtl::must<loadFileLiteralEnd>> {};
52 : tao::pegtl::seq<tao::pegtl::pad<loadFilesKWs, tao::pegtl::space>,
53 tao::pegtl::pad<tao::pegtl::must<loadFilesliteral>,
54 tao::pegtl::space>> {};
57 : tao::pegtl::pad<lineSeperatedKW, tao::pegtl::space> {};
60 : tao::pegtl::seq<loadFilesCommand,
61 tao::pegtl::opt<loadFilesLineSeperatedCommand>,
62 tao::pegtl::opt<sampleCommand>> {};
66 tao::pegtl::pad<fromGroupedKW, tao::pegtl::space>,
67 tao::pegtl::pad<tao::pegtl::must<groupIdent>, tao::pegtl::space>> {};
70 : tao::pegtl::sor<loadAndSampleCommand, loadGroupedCommand> {
76 tao::pegtl::opt<tao::pegtl::seq<
77 tao::pegtl::pad<tao::pegtl::one<','>, tao::pegtl::space>,
78 loadImportSources>>> {};
82 tao::pegtl::pad<tao::pegtl::must<loadKW>, tao::pegtl::space>,
83 tao::pegtl::pad<tao::pegtl::must<loadIdent>, tao::pegtl::space>,
84 tao::pegtl::opt<loadImportSources>> {};