### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. module foo { import hilti; import spicy_rt; type A = struct { weak_ref __stream &internal &needed-by-feature="uses_stream"; iterator __begin &internal &needed-by-feature="uses_random_access"; optional> __position_update &internal &needed-by-feature="uses_random_access"; uint<64> __offset &internal &needed-by-feature="uses_offset"; spicy_rt::Parser __parser &static &internal &needed-by-feature="supports_filters" &needed-by-feature="supports_sinks"; spicy_rt::SinkState __sink &internal &needed-by-feature="supports_sinks"; strong_ref __filters &internal &needed-by-feature="supports_filters"; optional __error &always-emit &internal; hook void __on_0x25_init(); hook void __on_0x25_done(); hook void __on_0x25_error(string __except); hook optional __hook_to_string(); hook void __on_0x25_finally(); hook void __on_0x25_confirmed() &needed-by-feature="synchronization"; hook void __on_0x25_rejected() &needed-by-feature="synchronization"; hook void __on_0x25_synced() &needed-by-feature="synchronization"; hook void __on_0x25_gap(uint<64> seq, uint<64> len); hook void __on_0x25_overlap(uint<64> seq, bytes old, bytes new_); hook void __on_0x25_skipped(uint<64> seq); hook void __on_0x25_undelivered(uint<64> seq, bytes data); hook void __on_0x25_sync_advance(uint<64> offset) &needed-by-feature="uses_sync_advance"; method tuple, int<64>, const iterator, optional> __parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); method view parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method tuple, int<64>, const iterator, optional> __parse_foo__A_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; public type B = struct { weak_ref __stream &internal &needed-by-feature="uses_stream"; iterator __begin &internal &needed-by-feature="uses_random_access"; optional> __position_update &internal &needed-by-feature="uses_random_access"; uint<64> __offset &internal &needed-by-feature="uses_offset"; spicy_rt::Parser __parser &static &internal &needed-by-feature="supports_filters" &always-emit; spicy_rt::SinkState __sink &internal &needed-by-feature="supports_sinks"; strong_ref __filters &internal &needed-by-feature="supports_filters"; optional __error &always-emit &internal; hook void __on_0x25_init(); hook void __on_0x25_done(); hook void __on_0x25_error(string __except); hook optional __hook_to_string(); hook void __on_0x25_finally(); hook void __on_0x25_confirmed() &needed-by-feature="synchronization"; hook void __on_0x25_rejected() &needed-by-feature="synchronization"; hook void __on_0x25_synced() &needed-by-feature="synchronization"; hook void __on_0x25_gap(uint<64> seq, uint<64> len); hook void __on_0x25_overlap(uint<64> seq, bytes old, bytes new_); hook void __on_0x25_skipped(uint<64> seq); hook void __on_0x25_undelivered(uint<64> seq, bytes data); hook void __on_0x25_sync_advance(uint<64> offset) &needed-by-feature="uses_sync_advance"; method tuple, int<64>, const iterator, optional> __parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); method view parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method tuple, int<64>, const iterator, optional> __parse_foo__B_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; type C = struct { weak_ref __stream &internal &needed-by-feature="uses_stream"; iterator __begin &internal &needed-by-feature="uses_random_access"; optional> __position_update &internal &needed-by-feature="uses_random_access"; uint<64> __offset &internal &needed-by-feature="uses_offset"; spicy_rt::Parser __parser &static &internal &needed-by-feature="supports_filters" &needed-by-feature="supports_sinks"; spicy_rt::SinkState __sink &internal &needed-by-feature="supports_sinks"; strong_ref __filters &internal &needed-by-feature="supports_filters"; optional __error &always-emit &internal; hook void __on_0x25_init(); hook void __on_0x25_done(); hook void __on_0x25_error(string __except); hook optional __hook_to_string(); hook void __on_0x25_finally(); hook void __on_0x25_confirmed() &needed-by-feature="synchronization"; hook void __on_0x25_rejected() &needed-by-feature="synchronization"; hook void __on_0x25_synced() &needed-by-feature="synchronization"; hook void __on_0x25_gap(uint<64> seq, uint<64> len); hook void __on_0x25_overlap(uint<64> seq, bytes old, bytes new_); hook void __on_0x25_skipped(uint<64> seq); hook void __on_0x25_undelivered(uint<64> seq, bytes data); hook void __on_0x25_sync_advance(uint<64> offset) &needed-by-feature="uses_sync_advance"; method tuple, int<64>, const iterator, optional> __parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); method view parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method tuple, int<64>, const iterator, optional> __parse_foo__C_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; public type D = struct { value_ref _anon &optional &anonymous &no-emit; weak_ref __stream &internal &needed-by-feature="uses_stream"; iterator __begin &internal &needed-by-feature="uses_random_access"; optional> __position_update &internal &needed-by-feature="uses_random_access"; uint<64> __offset &internal &needed-by-feature="uses_offset"; spicy_rt::Parser __parser &static &internal &needed-by-feature="supports_filters" &always-emit; spicy_rt::SinkState __sink &internal &needed-by-feature="supports_sinks"; strong_ref __filters &internal &needed-by-feature="supports_filters"; optional __error &always-emit &internal; hook void __on_0x25_init(); hook void __on_0x25_done(); hook void __on_0x25_error(string __except); hook optional __hook_to_string(); hook void __on_0x25_finally(); hook void __on_0x25_confirmed() &needed-by-feature="synchronization"; hook void __on_0x25_rejected() &needed-by-feature="synchronization"; hook void __on_0x25_synced() &needed-by-feature="synchronization"; hook void __on_0x25_gap(uint<64> seq, uint<64> len); hook void __on_0x25_overlap(uint<64> seq, bytes old, bytes new_); hook void __on_0x25_skipped(uint<64> seq); hook void __on_0x25_undelivered(uint<64> seq, bytes data); hook void __on_0x25_sync_advance(uint<64> offset) &needed-by-feature="uses_sync_advance"; method tuple, int<64>, const iterator, optional> __parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); method view parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method tuple, int<64>, const iterator, optional> __parse_foo__D_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; type F = struct { weak_ref __stream &internal &needed-by-feature="uses_stream"; iterator __begin &internal &needed-by-feature="uses_random_access"; optional> __position_update &internal &needed-by-feature="uses_random_access"; uint<64> __offset &internal &needed-by-feature="uses_offset"; spicy_rt::Parser __parser &static &internal &needed-by-feature="supports_filters" &needed-by-feature="supports_sinks" &needed-by-feature="is_filter"; spicy_rt::SinkState __sink &internal &needed-by-feature="supports_sinks"; strong_ref __filters &internal &needed-by-feature="supports_filters"; weak_ref __forward &internal &needed-by-feature="is_filter"; optional __error &always-emit &internal; hook void __on_0x25_init(); hook void __on_0x25_done(); hook void __on_0x25_error(string __except); hook optional __hook_to_string(); hook void __on_0x25_finally(); hook void __on_0x25_confirmed() &needed-by-feature="synchronization"; hook void __on_0x25_rejected() &needed-by-feature="synchronization"; hook void __on_0x25_synced() &needed-by-feature="synchronization"; hook void __on_0x25_gap(uint<64> seq, uint<64> len); hook void __on_0x25_overlap(uint<64> seq, bytes old, bytes new_); hook void __on_0x25_skipped(uint<64> seq); hook void __on_0x25_undelivered(uint<64> seq, bytes data); hook void __on_0x25_sync_advance(uint<64> offset) &needed-by-feature="uses_sync_advance"; method tuple, int<64>, const iterator, optional> __parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); method view parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method view parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static; method tuple, int<64>, const iterator, optional> __parse_foo__F_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; const bool __feat%foo@@A%uses_offset = True; const bool __feat%foo@@A%uses_random_access = True; const bool __feat%foo@@A%uses_stream = True; const bool __feat%foo@@A%uses_sync_advance = True; const bool __feat%foo@@A%is_filter = False; const bool __feat%foo@@A%supports_filters = True; const bool __feat%foo@@A%supports_sinks = True; const bool __feat%foo@@A%synchronization = True; const bool __feat%foo@@B%uses_offset = True; const bool __feat%foo@@B%uses_random_access = True; const bool __feat%foo@@B%uses_stream = True; const bool __feat%foo@@B%uses_sync_advance = True; const bool __feat%foo@@B%is_filter = False; const bool __feat%foo@@B%supports_filters = True; const bool __feat%foo@@B%supports_sinks = True; const bool __feat%foo@@B%synchronization = True; const bool __feat%foo@@C%uses_offset = True; const bool __feat%foo@@C%uses_random_access = True; const bool __feat%foo@@C%uses_stream = True; const bool __feat%foo@@C%uses_sync_advance = True; const bool __feat%foo@@C%is_filter = False; const bool __feat%foo@@C%supports_filters = True; const bool __feat%foo@@C%supports_sinks = True; const bool __feat%foo@@C%synchronization = True; const bool __feat%foo@@D%uses_offset = True; const bool __feat%foo@@D%uses_random_access = True; const bool __feat%foo@@D%uses_stream = True; const bool __feat%foo@@D%uses_sync_advance = True; const bool __feat%foo@@D%is_filter = False; const bool __feat%foo@@D%supports_filters = True; const bool __feat%foo@@D%supports_sinks = True; const bool __feat%foo@@D%synchronization = True; const bool __feat%foo@@F%uses_offset = True; const bool __feat%foo@@F%uses_random_access = True; const bool __feat%foo@@F%uses_stream = True; const bool __feat%foo@@F%uses_sync_advance = True; const bool __feat%foo@@F%is_filter = True; const bool __feat%foo@@F%supports_filters = True; const bool __feat%foo@@F%supports_sinks = True; const bool __feat%foo@@F%synchronization = True; function void f1() { } public function void f2() { } method method tuple, int<64>, const iterator, optional> foo::A::__parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:18:10-18:16" local tuple, int<64>, const iterator, optional> __result = ; try { if ( ::__feat%foo@@A%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); local iterator __begin = begin(__cur); if ( ::__feat%foo@@A%uses_stream ) (*self).__stream = __data; if ( ::__feat%foo@@A%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@A%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_init(); if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; local strong_ref filtered = Null; if ( ::__feat%foo@@A%supports_filters ) { local uint<64> __offset1 = begin((*__data)).offset(); if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref __filtered_data = filtered; self.__parse_foo__A_stage2(__filtered_data, begin((*__filtered_data)), (*__filtered_data), __trim, __lah, __lahe, __error); local uint<64> __offset2 = begin((*__data)).offset(); __cur = __cur.advance(__offset2 - __offset1); if ( __trim ) (*__data).trim(begin(__cur)); __result = (__cur, __lah, __lahe, __error); } } if ( ! filtered ) __result = (*self).__parse_foo__A_stage2(__data, __begin, __cur, __trim, __lah, __lahe, __error); } catch ( hilti::SystemException __except ) { if ( ::__feat%foo@@A%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@A%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__on_0x25_error(hilti::exception_what(__except)); if ( ::__feat%foo@@A%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@A%supports_sinks ) (*self).__error = __error; if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; throw; } (*self).__error = __error; if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; return __result; } method method tuple, int<64>, const iterator, optional> foo::A::__parse_foo__A_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:18:10-18:16" local tuple, int<64>, const iterator, optional> __result = ; if ( ::__feat%foo@@A%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@A%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_done(); if ( ::__feat%foo@@A%uses_random_access || ::__feat%foo@@A%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; if ( ::__feat%foo@@A%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@A%supports_sinks ) hilti::debugDedent("spicy"); __result = (__cur, __lah, __lahe, __error); return __result; } method extern method view foo::A::parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:18:10-18:16" local value_ref __unit = value_ref(default()); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:18:10-18:16" # Begin parsing production: Unit: foo__A -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__A -> if ( ::__feat%foo@@A%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@A%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::A::parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:18:10-18:16" local value_ref __unit = value_ref(default()); spicy_rt::initializeParsedUnit((*__gunit), __unit); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:18:10-18:16" # Begin parsing production: Unit: foo__A -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__A -> if ( ::__feat%foo@@A%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@A%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::A::parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:18:10-18:16" local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:18:10-18:16" # Begin parsing production: Unit: foo__A -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__A -> if ( ::__feat%foo@@A%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@A%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } init function void __register_foo_A() { if ( ::__feat%foo@@A%is_filter || ::__feat%foo@@A%supports_sinks ) { foo::A::__parser = [$name="foo::A", $is_public=False, $parse1=foo::A::parse1, $parse2=foo::A::parse2, $parse3=foo::A::parse3, $context_new=Null, $type_=A, $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::A::__parser, $scope, Null); } } method method tuple, int<64>, const iterator, optional> foo::B::__parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:21:17-21:23" local tuple, int<64>, const iterator, optional> __result = ; try { if ( ::__feat%foo@@B%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); local iterator __begin = begin(__cur); if ( ::__feat%foo@@B%uses_stream ) (*self).__stream = __data; if ( ::__feat%foo@@B%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@B%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_init(); if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; local strong_ref filtered = Null; if ( ::__feat%foo@@B%supports_filters ) { local uint<64> __offset1 = begin((*__data)).offset(); if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref __filtered_data = filtered; self.__parse_foo__B_stage2(__filtered_data, begin((*__filtered_data)), (*__filtered_data), __trim, __lah, __lahe, __error); local uint<64> __offset2 = begin((*__data)).offset(); __cur = __cur.advance(__offset2 - __offset1); if ( __trim ) (*__data).trim(begin(__cur)); __result = (__cur, __lah, __lahe, __error); } } if ( ! filtered ) __result = (*self).__parse_foo__B_stage2(__data, __begin, __cur, __trim, __lah, __lahe, __error); } catch ( hilti::SystemException __except ) { if ( ::__feat%foo@@B%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@B%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__on_0x25_error(hilti::exception_what(__except)); if ( ::__feat%foo@@B%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@B%supports_sinks ) (*self).__error = __error; if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; throw; } (*self).__error = __error; if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; return __result; } method method tuple, int<64>, const iterator, optional> foo::B::__parse_foo__B_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:21:17-21:23" local tuple, int<64>, const iterator, optional> __result = ; if ( ::__feat%foo@@B%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@B%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_done(); if ( ::__feat%foo@@B%uses_random_access || ::__feat%foo@@B%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; if ( ::__feat%foo@@B%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@B%supports_sinks ) hilti::debugDedent("spicy"); __result = (__cur, __lah, __lahe, __error); return __result; } method extern method view foo::B::parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:21:17-21:23" local value_ref __unit = value_ref(default()); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:21:17-21:23" # Begin parsing production: Unit: foo__B -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__B -> if ( ::__feat%foo@@B%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@B%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::B::parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:21:17-21:23" local value_ref __unit = value_ref(default()); spicy_rt::initializeParsedUnit((*__gunit), __unit); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:21:17-21:23" # Begin parsing production: Unit: foo__B -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__B -> if ( ::__feat%foo@@B%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@B%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::B::parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:21:17-21:23" local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:21:17-21:23" # Begin parsing production: Unit: foo__B -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__B -> if ( ::__feat%foo@@B%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@B%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } init function void __register_foo_B() { foo::B::__parser = [$name="foo::B", $is_public=True, $parse1=foo::B::parse1, $parse2=foo::B::parse2, $parse3=foo::B::parse3, $context_new=Null, $type_=B, $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::B::__parser, $scope, Null); } method method tuple, int<64>, const iterator, optional> foo::C::__parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:24:10-24:16" local tuple, int<64>, const iterator, optional> __result = ; try { if ( ::__feat%foo@@C%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); local iterator __begin = begin(__cur); if ( ::__feat%foo@@C%uses_stream ) (*self).__stream = __data; if ( ::__feat%foo@@C%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@C%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_init(); if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; local strong_ref filtered = Null; if ( ::__feat%foo@@C%supports_filters ) { local uint<64> __offset1 = begin((*__data)).offset(); if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref __filtered_data = filtered; self.__parse_foo__C_stage2(__filtered_data, begin((*__filtered_data)), (*__filtered_data), __trim, __lah, __lahe, __error); local uint<64> __offset2 = begin((*__data)).offset(); __cur = __cur.advance(__offset2 - __offset1); if ( __trim ) (*__data).trim(begin(__cur)); __result = (__cur, __lah, __lahe, __error); } } if ( ! filtered ) __result = (*self).__parse_foo__C_stage2(__data, __begin, __cur, __trim, __lah, __lahe, __error); } catch ( hilti::SystemException __except ) { if ( ::__feat%foo@@C%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@C%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__on_0x25_error(hilti::exception_what(__except)); if ( ::__feat%foo@@C%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@C%supports_sinks ) (*self).__error = __error; if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; throw; } (*self).__error = __error; if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; return __result; } method method tuple, int<64>, const iterator, optional> foo::C::__parse_foo__C_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:24:10-24:16" local tuple, int<64>, const iterator, optional> __result = ; if ( ::__feat%foo@@C%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@C%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_done(); if ( ::__feat%foo@@C%uses_random_access || ::__feat%foo@@C%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; if ( ::__feat%foo@@C%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@C%supports_sinks ) hilti::debugDedent("spicy"); __result = (__cur, __lah, __lahe, __error); return __result; } method extern method view foo::C::parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:24:10-24:16" local value_ref __unit = value_ref(default()); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:24:10-24:16" # Begin parsing production: Unit: foo__C -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__C -> if ( ::__feat%foo@@C%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@C%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::C::parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:24:10-24:16" local value_ref __unit = value_ref(default()); spicy_rt::initializeParsedUnit((*__gunit), __unit); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:24:10-24:16" # Begin parsing production: Unit: foo__C -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__C -> if ( ::__feat%foo@@C%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@C%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::C::parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:24:10-24:16" local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:24:10-24:16" # Begin parsing production: Unit: foo__C -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__C -> if ( ::__feat%foo@@C%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@C%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } init function void __register_foo_C() { if ( ::__feat%foo@@C%is_filter || ::__feat%foo@@C%supports_sinks ) { foo::C::__parser = [$name="foo::C", $is_public=False, $parse1=foo::C::parse1, $parse2=foo::C::parse2, $parse3=foo::C::parse3, $context_new=Null, $type_=C, $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::C::__parser, $scope, Null); } } method method tuple, int<64>, const iterator, optional> foo::D::__parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:25:17-27:1" local tuple, int<64>, const iterator, optional> __result = ; try { if ( ::__feat%foo@@D%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); local iterator __begin = begin(__cur); if ( ::__feat%foo@@D%uses_stream ) (*self).__stream = __data; if ( ::__feat%foo@@D%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@D%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_init(); if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; local strong_ref filtered = Null; if ( ::__feat%foo@@D%supports_filters ) { local uint<64> __offset1 = begin((*__data)).offset(); if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref __filtered_data = filtered; self.__parse_foo__D_stage2(__filtered_data, begin((*__filtered_data)), (*__filtered_data), __trim, __lah, __lahe, __error); local uint<64> __offset2 = begin((*__data)).offset(); __cur = __cur.advance(__offset2 - __offset1); if ( __trim ) (*__data).trim(begin(__cur)); __result = (__cur, __lah, __lahe, __error); } } if ( ! filtered ) __result = (*self).__parse_foo__D_stage2(__data, __begin, __cur, __trim, __lah, __lahe, __error); } catch ( hilti::SystemException __except ) { if ( ::__feat%foo@@D%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@D%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__on_0x25_error(hilti::exception_what(__except)); if ( ::__feat%foo@@D%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@D%supports_sinks ) (*self).__error = __error; if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; throw; } (*self).__error = __error; if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; return __result; } method method tuple, int<64>, const iterator, optional> foo::D::__parse_foo__D_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:25:17-27:1" local tuple, int<64>, const iterator, optional> __result = ; local value_ref __transient__anon; # "<...>/unused-functions.spicy:24:10-24:16" # Begin parsing production: Unit: foo__C_2 -> __transient__anon = default(); (__cur, __lah, __lahe, __error) = (*__transient__anon).__parse_stage1(__data, __begin, __cur, __trim, __lah, __lahe, __error); # End parsing production: Unit: foo__C_2 -> if ( ::__feat%foo@@D%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@D%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); if ( ::__feat%foo@@D%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@D%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_done(); if ( ::__feat%foo@@D%uses_random_access || ::__feat%foo@@D%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; if ( ::__feat%foo@@D%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@D%supports_sinks ) hilti::debugDedent("spicy"); __result = (__cur, __lah, __lahe, __error); return __result; } method extern method view foo::D::parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:25:17-27:1" local value_ref __unit = value_ref(default()); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:25:17-27:1" # Begin parsing production: Unit: foo__D -> Resolved_5 (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__D -> Resolved_5 if ( ::__feat%foo@@D%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@D%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::D::parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:25:17-27:1" local value_ref __unit = value_ref(default()); spicy_rt::initializeParsedUnit((*__gunit), __unit); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:25:17-27:1" # Begin parsing production: Unit: foo__D -> Resolved_5 (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__D -> Resolved_5 if ( ::__feat%foo@@D%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@D%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::D::parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:25:17-27:1" local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:25:17-27:1" # Begin parsing production: Unit: foo__D -> Resolved_5 (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__D -> Resolved_5 if ( ::__feat%foo@@D%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@D%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } init function void __register_foo_D() { foo::D::__parser = [$name="foo::D", $is_public=True, $parse1=foo::D::parse1, $parse2=foo::D::parse2, $parse3=foo::D::parse3, $context_new=Null, $type_=D, $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::D::__parser, $scope, Null); } method method tuple, int<64>, const iterator, optional> foo::F::__parse_stage1(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:30:10-32:1" local tuple, int<64>, const iterator, optional> __result = ; try { if ( ::__feat%foo@@F%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); local iterator __begin = begin(__cur); if ( ::__feat%foo@@F%uses_stream ) (*self).__stream = __data; if ( ::__feat%foo@@F%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@F%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_init(); if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; local strong_ref filtered = Null; if ( ::__feat%foo@@F%supports_filters ) { local uint<64> __offset1 = begin((*__data)).offset(); if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref __filtered_data = filtered; self.__parse_foo__F_stage2(__filtered_data, begin((*__filtered_data)), (*__filtered_data), __trim, __lah, __lahe, __error); local uint<64> __offset2 = begin((*__data)).offset(); __cur = __cur.advance(__offset2 - __offset1); if ( __trim ) (*__data).trim(begin(__cur)); __result = (__cur, __lah, __lahe, __error); } } if ( ! filtered ) __result = (*self).__parse_foo__F_stage2(__data, __begin, __cur, __trim, __lah, __lahe, __error); } catch ( hilti::SystemException __except ) { if ( ::__feat%foo@@F%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@F%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__on_0x25_error(hilti::exception_what(__except)); if ( ::__feat%foo@@F%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@F%is_filter ) spicy_rt::filter_forward_eod(self); if ( ::__feat%foo@@F%supports_sinks ) (*self).__error = __error; if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; throw; } (*self).__error = __error; if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_finally(); if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; return __result; } method method tuple, int<64>, const iterator, optional> foo::F::__parse_foo__F_stage2(inout value_ref __data, iterator __begin, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/unused-functions.spicy:30:10-32:1" local tuple, int<64>, const iterator, optional> __result = ; if ( ::__feat%foo@@F%uses_random_access ) (*self).__begin = __begin; if ( ::__feat%foo@@F%uses_offset ) (*self).__offset = cast>(begin(__cur).offset() - __begin.offset()); (*self).__error = __error; if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) (*self).__position_update = Null; (*self).__on_0x25_done(); if ( ::__feat%foo@@F%uses_random_access || ::__feat%foo@@F%uses_offset ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); (*self).__position_update = Null; } __error = (*self).__error; if ( ::__feat%foo@@F%supports_filters ) spicy_rt::filter_disconnect(self); if ( ::__feat%foo@@F%is_filter ) spicy_rt::filter_forward_eod(self); if ( ::__feat%foo@@F%supports_sinks ) hilti::debugDedent("spicy"); __result = (__cur, __lah, __lahe, __error); return __result; } method extern method view foo::F::parse1(inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:30:10-32:1" local value_ref __unit = value_ref(default()); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:30:10-32:1" # Begin parsing production: Unit: foo__F -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__F -> if ( ::__feat%foo@@F%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@F%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::F::parse3(inout value_ref __gunit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:30:10-32:1" local value_ref __unit = value_ref(default()); spicy_rt::initializeParsedUnit((*__gunit), __unit); local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:30:10-32:1" # Begin parsing production: Unit: foo__F -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__F -> if ( ::__feat%foo@@F%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@F%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } method extern method view foo::F::parse2(inout value_ref __unit, inout value_ref __data, optional> __cur = Null, optional __context) &needed-by-feature="is_filter" &needed-by-feature="supports_sinks" &static { # "<...>/unused-functions.spicy:30:10-32:1" local view __ncur = __cur ? (*__cur) : cast>((*__data)); local int<64> __lahead = 0; local iterator __lahead_end; local optional __error = Null; # "<...>/unused-functions.spicy:30:10-32:1" # Begin parsing production: Unit: foo__F -> (__ncur, __lahead, __lahead_end, __error) = (*__unit).__parse_stage1(__data, begin(__ncur), __ncur, True, __lahead, __lahead_end, __error); # End parsing production: Unit: foo__F -> if ( ::__feat%foo@@F%uses_random_access ) (*__unit).__begin = begin(__ncur); if ( ::__feat%foo@@F%uses_offset ) (*__unit).__offset = cast>(begin(__ncur).offset() - begin(__ncur).offset()); if ( __error ) throw exception("successful synchronization never confirmed: %s" % (hilti::exception_what((*__error)))); return __ncur; } init function void __register_foo_F() { if ( ::__feat%foo@@F%is_filter || ::__feat%foo@@F%supports_sinks ) { foo::F::__parser = [$name="foo::F", $is_public=False, $parse1=foo::F::parse1, $parse2=foo::F::parse2, $parse3=foo::F::parse3, $context_new=Null, $type_=F, $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::F::__parser, $scope, Null); } } }