diff --git a/build/autotools/m4/lol-conf.m4 b/build/autotools/m4/lol-conf.m4 index f557665d..61397cb7 100644 --- a/build/autotools/m4/lol-conf.m4 +++ b/build/autotools/m4/lol-conf.m4 @@ -65,7 +65,7 @@ dnl Activate some header-only libraries dnl LOL_CFLAGS="$LOL_CFLAGS -I\$(lol_srcdir)/src/3rdparty/mingw-std-threads" -LOL_CFLAGS="$LOL_CFLAGS -I\$(lol_srcdir)/src/3rdparty/pegtl" +LOL_CFLAGS="$LOL_CFLAGS -I\$(lol_srcdir)/src/3rdparty/pegtl/include" LOL_CFLAGS="$LOL_CFLAGS -I\$(lol_srcdir)/src/3rdparty/imgui" dnl Use system-provided getopt_long? diff --git a/build/msbuild/lol.vars.props b/build/msbuild/lol.vars.props index 305de763..23b339ab 100644 --- a/build/msbuild/lol.vars.props +++ b/build/msbuild/lol.vars.props @@ -5,7 +5,7 @@ $(LolDir)\external - $(LolDir)\src/3rdparty\pegtl + $(LolDir)\src/3rdparty\pegtl\include $(PegtlDir) diff --git a/src/3rdparty/lol-pegtl.am b/src/3rdparty/lol-pegtl.am index ec4de00f..931a9a9d 100644 --- a/src/3rdparty/lol-pegtl.am +++ b/src/3rdparty/lol-pegtl.am @@ -1,119 +1,138 @@ pegtl_sources = \ - pegtl/pegtl/action_input.hh \ - pegtl/pegtl/analysis/analyze_cycles.hh \ - pegtl/pegtl/analysis/counted.hh \ - pegtl/pegtl/analysis/generic.hh \ - pegtl/pegtl/analysis/grammar_info.hh \ - pegtl/pegtl/analysis/insert_guard.hh \ - pegtl/pegtl/analysis/insert_rules.hh \ - pegtl/pegtl/analysis/rule_info.hh \ - pegtl/pegtl/analysis/rule_type.hh \ - pegtl/pegtl/analyze.hh \ - pegtl/pegtl/apply_mode.hh \ - pegtl/pegtl/ascii.hh \ - pegtl/pegtl/buffer_input.hh \ - pegtl/pegtl/contrib/abnf.hh \ - pegtl/pegtl/contrib/alphabet.hh \ - pegtl/pegtl/contrib/changes.hh \ - pegtl/pegtl/contrib/http.hh \ - pegtl/pegtl/contrib/json.hh \ - pegtl/pegtl/contrib/raw_string.hh \ - pegtl/pegtl/contrib/unescape.hh \ - pegtl/pegtl/contrib/uri.hh \ - pegtl/pegtl/cr_crlf_eol.hh \ - pegtl/pegtl/cr_eol.hh \ - pegtl/pegtl/crlf_eol.hh \ - pegtl/pegtl/eol.hh \ - pegtl/pegtl/file_parser.hh \ - pegtl/pegtl.hh \ - pegtl/pegtl/input_error.hh \ - pegtl/pegtl/internal/action.hh \ - pegtl/pegtl/internal/any.hh \ - pegtl/pegtl/internal/at.hh \ - pegtl/pegtl/internal/bump_util.hh \ - pegtl/pegtl/internal/bytes.hh \ - pegtl/pegtl/internal/control.hh \ - pegtl/pegtl/internal/cstream_reader.hh \ - pegtl/pegtl/internal/cstring_reader.hh \ - pegtl/pegtl/internal/demangle_cxxabi.hh \ - pegtl/pegtl/internal/demangle.hh \ - pegtl/pegtl/internal/demangle_nop.hh \ - pegtl/pegtl/internal/disable.hh \ - pegtl/pegtl/internal/discard.hh \ - pegtl/pegtl/internal/discard_if.hh \ - pegtl/pegtl/internal/enable.hh \ - pegtl/pegtl/internal/eof.hh \ - pegtl/pegtl/internal/eolf.hh \ - pegtl/pegtl/internal/eol.hh \ - pegtl/pegtl/internal/eol_impl.hh \ - pegtl/pegtl/internal/file_mapper.hh \ - pegtl/pegtl/internal/file_opener.hh \ - pegtl/pegtl/internal/file_reader.hh \ - pegtl/pegtl/internal/if_must_else.hh \ - pegtl/pegtl/internal/if_must.hh \ - pegtl/pegtl/internal/if_then_else.hh \ - pegtl/pegtl/internal/input_data.hh \ - pegtl/pegtl/internal/input_mark.hh \ - pegtl/pegtl/internal/input_pair.hh \ - pegtl/pegtl/internal/istream_reader.hh \ - pegtl/pegtl/internal/istring.hh \ - pegtl/pegtl/internal/list.hh \ - pegtl/pegtl/internal/list_must.hh \ - pegtl/pegtl/internal/list_tail.hh \ - pegtl/pegtl/internal/list_tail_pad.hh \ - pegtl/pegtl/internal/minus.hh \ - pegtl/pegtl/internal/must.hh \ - pegtl/pegtl/internal/not_at.hh \ - pegtl/pegtl/internal/one.hh \ - pegtl/pegtl/internal/opt.hh \ - pegtl/pegtl/internal/pad.hh \ - pegtl/pegtl/internal/pad_opt.hh \ - pegtl/pegtl/internal/peek_char.hh \ - pegtl/pegtl/internal/peek_utf16.hh \ - pegtl/pegtl/internal/peek_utf32.hh \ - pegtl/pegtl/internal/peek_utf8.hh \ - pegtl/pegtl/internal/pegtl_string.hh \ - pegtl/pegtl/internal/plus.hh \ - pegtl/pegtl/internal/raise.hh \ - pegtl/pegtl/internal/range.hh \ - pegtl/pegtl/internal/ranges.hh \ - pegtl/pegtl/internal/rep.hh \ - pegtl/pegtl/internal/rep_min.hh \ - pegtl/pegtl/internal/rep_min_max.hh \ - pegtl/pegtl/internal/rep_opt.hh \ - pegtl/pegtl/internal/require.hh \ - pegtl/pegtl/internal/result_on_found.hh \ - pegtl/pegtl/internal/rule_conjunction.hh \ - pegtl/pegtl/internal/rule_match_one.hh \ - pegtl/pegtl/internal/rule_match_three.hh \ - pegtl/pegtl/internal/rule_match_two.hh \ - pegtl/pegtl/internal/rules.hh \ - pegtl/pegtl/internal/seq.hh \ - pegtl/pegtl/internal/skip_control.hh \ - pegtl/pegtl/internal/sor.hh \ - pegtl/pegtl/internal/star.hh \ - pegtl/pegtl/internal/star_must.hh \ - pegtl/pegtl/internal/state.hh \ - pegtl/pegtl/internal/string.hh \ - pegtl/pegtl/internal/trivial.hh \ - pegtl/pegtl/internal/try_catch_type.hh \ - pegtl/pegtl/internal/until.hh \ - pegtl/pegtl/lf_crlf_eol.hh \ - pegtl/pegtl/lf_eol.hh \ - pegtl/pegtl/memory_input.hh \ - pegtl/pegtl/mmap_parser.hh \ - pegtl/pegtl/normal.hh \ - pegtl/pegtl/nothing.hh \ - pegtl/pegtl/parse_error.hh \ - pegtl/pegtl/parse.hh \ - pegtl/pegtl/position_info.hh \ - pegtl/pegtl/read_parser.hh \ - pegtl/pegtl/rules.hh \ - pegtl/pegtl/string_parser.hh \ - pegtl/pegtl/trace.hh \ - pegtl/pegtl/utf16.hh \ - pegtl/pegtl/utf32.hh \ - pegtl/pegtl/utf8.hh \ + pegtl/include/tao/pegtl/analysis/analyze_cycles.hpp \ + pegtl/include/tao/pegtl/analysis/counted.hpp \ + pegtl/include/tao/pegtl/analysis/generic.hpp \ + pegtl/include/tao/pegtl/analysis/grammar_info.hpp \ + pegtl/include/tao/pegtl/analysis/insert_guard.hpp \ + pegtl/include/tao/pegtl/analysis/insert_rules.hpp \ + pegtl/include/tao/pegtl/analysis/rule_info.hpp \ + pegtl/include/tao/pegtl/analysis/rule_type.hpp \ + pegtl/include/tao/pegtl/analyze.hpp \ + pegtl/include/tao/pegtl/apply_mode.hpp \ + pegtl/include/tao/pegtl/argv_input.hpp \ + pegtl/include/tao/pegtl/ascii.hpp \ + pegtl/include/tao/pegtl/buffer_input.hpp \ + pegtl/include/tao/pegtl/config.hpp \ + pegtl/include/tao/pegtl/contrib/abnf.hpp \ + pegtl/include/tao/pegtl/contrib/alphabet.hpp \ + pegtl/include/tao/pegtl/contrib/changes.hpp \ + pegtl/include/tao/pegtl/contrib/counter.hpp \ + pegtl/include/tao/pegtl/contrib/http.hpp \ + pegtl/include/tao/pegtl/contrib/json.hpp \ + pegtl/include/tao/pegtl/contrib/raw_string.hpp \ + pegtl/include/tao/pegtl/contrib/rep_one_min_max.hpp \ + pegtl/include/tao/pegtl/contrib/to_string.hpp \ + pegtl/include/tao/pegtl/contrib/tracer.hpp \ + pegtl/include/tao/pegtl/contrib/unescape.hpp \ + pegtl/include/tao/pegtl/contrib/uri.hpp \ + pegtl/include/tao/pegtl/cstream_input.hpp \ + pegtl/include/tao/pegtl/eol.hpp \ + pegtl/include/tao/pegtl/file_input.hpp \ + pegtl/include/tao/pegtl.hpp \ + pegtl/include/tao/pegtl/input_error.hpp \ + pegtl/include/tao/pegtl/internal/action.hpp \ + pegtl/include/tao/pegtl/internal/action_input.hpp \ + pegtl/include/tao/pegtl/internal/alnum.hpp \ + pegtl/include/tao/pegtl/internal/alpha.hpp \ + pegtl/include/tao/pegtl/internal/any.hpp \ + pegtl/include/tao/pegtl/internal/apply0.hpp \ + pegtl/include/tao/pegtl/internal/apply.hpp \ + pegtl/include/tao/pegtl/internal/at.hpp \ + pegtl/include/tao/pegtl/internal/bof.hpp \ + pegtl/include/tao/pegtl/internal/bol.hpp \ + pegtl/include/tao/pegtl/internal/bump_help.hpp \ + pegtl/include/tao/pegtl/internal/bump_impl.hpp \ + pegtl/include/tao/pegtl/internal/bytes.hpp \ + pegtl/include/tao/pegtl/internal/control.hpp \ + pegtl/include/tao/pegtl/internal/cr_crlf_eol.hpp \ + pegtl/include/tao/pegtl/internal/cr_eol.hpp \ + pegtl/include/tao/pegtl/internal/crlf_eol.hpp \ + pegtl/include/tao/pegtl/internal/cstream_reader.hpp \ + pegtl/include/tao/pegtl/internal/cstring_reader.hpp \ + pegtl/include/tao/pegtl/internal/demangle_cxxabi.hpp \ + pegtl/include/tao/pegtl/internal/demangle.hpp \ + pegtl/include/tao/pegtl/internal/demangle_nop.hpp \ + pegtl/include/tao/pegtl/internal/demangle_sanitise.hpp \ + pegtl/include/tao/pegtl/internal/disable.hpp \ + pegtl/include/tao/pegtl/internal/discard.hpp \ + pegtl/include/tao/pegtl/internal/dusel_mode.hpp \ + pegtl/include/tao/pegtl/internal/duseltronik.hpp \ + pegtl/include/tao/pegtl/internal/enable.hpp \ + pegtl/include/tao/pegtl/internal/eof.hpp \ + pegtl/include/tao/pegtl/internal/eolf.hpp \ + pegtl/include/tao/pegtl/internal/eol.hpp \ + pegtl/include/tao/pegtl/internal/file_mapper.hpp \ + pegtl/include/tao/pegtl/internal/file_opener.hpp \ + pegtl/include/tao/pegtl/internal/file_reader.hpp \ + pegtl/include/tao/pegtl/internal/has_apply0.hpp \ + pegtl/include/tao/pegtl/internal/identifier.hpp \ + pegtl/include/tao/pegtl/internal/if_apply.hpp \ + pegtl/include/tao/pegtl/internal/if_must_else.hpp \ + pegtl/include/tao/pegtl/internal/if_must.hpp \ + pegtl/include/tao/pegtl/internal/if_then_else.hpp \ + pegtl/include/tao/pegtl/internal/input_pair.hpp \ + pegtl/include/tao/pegtl/internal/integer_sequence.hpp \ + pegtl/include/tao/pegtl/internal/istream_reader.hpp \ + pegtl/include/tao/pegtl/internal/istring.hpp \ + pegtl/include/tao/pegtl/internal/iterator.hpp \ + pegtl/include/tao/pegtl/internal/lf_crlf_eol.hpp \ + pegtl/include/tao/pegtl/internal/lf_eol.hpp \ + pegtl/include/tao/pegtl/internal/list.hpp \ + pegtl/include/tao/pegtl/internal/list_must.hpp \ + pegtl/include/tao/pegtl/internal/list_tail.hpp \ + pegtl/include/tao/pegtl/internal/list_tail_pad.hpp \ + pegtl/include/tao/pegtl/internal/marker.hpp \ + pegtl/include/tao/pegtl/internal/minus.hpp \ + pegtl/include/tao/pegtl/internal/must.hpp \ + pegtl/include/tao/pegtl/internal/not_at.hpp \ + pegtl/include/tao/pegtl/internal/one.hpp \ + pegtl/include/tao/pegtl/internal/opt.hpp \ + pegtl/include/tao/pegtl/internal/pad.hpp \ + pegtl/include/tao/pegtl/internal/pad_opt.hpp \ + pegtl/include/tao/pegtl/internal/peek_char.hpp \ + pegtl/include/tao/pegtl/internal/peek_utf16.hpp \ + pegtl/include/tao/pegtl/internal/peek_utf32.hpp \ + pegtl/include/tao/pegtl/internal/peek_utf8.hpp \ + pegtl/include/tao/pegtl/internal/pegtl_string.hpp \ + pegtl/include/tao/pegtl/internal/plus.hpp \ + pegtl/include/tao/pegtl/internal/raise.hpp \ + pegtl/include/tao/pegtl/internal/range.hpp \ + pegtl/include/tao/pegtl/internal/ranges.hpp \ + pegtl/include/tao/pegtl/internal/rep.hpp \ + pegtl/include/tao/pegtl/internal/rep_min.hpp \ + pegtl/include/tao/pegtl/internal/rep_min_max.hpp \ + pegtl/include/tao/pegtl/internal/rep_opt.hpp \ + pegtl/include/tao/pegtl/internal/require.hpp \ + pegtl/include/tao/pegtl/internal/result_on_found.hpp \ + pegtl/include/tao/pegtl/internal/rule_conjunction.hpp \ + pegtl/include/tao/pegtl/internal/rules.hpp \ + pegtl/include/tao/pegtl/internal/seq.hpp \ + pegtl/include/tao/pegtl/internal/skip_control.hpp \ + pegtl/include/tao/pegtl/internal/sor.hpp \ + pegtl/include/tao/pegtl/internal/star.hpp \ + pegtl/include/tao/pegtl/internal/star_must.hpp \ + pegtl/include/tao/pegtl/internal/state.hpp \ + pegtl/include/tao/pegtl/internal/string.hpp \ + pegtl/include/tao/pegtl/internal/trivial.hpp \ + pegtl/include/tao/pegtl/internal/try_catch_type.hpp \ + pegtl/include/tao/pegtl/internal/until.hpp \ + pegtl/include/tao/pegtl/istream_input.hpp \ + pegtl/include/tao/pegtl/memory_input.hpp \ + pegtl/include/tao/pegtl/mmap_input.hpp \ + pegtl/include/tao/pegtl/normal.hpp \ + pegtl/include/tao/pegtl/nothing.hpp \ + pegtl/include/tao/pegtl/parse_error.hpp \ + pegtl/include/tao/pegtl/parse.hpp \ + pegtl/include/tao/pegtl/position.hpp \ + pegtl/include/tao/pegtl/read_input.hpp \ + pegtl/include/tao/pegtl/rewind_mode.hpp \ + pegtl/include/tao/pegtl/rules.hpp \ + pegtl/include/tao/pegtl/string_input.hpp \ + pegtl/include/tao/pegtl/tracking_mode.hpp \ + pegtl/include/tao/pegtl/utf16.hpp \ + pegtl/include/tao/pegtl/utf32.hpp \ + pegtl/include/tao/pegtl/utf8.hpp \ + pegtl/include/tao/pegtl/version.hpp \ $(NULL) diff --git a/src/3rdparty/pegtl b/src/3rdparty/pegtl index 267e992c..ffefbefc 160000 --- a/src/3rdparty/pegtl +++ b/src/3rdparty/pegtl @@ -1 +1 @@ -Subproject commit 267e992c17074a1afdc35ac361f7dd7525c37939 +Subproject commit ffefbefc8d2a320d93face402dfb2b3ed7490cff diff --git a/src/gpu/shader.cpp b/src/gpu/shader.cpp index bac1b176..390e337b 100644 --- a/src/gpu/shader.cpp +++ b/src/gpu/shader.cpp @@ -21,7 +21,7 @@ # undef WIN32_LEAN_AND_MEAN #endif -#include "pegtl.hh" +#include "tao/pegtl.hpp" #include "lolgl.h" @@ -99,6 +99,7 @@ int ShaderData::nshaders = 0; * LolFx parser */ +using namespace tao; using namespace pegtl; struct lolfx_parser @@ -154,14 +155,16 @@ public: lolfx_parser(String const &code) : m_section("header") { - pegtl::parse_string(code.C(), "shader", this); + string_input<> in(code.C(), "shader"); + pegtl::parse(in, this); } }; template<> struct lolfx_parser::action { - static void apply(action_input const &in, lolfx_parser *that) + template + static void apply(INPUT const &in, lolfx_parser *that) { that->m_section = in.string().c_str(); } @@ -170,7 +173,8 @@ struct lolfx_parser::action template<> struct lolfx_parser::action { - static void apply(action_input const &in, lolfx_parser *that) + template + static void apply(INPUT const &in, lolfx_parser *that) { that->m_programs[that->m_section] = in.string().c_str(); }