haasdo95 / dot_parser_cpp

A C++ parser for the DOT language
MIT License
0 stars 2 forks source link

Compilation error #2

Open shi27feng opened 1 year ago

shi27feng commented 1 year ago

Hi there, Would you please help with the following errors:

❯ make all
[ 10%] Built target lexy_file
Consolidate compiler generated dependencies of target dot_parser
[ 15%] Building CXX object src/CMakeFiles/dot_parser.dir/parser.cpp.o
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:61: error: no match for ‘operator/’ (operand types are ‘const lexyd::ascii::_blank’ and ‘const lexyd::_nl’)
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                           ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~
      |                                                       |            |
      |                                                       |            const lexyd::_nl
      |                                                       const lexyd::ascii::_blank
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::ascii::_blank; R2 = lexyd::_nl]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_nl&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/utility:70,
                 from /usr/include/c++/11/optional:36,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:4,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/usr/include/c++/11/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = void]’:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:358:23:   required by substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::ascii::_blank; R2 = lexyd::_nl]’
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68:   required from here
/usr/include/c++/11/type_traits:2585:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
 2585 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::ascii::_blank; R2 = lexyd::_nl]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_calt<Cs ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:19:68: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
   19 |     constexpr auto wsr = dsl::whitespace((dsl::ascii::blank / dsl::newline) | multi_line_comment | line_comment);
      |                                                                    ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:14,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/capture.hpp: In instantiation of ‘constexpr auto lexyd::capture(Token) [with Token = lexyd::_br<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> >, lexyd::_whl<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> > > >]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:56:48:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/capture.hpp:129:25: error: static assertion failed
  129 |     static_assert(lexy::is_token_rule<Token>);
      |                   ~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/capture.hpp:129:25: note: ‘lexy::is_token_rule<lexyd::_br<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> >, lexyd::_whl<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> > > > >’ evaluates to false
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: In lambda function:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:49: error: no match for ‘operator/’ (operand types are ‘const lexyd::ascii::_blank’ and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"/"}>’ {aka ‘lexyd::_lit<char, '/', '*'>’})
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                               ~~~~~~~~~~~~~~~~~ ^
      |                                           |
      |                                           const lexyd::ascii::_blank
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::ascii::_blank; R2 = lexyd::_lit<char, '/', '*'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_lit<char, '/', '*'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   candidate expects 1 argument, 2 provided
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_lit<char, '/', '*'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::_lit<char, '/', '*'>’ is not derived from ‘lexyd::_calt<Cs ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:106: error: no match for ‘operator/’ (operand types are ‘lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >’ and ‘lexyd::_token<lexyd::_nullopt>’)
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                          |                          |
      |                                                                                          |                          lexyd::_token<lexyd::_nullopt>
      |                                                                                          lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >’ is not derived from ‘lexyd::_opc<Ops ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >’ is not derived from ‘lexyd::_opc<Ops ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_calt<lexyd::_ccp<59>, lexyd::_ccp<44> >; R2 = lexyd::_token<lexyd::_nullopt>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_token<lexyd::_nullopt>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C) [with Cs = {lexyd::_ccp<59>, lexyd::_ccp<44>}; C = lexyd::_token<lexyd::_nullopt>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:86: error: no matching function for call to ‘_make_char_class(lexyd::_token<lexyd::_nullopt>&)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                                                                      ~~~~~~~~~~~~~~~~^~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:86: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lit<CharT, C>’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                                                                      ~~~~~~~~~~~~~~~~^~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:86: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lcp<CP>’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                                                                      ~~~~~~~~~~~~~~~~^~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_calt<Cs ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:70:130: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_calt<Cs ...>’
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                                  ^
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: At global scope:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:86: error: no match for ‘operator/’ (operand types are ‘const lexyd::_lit<char, ';'>’ and ‘const lexyd::_nl’)
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                      ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~
      |                                                                           |                 |
      |                                                                           |                 const lexyd::_nl
      |                                                                           const lexyd::_lit<char, ';'>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                               
shi27feng commented 1 year ago

continue with ...

In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, ';'>; R2 = lexyd::_nl]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_nl&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_calt<Cs ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:118:93: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  118 |         static constexpr auto rule = dsl::lookahead(dsl::lit_c<'='>, dsl::lit_c<';'> / dsl::newline) >>
      |                                                                                             ^~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:50: error: no match for ‘operator/’ (operand types are ‘const lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ and ‘const lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'e', 'd', 'g', 'e'>’)
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                     ~~~~~~~~~~~~~^~~~~~~~~~~~~
      |                                     |             |
      |                                     |             _kw<[...],[...],‘nontype_argument_pack’ not supported by dump_expr<expression error>>
      |                                     _kw<[...],[...],‘nontype_argument_pack’ not supported by dump_expr<expression error>>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>; R2 = lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'e', 'd', 'g', 'e'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: error: no matching function for call to ‘_make_char_class(lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'e', 'd', 'g', 'e'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:120:51: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  120 |                         ((dsl::peek(graph_keyword/edge_keyword/node_keyword) >> dsl::p<attr_stmt>)
      |                                                   ^~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: In lambda function:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:49: error: no match for ‘operator/’ (operand types are ‘const lexyd::ascii::_blank’ and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"/"}>’ {aka ‘lexyd::_lit<char, '/', '*'>’})
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                               ~~~~~~~~~~~~~~~~~ ^
      |                                           |
      |                                           const lexyd::ascii::_blank
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_opc<Ops ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::ascii::_blank; R2 = lexyd::_lit<char, '/', '*'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_lit<char, '/', '*'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   candidate expects 1 argument, 2 provided
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_lit<char, '/', '*'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::_lit<char, '/', '*'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:51: note:   ‘lexyd::ascii::_blank’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                   ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:90: error: no match for ‘operator/’ (operand types are ‘const lexyd::_lit<char, ','>’ and ‘lexyd::_token<lexyd::_nullopt>’)
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                           ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                |                    |
      |                                                                                |                    lexyd::_token<lexyd::_nullopt>
      |                                                                                const lexyd::_lit<char, ','>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_opc<Ops ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_opc<Ops ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, ','>; R2 = lexyd::_token<lexyd::_nullopt>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_token<lexyd::_nullopt>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_token<lexyd::_nullopt>’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:132:114: note:   ‘lexyd::_lit<char, ','>’ is not derived from ‘lexyd::_calt<Cs ...>’
  132 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                                                                                                                  ^
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: At global scope:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:66: error: no match for ‘operator/’ (operand types are ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '-'>’} and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '>'>’})
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                  ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, '-', '-'>; R2 = lexyd::_lit<char, '-', '>'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: error: no matching function for call to ‘_make_char_class(lexyd::_lit<char, '-', '-'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   candidate expects 1 argument, 2 provided
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '>'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:150:68: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  150 |         static constexpr auto rule = dsl::capture(LEXY_LIT("--") / LEXY_LIT("->"));
      |                                                                    ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:106: error: no match for ‘operator/’ (operand types are ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '-'>’} and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '>'>’})
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                          ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
shi27feng commented 1 year ago

and continue ...

      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, '-', '-'>; R2 = lexyd::_lit<char, '-', '>'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: error: no matching function for call to ‘_make_char_class(lexyd::_lit<char, '-', '-'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   candidate expects 1 argument, 2 provided
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '>'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:160:108: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  160 |         static constexpr auto rule = dsl::list(ws+dsl::p<node_or_node_group>+ws, dsl::sep(LEXY_LIT("--") / LEXY_LIT("->")));
      |                                                                                                            ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:56: error: no match for ‘operator+’ (operand types are ‘const lexyd::_prd<dot_parser::parsing::edge_head>’ and ‘const lexyd::_prd<dot_parser::parsing::edge_tail>’)
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                      ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
      |                                           |                   |
      |                                           |                   _prd<dot_parser::parsing::edge_tail>
      |                                           _prd<dot_parser::parsing::edge_head>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:103:16: note: candidate: ‘template<class R, class S, class> constexpr auto lexyd::operator+(R, S)’
  103 | constexpr auto operator+(R, S)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:103:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:108:16: note: candidate: ‘template<class ... R, class S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, S)’
  108 | constexpr auto operator+(_seq<R...>, S)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:108:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_seq<R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:113:16: note: candidate: ‘template<class R, class ... S> constexpr auto lexyd::operator+(R, lexyd::_seq<S ...>)’
  113 | constexpr auto operator+(R, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:113:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_tail>’ is not derived from ‘lexyd::_seq<S ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:118:16: note: candidate: ‘template<class ... R, class ... S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, lexyd::_seq<S ...>)’
  118 | constexpr auto operator+(_seq<R...>, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:118:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_seq<R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:72:16: note: candidate: ‘template<class Rule, class Condition, class ... R> constexpr auto lexyd::operator+(Rule, lexyd::_br<C, R ...>)’
   72 | constexpr auto operator+(Rule rule, _br<Condition, R...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:72:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_tail>’ is not derived from ‘lexyd::_br<C, R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:78:16: note: candidate: ‘template<class ... R, class Condition, class ... S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, lexyd::_br<C, R ...>)’
   78 | constexpr auto operator+(_seq<R...>, _br<Condition, S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:78:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_seq<R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:85:16: note: candidate: ‘template<class Condition, class ... R, class Rule> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, Rule)’
   85 | constexpr auto operator+(_br<Condition, R...>, Rule)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:85:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_br<Condition, R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:91:16: note: candidate: ‘template<class Condition, class ... R, class ... S> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, lexyd::_seq<S ...>)’
   91 | constexpr auto operator+(_br<Condition, R...>, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:91:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_br<Condition, R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:98:16: note: candidate: ‘template<class C1, class ... R, class C2, class ... S> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, lexyd::_br<C2, S ...>)’
   98 | constexpr auto operator+(_br<C1, R...>, _br<C2, S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:98:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:165:63: note:   ‘lexyd::_prd<dot_parser::parsing::edge_head>’ is not derived from ‘lexyd::_br<Condition, R ...>’
  165 |         static constexpr auto rule = dsl::p<edge_head> + dsl::p<edge_tail> + dsl::p<attr_list>;
      |                                                               ^~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:68: error: no match for ‘operator/’ (operand types are ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '-'>’} and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"-"}>’ {aka ‘lexyd::_lit<char, '-', '>'>’})
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                    ^
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, '-', '-'>; R2 = lexyd::_lit<char, '-', '>'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: error: no matching function for call to ‘_make_char_class(lexyd::_lit<char, '-', '-'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   candidate expects 1 argument, 2 provided
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '>'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:70: note:   ‘lexyd::_lit<char, '-', '-'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                      ^~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:102: error: no match for ‘operator/’ (operand types are ‘const lexyd::_lit<char, ';'>’ and ‘const lexyd::_nl’)
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                      ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~
      |                                                                                           |                 |
      |                                                                                           |                 const lexyd::_nl
      |                                                                                           const lexyd::_lit<char, ';'>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, ';'>; R2 = lexyd::_nl]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_nl&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:183:109: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  183 |         static constexpr auto rule = dsl::lookahead(LEXY_LIT("--") / LEXY_LIT("->"), dsl::lit_c<';'> / dsl::newline) >> dsl::p<edge_stmt>;
      |                                                                                                             ^~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: In lambda function:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:42: error: no match for ‘operator/’ (operand types are ‘const lexyd::_lit<char, ';'>’ and ‘const lexyd::_nl’)
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                           ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
      |                                |               |
      |                                |               const lexyd::_nl
      |                                const lexyd::_lit<char, ';'>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_lit<char, ';'>; R2 = lexyd::_nl]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: error: no matching function for call to ‘_make_char_class(lexyd::_nl&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:71: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                                                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_nl’ is not derived from ‘lexyd::_calt<Cs ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:200:48: note:   ‘lexyd::_lit<char, ';'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  200 |                         ((dsl::lit_c<';'>/dsl::newline)
      |                                                ^~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: At global scope:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:65: error: no match for ‘operator/’ (operand types are ‘const lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ and ‘const lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'd', 'i', 'g', 'r', 'a', 'p', 'h'>’)
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                   ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
      |                                                   |               |
      |                                                   |               _kw<[...],[...],‘nontype_argument_pack’ not supported by dump_expr<expression error>>
      |                                                   _kw<[...],[...],‘nontype_argument_pack’ not supported by dump_expr<expression error>>
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note: candidate: ‘template<class T1, class L1, class ... R1, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_op<T2, L2, R2 ...>)’
  292 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:292:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note: candidate: ‘template<class ... Ops, class T2, class L2, class ... R2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_op<T2, L2, R2 ...>)’
  297 | constexpr auto operator/(_opc<Ops...>, _op<T2, L2, R2...> rhs)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:297:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note: candidate: ‘template<class T1, class L1, class ... R1, class ... Ops> constexpr auto lexyd::operator/(lexyd::_op<Tag, Literal, R ...>, lexyd::_opc<Ops ...>)’
  302 | constexpr auto operator/(_op<T1, L1, R1...> lhs, _opc<Ops...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:302:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_op<Tag, Literal, R ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:11,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note: candidate: ‘template<class ... O1, class ... O2> constexpr auto lexyd::operator/(lexyd::_opc<Ops ...>, lexyd::_opc<O2 ...>)’
  307 | constexpr auto operator/(_opc<O1...>, _opc<O2...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/operator.hpp:307:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_opc<Ops ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note: candidate: ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2)’
  423 | constexpr auto operator/(R1 r1, R2 r2)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:423:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp: In substitution of ‘template<class R1, class R2> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(r1)), decltype (lexyd::_make_char_class(r2))> lexyd::operator/(R1, R2) [with R1 = lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>; R2 = lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'd', 'i', 'g', 'r', 'a', 'p', 'h'>]’:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: error: no matching function for call to ‘_make_char_class(lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>&)’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note: candidate: ‘template<class C, class> constexpr auto lexyd::_make_char_class(C)’
  359 | constexpr auto _make_char_class(C c)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:359:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note: candidate: ‘template<class CharT, CharT C, class> constexpr auto lexyd::_make_char_class(lexyd::_lit<CharT, C>)’
  366 | constexpr auto _make_char_class(_lit<CharT, C>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:366:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_lit<CharT, C>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note: candidate: ‘template<char32_t CP> constexpr auto lexyd::_make_char_class(lexyd::_lcp<CP>)’
  374 | constexpr auto _make_char_class(_lcp<CP>)
      |                ^~~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:374:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:424:39: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_lcp<CP>’
  424 |     -> _calt<decltype(_make_char_class(r1)), decltype(_make_char_class(r2))>
      |                       ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note: candidate: ‘template<class ... Cs, class C> constexpr lexyd::_calt<Cs ..., decltype (lexyd::_make_char_class(c))> lexyd::operator/(lexyd::_calt<Cs ...>, C)’
  430 | constexpr auto operator/(_calt<Cs...>, C c) -> _calt<Cs..., decltype(_make_char_class(c))>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:430:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note: candidate: ‘template<class C, class ... Cs> constexpr lexyd::_calt<decltype (lexyd::_make_char_class(c)), Cs ...> lexyd::operator/(C, lexyd::_calt<Cs ...>)’
  435 | constexpr auto operator/(C c, _calt<Cs...>) -> _calt<decltype(_make_char_class(c)), Cs...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:435:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'd', 'i', 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/ascii.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note: candidate: ‘template<class ... Cs, class ... Ds> constexpr lexyd::_calt<Cs ..., Ds ...> lexyd::operator/(lexyd::_calt<Cs ...>, lexyd::_calt<Cs ...>)’
  441 | constexpr auto operator/(_calt<Cs...>, _calt<Ds...>) -> _calt<Cs..., Ds...>
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/char_class.hpp:441:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:208:67: note:   ‘lexyd::_kw<lexyd::_id<lexyd::ascii::_alpha, lexyd::ascii::_alpha>, char, 'g', 'r', 'a', 'p', 'h'>’ is not derived from ‘lexyd::_calt<Cs ...>’
  208 |         static constexpr auto rule = dsl::capture(graph_keyword / digraph_keyword);
      |                                                                   ^~~~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp: In lambda function:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:50: error: no match for ‘operator+’ (operand types are ‘const lexyd::_nullopt’ and ‘const lexyd::_prd<dot_parser::parsing::g_keyword>’)
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                     ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
      |                                          |              |
      |                                          |              const lexyd::_prd<dot_parser::parsing::g_keyword>
      |                                          const lexyd::_nullopt
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:103:16: note: candidate: ‘template<class R, class S, class> constexpr auto lexyd::operator+(R, S)’
  103 | constexpr auto operator+(R, S)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:103:16: note:   template argument deduction/substitution failed:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:108:16: note: candidate: ‘template<class ... R, class S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, S)’
  108 | constexpr auto operator+(_seq<R...>, S)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:108:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_seq<R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:113:16: note: candidate: ‘template<class R, class ... S> constexpr auto lexyd::operator+(R, lexyd::_seq<S ...>)’
  113 | constexpr auto operator+(R, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:113:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_prd<dot_parser::parsing::g_keyword>’ is not derived from ‘lexyd::_seq<S ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:118:16: note: candidate: ‘template<class ... R, class ... S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, lexyd::_seq<S ...>)’
  118 | constexpr auto operator+(_seq<R...>, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sequence.hpp:118:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_seq<R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:72:16: note: candidate: ‘template<class Rule, class Condition, class ... R> constexpr auto lexyd::operator+(Rule, lexyd::_br<C, R ...>)’
   72 | constexpr auto operator+(Rule rule, _br<Condition, R...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:72:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_prd<dot_parser::parsing::g_keyword>’ is not derived from ‘lexyd::_br<C, R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:78:16: note: candidate: ‘template<class ... R, class Condition, class ... S> constexpr auto lexyd::operator+(lexyd::_seq<R ...>, lexyd::_br<C, R ...>)’
   78 | constexpr auto operator+(_seq<R...>, _br<Condition, S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:78:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_seq<R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:85:16: note: candidate: ‘template<class Condition, class ... R, class Rule> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, Rule)’
   85 | constexpr auto operator+(_br<Condition, R...>, Rule)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:85:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_br<Condition, R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:91:16: note: candidate: ‘template<class Condition, class ... R, class ... S> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, lexyd::_seq<S ...>)’
   91 | constexpr auto operator+(_br<Condition, R...>, _seq<S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:91:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_br<Condition, R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/member.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/aggregate.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:98:16: note: candidate: ‘template<class C1, class ... R, class C2, class ... S> constexpr auto lexyd::operator+(lexyd::_br<Condition, R ...>, lexyd::_br<C2, S ...>)’
   98 | constexpr auto operator+(_br<C1, R...>, _br<C2, S...>)
      |                ^~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/branch.hpp:98:16: note:   template argument deduction/substitution failed:
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:217:57: note:   ‘lexyd::_nullopt’ is not derived from ‘lexyd::_br<Condition, R ...>’
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                                         ^~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/match.hpp:7,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/token.hpp:7,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/literal.hpp:13,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/dsl/sign.hpp:10,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback/integer.hpp:8,
                 from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/callback.hpp:17,
                 from /home/shi/Workspace/dot_parser_cpp/src/include/parser.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/base.hpp: In instantiation of ‘constexpr lexy::_pc<Handler, State, Production, WhitespaceProduction>::_pc(lexy::_detail::parse_context_control_block<Handler, State>*) [with Handler = lexy::_ph<lexy::_prd>; State = void; Production = dot_parser::parsing::dot_graph; WhitespaceProduction = void]’:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/base.hpp:227:42:   required from ‘constexpr auto lexy::do_action(Handler&&, State*, Reader&) [with Production = dot_parser::parsing::dot_graph; Result = lexy::parse_action<void, lexy::string_input<lexy::default_encoding>, lexy_ext::_report_error<> >::result_type; Handler = lexy::_ph<lexy::_prd>; State = void; Reader = lexy::_prd]’
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/parse.hpp:164:56:   required from ‘constexpr auto lexy::parse_action<State, Input, ErrorCallback>::operator()(Production, const Input&) const [with Production = dot_parser::parsing::dot_graph; State = void; Input = lexy::string_input<lexy::default_encoding>; ErrorCallback = lexy_ext::_report_error<>]’
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/parse.hpp:173:62:   required from ‘constexpr auto lexy::parse(const Input&, const ErrorCallback&) [with Production = dot_parser::parsing::dot_graph; Input = lexy::string_input<lexy::default_encoding>; ErrorCallback = lexy_ext::_report_error<>]’
/home/shi/Workspace/dot_parser_cpp/src/parser.cpp:10:51:   required from here
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/base.hpp:131:7: error: no matching function for call to ‘lexy::_vh<lexy::_prd>::event_handler::event_handler(dot_parser::parsing::dot_graph)’
  131 |     : handler(Production{}), control_block(cb)
      |       ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/parse.hpp:9,
                 from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:4:
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:181:19: note: candidate: ‘constexpr lexy::_vh<Reader>::event_handler::event_handler(lexy::production_info) [with Reader = lexy::_prd]’
  181 |         constexpr event_handler(production_info info) : _begin(), _info(info) {}
      |                   ^~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:181:49: note:   no known conversion for argument 1 from ‘dot_parser::parsing::dot_graph’ to ‘lexy::production_info’
  181 |         constexpr event_handler(production_info info) : _begin(), _info(info) {}
      |                                 ~~~~~~~~~~~~~~~~^~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:176:11: note: candidate: ‘constexpr lexy::_vh<lexy::_prd>::event_handler::event_handler(const lexy::_vh<lexy::_prd>::event_handler&)’
  176 |     class event_handler
      |           ^~~~~~~~~~~~~
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:176:11: note:   no known conversion for argument 1 from ‘dot_parser::parsing::dot_graph’ to ‘const lexy::_vh<lexy::_prd>::event_handler&’
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:176:11: note: candidate: ‘constexpr lexy::_vh<lexy::_prd>::event_handler::event_handler(lexy::_vh<lexy::_prd>::event_handler&&)’
/home/shi/Workspace/dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:176:11: note:   no known conversion for argument 1 from ‘dot_parser::parsing::dot_graph’ to ‘lexy::_vh<lexy::_prd>::event_handler&&’
make[2]: *** [src/CMakeFiles/dot_parser.dir/build.make:104: src/CMakeFiles/dot_parser.dir/parser.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:985: src/CMakeFiles/dot_parser.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
❯ 
haasdo95 commented 1 year ago

Hello! It appears that somehow the operator / between dsl::ascii::blank and dsl::newline is not defined. Would you please change the line to constexpr auto wsr = dsl::whitespace((dsl::ascii::blank/dsl::ascii::newline) | multi_line_comment | line_comment); and try again? It will also be helpful if you could inform me of your toolchain (OS, compiler etc). Thanks!

shi27feng commented 1 year ago

Hi, I'm using Ubuntu 22.04 and the g++ is with the version:

❯ g++ --version
g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

and after applying the correction you proposed, I got below errors:

/.../dot_parser_cpp/lib/lexy/include/lexy/dsl/capture.hpp:129:25: error: static assertion failed
  129 |     static_assert(lexy::is_token_rule<Token>);
      |                   ~~~~~~^~~~~~~~~~~~~~~~~~~~
/.../dot_parser_cpp/lib/lexy/include/lexy/dsl/capture.hpp:129:25: note: ‘lexy::is_token_rule<lexyd::_br<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> >, lexyd::_whl<lexyd::_calt<lexyd::ascii::_word, lexyd::_ccp<43>, lexyd::_ccp<42>, lexyd::_ccp<46>, lexyd::_ccp<58>, lexyd::_ccp<33>, lexyd::_ccp<63>, lexyd::_ccp<36>, lexyd::_ccp<37>, lexyd::_ccp<38>, lexyd::_ccp<64>, lexyd::_ccp<40>, lexyd::_ccp<41>, lexyd::_ccp<60>, lexyd::_ccp<62>, lexyd::_ccp<39>, lexyd::_ccp<96>, lexyd::_ccp<124>, lexyd::_ccp<94>, lexyd::_ccp<126>, lexyd::_ccp<92> > > > >’ evaluates to false
In file included from /home/shi/Workspace/dot_parser_cpp/src/parser.cpp:1:
/.../dot_parser_cpp/src/include/parser.hpp: In lambda function:
/.../dot_parser_cpp/src/include/parser.hpp:70:49: error: no match for ‘operator/’ (operand types are ‘const lexyd::ascii::_blank’ and ‘lexy::_detail::to_type_string<lexyd::_lit, lexy::_detail::string_literal<2, char>{"/"}>’ {aka ‘lexyd::_lit<char, '/', '*'>’})
   70 |                     dsl::peek(dsl::ascii::blank / LEXY_LIT("/*")) >> (ws+(dsl::lit_c<';'>/dsl::lit_c<','>/dsl::token(dsl::nullopt))+ws)
      |                               ~~~~~~~~~~~~~~~~~ ^
      |                                           |
      |                                           const lexyd::ascii::_blank

...

/.../dot_parser_cpp/src/include/parser.hpp:217:50: error: no match for ‘operator+’ (operand types are ‘const lexyd::_nullopt’ and ‘const lexyd::_prd<dot_parser::parsing::g_keyword>’)
  217 |                 |   (dsl::else_ >> (dsl::nullopt + dsl::p<g_keyword>)))
      |                                     ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
      |                                          |              |
      |                                          |              const lexyd::_prd<dot_parser::parsing::g_keyword>
      |                                          const lexyd::_nullopt

and

/.../dot_parser_cpp/lib/lexy/include/lexy/action/base.hpp:131:7: error: no matching function for call to ‘lexy::_vh<lexy::_prd>::event_handler::event_handler(dot_parser::parsing::dot_graph)’
  131 |     : handler(Production{}), control_block(cb)
      |       ^~~~~~~~~~~~~~~~~~~~~
In file included from /.../dot_parser_cpp/lib/lexy/include/lexy/action/parse.hpp:9,
                 from /.../dot_parser_cpp/src/parser.cpp:4:
/.../dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:181:19: note: candidate: ‘constexpr lexy::_vh<Reader>::event_handler::event_handler(lexy::production_info) [with Reader = lexy::_prd]’
  181 |         constexpr event_handler(production_info info) : _begin(), _info(info) {}
      |                   ^~~~~~~~~~~~~
/.../dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:181:49: note:   no known conversion for argument 1 from ‘dot_parser::parsing::dot_graph’ to ‘lexy::production_info’
  181 |         constexpr event_handler(production_info info) : _begin(), _info(info) {}
      |                                 ~~~~~~~~~~~~~~~~^~~~
/.../dot_parser_cpp/lib/lexy/include/lexy/action/validate.hpp:176:11: note: candidate: ‘constexpr lexy::_vh<lexy::_prd>::event_handler::event_handler(const lexy::_vh<lexy::_prd>::event_handler&)’
  176 |     class event_handler
      |           ^~~~~~~~~~~~~
haasdo95 commented 1 year ago

I see. It appears that you are using a newer version of lexy, which is somehow not backward compatible. I'll take a look at it soon... Sorry for the inconvenience. Best.