#include <algorithm>#include <any>#include <cassert>#include <cctype>#include <cstring>#include <functional>#include <initializer_list>#include <iostream>#include <limits>#include <map>#include <memory>#include <mutex>#include <set>#include <sstream>#include <string>#include <unordered_map>#include <unordered_set>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | peg |
| namespace | peg::udl |
Macros | |
| #define | CPPPEGLIB_HEURISTIC_ERROR_TOKEN_MAX_CHAR_COUNT 32 |
| #define | PEG_EXPAND(...) |
| #define | PEG_CONCAT(a, b) |
| #define | PEG_CONCAT2(a, b) |
| #define | PEG_PICK( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, a100, ...) |
| #define | PEG_COUNT(...) |
| #define | PEG_DEF_1(r) |
| #define | PEG_DEF_2(r1, ...) |
| #define | PEG_DEF_3(r1, ...) |
| #define | PEG_DEF_4(r1, ...) |
| #define | PEG_DEF_5(r1, ...) |
| #define | PEG_DEF_6(r1, ...) |
| #define | PEG_DEF_7(r1, ...) |
| #define | PEG_DEF_8(r1, ...) |
| #define | PEG_DEF_9(r1, ...) |
| #define | PEG_DEF_10(r1, ...) |
| #define | PEG_DEF_11(r1, ...) |
| #define | PEG_DEF_12(r1, ...) |
| #define | PEG_DEF_13(r1, ...) |
| #define | PEG_DEF_14(r1, ...) |
| #define | PEG_DEF_15(r1, ...) |
| #define | PEG_DEF_16(r1, ...) |
| #define | PEG_DEF_17(r1, ...) |
| #define | PEG_DEF_18(r1, ...) |
| #define | PEG_DEF_19(r1, ...) |
| #define | PEG_DEF_20(r1, ...) |
| #define | PEG_DEF_21(r1, ...) |
| #define | PEG_DEF_22(r1, ...) |
| #define | PEG_DEF_23(r1, ...) |
| #define | PEG_DEF_24(r1, ...) |
| #define | PEG_DEF_25(r1, ...) |
| #define | PEG_DEF_26(r1, ...) |
| #define | PEG_DEF_27(r1, ...) |
| #define | PEG_DEF_28(r1, ...) |
| #define | PEG_DEF_29(r1, ...) |
| #define | PEG_DEF_30(r1, ...) |
| #define | PEG_DEF_31(r1, ...) |
| #define | PEG_DEF_32(r1, ...) |
| #define | PEG_DEF_33(r1, ...) |
| #define | PEG_DEF_34(r1, ...) |
| #define | PEG_DEF_35(r1, ...) |
| #define | PEG_DEF_36(r1, ...) |
| #define | PEG_DEF_37(r1, ...) |
| #define | PEG_DEF_38(r1, ...) |
| #define | PEG_DEF_39(r1, ...) |
| #define | PEG_DEF_40(r1, ...) |
| #define | PEG_DEF_41(r1, ...) |
| #define | PEG_DEF_42(r1, ...) |
| #define | PEG_DEF_43(r1, ...) |
| #define | PEG_DEF_44(r1, ...) |
| #define | PEG_DEF_45(r1, ...) |
| #define | PEG_DEF_46(r1, ...) |
| #define | PEG_DEF_47(r1, ...) |
| #define | PEG_DEF_48(r1, ...) |
| #define | PEG_DEF_49(r1, ...) |
| #define | PEG_DEF_50(r1, ...) |
| #define | PEG_DEF_51(r1, ...) |
| #define | PEG_DEF_52(r1, ...) |
| #define | PEG_DEF_53(r1, ...) |
| #define | PEG_DEF_54(r1, ...) |
| #define | PEG_DEF_55(r1, ...) |
| #define | PEG_DEF_56(r1, ...) |
| #define | PEG_DEF_57(r1, ...) |
| #define | PEG_DEF_58(r1, ...) |
| #define | PEG_DEF_59(r1, ...) |
| #define | PEG_DEF_60(r1, ...) |
| #define | PEG_DEF_61(r1, ...) |
| #define | PEG_DEF_62(r1, ...) |
| #define | PEG_DEF_63(r1, ...) |
| #define | PEG_DEF_64(r1, ...) |
| #define | PEG_DEF_65(r1, ...) |
| #define | PEG_DEF_66(r1, ...) |
| #define | PEG_DEF_67(r1, ...) |
| #define | PEG_DEF_68(r1, ...) |
| #define | PEG_DEF_69(r1, ...) |
| #define | PEG_DEF_70(r1, ...) |
| #define | PEG_DEF_71(r1, ...) |
| #define | PEG_DEF_72(r1, ...) |
| #define | PEG_DEF_73(r1, ...) |
| #define | PEG_DEF_74(r1, ...) |
| #define | PEG_DEF_75(r1, ...) |
| #define | PEG_DEF_76(r1, ...) |
| #define | PEG_DEF_77(r1, ...) |
| #define | PEG_DEF_78(r1, ...) |
| #define | PEG_DEF_79(r1, ...) |
| #define | PEG_DEF_80(r1, ...) |
| #define | PEG_DEF_81(r1, ...) |
| #define | PEG_DEF_82(r1, ...) |
| #define | PEG_DEF_83(r1, ...) |
| #define | PEG_DEF_84(r1, ...) |
| #define | PEG_DEF_85(r1, ...) |
| #define | PEG_DEF_86(r1, ...) |
| #define | PEG_DEF_87(r1, ...) |
| #define | PEG_DEF_88(r1, ...) |
| #define | PEG_DEF_89(r1, ...) |
| #define | PEG_DEF_90(r1, ...) |
| #define | PEG_DEF_91(r1, ...) |
| #define | PEG_DEF_92(r1, ...) |
| #define | PEG_DEF_93(r1, ...) |
| #define | PEG_DEF_94(r1, ...) |
| #define | PEG_DEF_95(r1, ...) |
| #define | PEG_DEF_96(r1, ...) |
| #define | PEG_DEF_97(r1, ...) |
| #define | PEG_DEF_98(r1, ...) |
| #define | PEG_DEF_99(r1, ...) |
| #define | PEG_DEF_100(r1, ...) |
| #define | AST_DEFINITIONS(...) |
Typedefs | |
| using | peg::Log |
| using | peg::TracerEnter |
| using | peg::TracerLeave |
| using | peg::TracerStartOrEnd = std::function<void(std::any &trace_data)> |
| using | peg::Parser |
| using | peg::Grammar = std::unordered_map<std::string, Definition> |
| using | peg::Rules = std::unordered_map<std::string, std::shared_ptr<Ope>> |
Functions | |
| size_t | peg::codepoint_length (const char *s8, size_t l) |
| size_t | peg::codepoint_count (const char *s8, size_t l) |
| size_t | peg::encode_codepoint (char32_t cp, char *buff) |
| std::string | peg::encode_codepoint (char32_t cp) |
| bool | peg::decode_codepoint (const char *s8, size_t l, size_t &bytes, char32_t &cp) |
| size_t | peg::decode_codepoint (const char *s8, size_t l, char32_t &cp) |
| char32_t | peg::decode_codepoint (const char *s8, size_t l) |
| std::u32string | peg::decode (const char *s8, size_t l) |
| template<typename T> | |
| const char * | peg::u8 (const T *s) |
| std::string | peg::escape_characters (const char *s, size_t n) |
| std::string | peg::escape_characters (std::string_view sv) |
| bool | peg::is_hex (char c, int &v) |
| bool | peg::is_digit (char c, int &v) |
| std::pair< int, size_t > | peg::parse_hex_number (const char *s, size_t n, size_t i) |
| std::pair< int, size_t > | peg::parse_octal_number (const char *s, size_t n, size_t i) |
| std::string | peg::resolve_escape_sequence (const char *s, size_t n) |
| template<typename T> | |
| T | peg::token_to_number_ (std::string_view sv) |
| std::pair< size_t, size_t > | peg::line_info (const char *start, const char *cur) |
| constexpr unsigned int | peg::str2tag_core (const char *s, size_t l, unsigned int h) |
| constexpr unsigned int | peg::str2tag (std::string_view sv) |
| constexpr unsigned int | peg::udl::operator""_ (const char *s, size_t l) |
| template<typename F, typename... Args> | |
| std::any | peg::call (F fn, Args &&...args) |
| bool | peg::success (size_t len) |
| bool | peg::fail (size_t len) |
| template<typename... Args> | |
| std::shared_ptr< Ope > | peg::seq (Args &&...args) |
| template<typename... Args> | |
| std::shared_ptr< Ope > | peg::cho (Args &&...args) |
| template<typename... Args> | |
| std::shared_ptr< Ope > | peg::cho4label_ (Args &&...args) |
| std::shared_ptr< Ope > | peg::zom (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::oom (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::opt (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::rep (const std::shared_ptr< Ope > &ope, size_t min, size_t max) |
| std::shared_ptr< Ope > | peg::apd (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::npd (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::dic (const std::vector< std::string > &v, bool ignore_case) |
| std::shared_ptr< Ope > | peg::lit (std::string &&s) |
| std::shared_ptr< Ope > | peg::liti (std::string &&s) |
| std::shared_ptr< Ope > | peg::cls (const std::string &s) |
| std::shared_ptr< Ope > | peg::cls (const std::vector< std::pair< char32_t, char32_t > > &ranges, bool ignore_case=false) |
| std::shared_ptr< Ope > | peg::ncls (const std::string &s) |
| std::shared_ptr< Ope > | peg::ncls (const std::vector< std::pair< char32_t, char32_t > > &ranges, bool ignore_case=false) |
| std::shared_ptr< Ope > | peg::chr (char dt) |
| std::shared_ptr< Ope > | peg::dot () |
| std::shared_ptr< Ope > | peg::csc (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::cap (const std::shared_ptr< Ope > &ope, Capture::MatchAction ma) |
| std::shared_ptr< Ope > | peg::tok (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::ign (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::usr (std::function< size_t(const char *s, size_t n, SemanticValues &vs, std::any &dt)> fn) |
| std::shared_ptr< Ope > | peg::ref (const Grammar &grammar, const std::string &name, const char *s, bool is_macro, const std::vector< std::shared_ptr< Ope > > &args) |
| std::shared_ptr< Ope > | peg::wsp (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::bkr (std::string &&name) |
| std::shared_ptr< Ope > | peg::pre (const std::shared_ptr< Ope > &atom, const std::shared_ptr< Ope > &binop, const PrecedenceClimbing::BinOpeInfo &info, const Definition &rule) |
| std::shared_ptr< Ope > | peg::rec (const std::shared_ptr< Ope > &ope) |
| std::shared_ptr< Ope > | peg::cut () |
| size_t | peg::parse_literal (const char *s, size_t n, SemanticValues &vs, Context &c, std::any &dt, const std::string &lit, std::once_flag &init_is_word, bool &is_word, bool ignore_case) |
| template<typename T> | |
| void | peg::ast_to_s_core (const std::shared_ptr< T > &ptr, std::string &s, int level, std::function< std::string(const T &ast, int level)> fn) |
| template<typename T> | |
| std::string | peg::ast_to_s (const std::shared_ptr< T > &ptr, std::function< std::string(const T &ast, int level)> fn=nullptr) |
| template<typename T = Ast> | |
| void | peg::add_ast_action (Definition &rule) |
| void | peg::enable_tracing (parser &parser, std::ostream &os) |
| void | peg::enable_profiling (parser &parser, std::ostream &os) |
Variables | |
| static const char * | peg::WHITESPACE_DEFINITION_NAME = "%whitespace" |
| static const char * | peg::WORD_DEFINITION_NAME = "%word" |
| static const char * | peg::RECOVER_DEFINITION_NAME = "%recover" |
| #define AST_DEFINITIONS | ( | ... | ) |
| #define CPPPEGLIB_HEURISTIC_ERROR_TOKEN_MAX_CHAR_COUNT 32 |
| #define PEG_CONCAT | ( | a, | |
| b ) |
| #define PEG_CONCAT2 | ( | a, | |
| b ) |
| #define PEG_COUNT | ( | ... | ) |
| #define PEG_DEF_1 | ( | r | ) |
| #define PEG_DEF_10 | ( | r1, | |
| ... ) |
| #define PEG_DEF_100 | ( | r1, | |
| ... ) |
| #define PEG_DEF_11 | ( | r1, | |
| ... ) |
| #define PEG_DEF_12 | ( | r1, | |
| ... ) |
| #define PEG_DEF_13 | ( | r1, | |
| ... ) |
| #define PEG_DEF_14 | ( | r1, | |
| ... ) |
| #define PEG_DEF_15 | ( | r1, | |
| ... ) |
| #define PEG_DEF_16 | ( | r1, | |
| ... ) |
| #define PEG_DEF_17 | ( | r1, | |
| ... ) |
| #define PEG_DEF_18 | ( | r1, | |
| ... ) |
| #define PEG_DEF_19 | ( | r1, | |
| ... ) |
| #define PEG_DEF_2 | ( | r1, | |
| ... ) |
| #define PEG_DEF_20 | ( | r1, | |
| ... ) |
| #define PEG_DEF_21 | ( | r1, | |
| ... ) |
| #define PEG_DEF_22 | ( | r1, | |
| ... ) |
| #define PEG_DEF_23 | ( | r1, | |
| ... ) |
| #define PEG_DEF_24 | ( | r1, | |
| ... ) |
| #define PEG_DEF_25 | ( | r1, | |
| ... ) |
| #define PEG_DEF_26 | ( | r1, | |
| ... ) |
| #define PEG_DEF_27 | ( | r1, | |
| ... ) |
| #define PEG_DEF_28 | ( | r1, | |
| ... ) |
| #define PEG_DEF_29 | ( | r1, | |
| ... ) |
| #define PEG_DEF_3 | ( | r1, | |
| ... ) |
| #define PEG_DEF_30 | ( | r1, | |
| ... ) |
| #define PEG_DEF_31 | ( | r1, | |
| ... ) |
| #define PEG_DEF_32 | ( | r1, | |
| ... ) |
| #define PEG_DEF_33 | ( | r1, | |
| ... ) |
| #define PEG_DEF_34 | ( | r1, | |
| ... ) |
| #define PEG_DEF_35 | ( | r1, | |
| ... ) |
| #define PEG_DEF_36 | ( | r1, | |
| ... ) |
| #define PEG_DEF_37 | ( | r1, | |
| ... ) |
| #define PEG_DEF_38 | ( | r1, | |
| ... ) |
| #define PEG_DEF_39 | ( | r1, | |
| ... ) |
| #define PEG_DEF_4 | ( | r1, | |
| ... ) |
| #define PEG_DEF_40 | ( | r1, | |
| ... ) |
| #define PEG_DEF_41 | ( | r1, | |
| ... ) |
| #define PEG_DEF_42 | ( | r1, | |
| ... ) |
| #define PEG_DEF_43 | ( | r1, | |
| ... ) |
| #define PEG_DEF_44 | ( | r1, | |
| ... ) |
| #define PEG_DEF_45 | ( | r1, | |
| ... ) |
| #define PEG_DEF_46 | ( | r1, | |
| ... ) |
| #define PEG_DEF_47 | ( | r1, | |
| ... ) |
| #define PEG_DEF_48 | ( | r1, | |
| ... ) |
| #define PEG_DEF_49 | ( | r1, | |
| ... ) |
| #define PEG_DEF_5 | ( | r1, | |
| ... ) |
| #define PEG_DEF_50 | ( | r1, | |
| ... ) |
| #define PEG_DEF_51 | ( | r1, | |
| ... ) |
| #define PEG_DEF_52 | ( | r1, | |
| ... ) |
| #define PEG_DEF_53 | ( | r1, | |
| ... ) |
| #define PEG_DEF_54 | ( | r1, | |
| ... ) |
| #define PEG_DEF_55 | ( | r1, | |
| ... ) |
| #define PEG_DEF_56 | ( | r1, | |
| ... ) |
| #define PEG_DEF_57 | ( | r1, | |
| ... ) |
| #define PEG_DEF_58 | ( | r1, | |
| ... ) |
| #define PEG_DEF_59 | ( | r1, | |
| ... ) |
| #define PEG_DEF_6 | ( | r1, | |
| ... ) |
| #define PEG_DEF_60 | ( | r1, | |
| ... ) |
| #define PEG_DEF_61 | ( | r1, | |
| ... ) |
| #define PEG_DEF_62 | ( | r1, | |
| ... ) |
| #define PEG_DEF_63 | ( | r1, | |
| ... ) |
| #define PEG_DEF_64 | ( | r1, | |
| ... ) |
| #define PEG_DEF_65 | ( | r1, | |
| ... ) |
| #define PEG_DEF_66 | ( | r1, | |
| ... ) |
| #define PEG_DEF_67 | ( | r1, | |
| ... ) |
| #define PEG_DEF_68 | ( | r1, | |
| ... ) |
| #define PEG_DEF_69 | ( | r1, | |
| ... ) |
| #define PEG_DEF_7 | ( | r1, | |
| ... ) |
| #define PEG_DEF_70 | ( | r1, | |
| ... ) |
| #define PEG_DEF_71 | ( | r1, | |
| ... ) |
| #define PEG_DEF_72 | ( | r1, | |
| ... ) |
| #define PEG_DEF_73 | ( | r1, | |
| ... ) |
| #define PEG_DEF_74 | ( | r1, | |
| ... ) |
| #define PEG_DEF_75 | ( | r1, | |
| ... ) |
| #define PEG_DEF_76 | ( | r1, | |
| ... ) |
| #define PEG_DEF_77 | ( | r1, | |
| ... ) |
| #define PEG_DEF_78 | ( | r1, | |
| ... ) |
| #define PEG_DEF_79 | ( | r1, | |
| ... ) |
| #define PEG_DEF_8 | ( | r1, | |
| ... ) |
| #define PEG_DEF_80 | ( | r1, | |
| ... ) |
| #define PEG_DEF_81 | ( | r1, | |
| ... ) |
| #define PEG_DEF_82 | ( | r1, | |
| ... ) |
| #define PEG_DEF_83 | ( | r1, | |
| ... ) |
| #define PEG_DEF_84 | ( | r1, | |
| ... ) |
| #define PEG_DEF_85 | ( | r1, | |
| ... ) |
| #define PEG_DEF_86 | ( | r1, | |
| ... ) |
| #define PEG_DEF_87 | ( | r1, | |
| ... ) |
| #define PEG_DEF_88 | ( | r1, | |
| ... ) |
| #define PEG_DEF_89 | ( | r1, | |
| ... ) |
| #define PEG_DEF_9 | ( | r1, | |
| ... ) |
| #define PEG_DEF_90 | ( | r1, | |
| ... ) |
| #define PEG_DEF_91 | ( | r1, | |
| ... ) |
| #define PEG_DEF_92 | ( | r1, | |
| ... ) |
| #define PEG_DEF_93 | ( | r1, | |
| ... ) |
| #define PEG_DEF_94 | ( | r1, | |
| ... ) |
| #define PEG_DEF_95 | ( | r1, | |
| ... ) |
| #define PEG_DEF_96 | ( | r1, | |
| ... ) |
| #define PEG_DEF_97 | ( | r1, | |
| ... ) |
| #define PEG_DEF_98 | ( | r1, | |
| ... ) |
| #define PEG_DEF_99 | ( | r1, | |
| ... ) |
| #define PEG_EXPAND | ( | ... | ) |
| #define PEG_PICK | ( | a0, | |
| a1, | |||
| a2, | |||
| a3, | |||
| a4, | |||
| a5, | |||
| a6, | |||
| a7, | |||
| a8, | |||
| a9, | |||
| a10, | |||
| a11, | |||
| a12, | |||
| a13, | |||
| a14, | |||
| a15, | |||
| a16, | |||
| a17, | |||
| a18, | |||
| a19, | |||
| a20, | |||
| a21, | |||
| a22, | |||
| a23, | |||
| a24, | |||
| a25, | |||
| a26, | |||
| a27, | |||
| a28, | |||
| a29, | |||
| a30, | |||
| a31, | |||
| a32, | |||
| a33, | |||
| a34, | |||
| a35, | |||
| a36, | |||
| a37, | |||
| a38, | |||
| a39, | |||
| a40, | |||
| a41, | |||
| a42, | |||
| a43, | |||
| a44, | |||
| a45, | |||
| a46, | |||
| a47, | |||
| a48, | |||
| a49, | |||
| a50, | |||
| a51, | |||
| a52, | |||
| a53, | |||
| a54, | |||
| a55, | |||
| a56, | |||
| a57, | |||
| a58, | |||
| a59, | |||
| a60, | |||
| a61, | |||
| a62, | |||
| a63, | |||
| a64, | |||
| a65, | |||
| a66, | |||
| a67, | |||
| a68, | |||
| a69, | |||
| a70, | |||
| a71, | |||
| a72, | |||
| a73, | |||
| a74, | |||
| a75, | |||
| a76, | |||
| a77, | |||
| a78, | |||
| a79, | |||
| a80, | |||
| a81, | |||
| a82, | |||
| a83, | |||
| a84, | |||
| a85, | |||
| a86, | |||
| a87, | |||
| a88, | |||
| a89, | |||
| a90, | |||
| a91, | |||
| a92, | |||
| a93, | |||
| a94, | |||
| a95, | |||
| a96, | |||
| a97, | |||
| a98, | |||
| a99, | |||
| a100, | |||
| ... ) |