#pragma once #include "katom.h" #include "state.h" std::string to_string(std::vector::const_iterator begin, std::vector::const_iterator end, bool trim_result=false); std::string to_string(const std::vector& katoms, bool trim_result=false); // std::vector process_katoms( // const std::string& s, State& state, const std::string& source, // bool nonascii=true, bool literal=true, bool ignore=true, bool whitespace=true, // bool klammers=true, bool eval=true, bool cond=true, bool read=true); bool level_increase(const Katom& k); bool level_decrease(const Katom& k); const katom_list::iterator find_katom_named(const katom_list::iterator begin, const katom_list::iterator end, std::string name); const std::vector::iterator find_katom(const std::vector::iterator begin, const std::vector::iterator end, size_t index); std::vector> find_spans(std::vector::iterator begin, std::vector::iterator end, const std::function& level_inc, const std::function& level_dec, bool error_exit, const std::string& name); std::vector> find_spans(std::vector& katoms, const std::function& level_inc, const std::function& level_dec, bool error_exit=true, const std::string& name="all"); void describe_spans(const std::vector& katoms); std::pair::iterator, std::vector::iterator> find_span_katoms(std::vector& katoms, const Katom& begin, const Katom& end); std::pair::iterator, std::vector::iterator> find_span_katoms( std::vector::iterator kbegin, std::vector::iterator kend, const Katom& begin, const Katom& end); void encode_nonascii_characters(std::vector& katoms); void mark_literal_katoms(std::vector& katoms); void hide_special_katoms(std::vector& katoms); void mark_ignored_katoms(std::vector& katoms); void process_klammer_katoms(std::vector& katoms);