Files
klammertext/sks/kutil/show.cpp
Andy Kopra 2ba7ceee7a Initial commit: Klammertext source distribution
Curated source subset assembled by klammertext-dev's doc/make_dist.sh: the Klammermachine (mac), the Standard Klammer Set (sks), the commands (com), editor plugins and install guides (doc), a test subset (tst), and lib/bin placeholders. Builds with 'make -C com'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 19:32:38 +02:00

44 lines
964 B
C++

#include <string>
#include <sstream>
#include <map>
#include "util.h"
#include "eval.h"
#include "machine.h"
#include "klammer_base.h"
using namespace std;
extern "C" VISIBLE string show(std::map<std::string, std::string> args)
{
cout << "SHOW\n" << args << "\n";
return "SHOW";
string s = getarg(args, "s");
string target = getarg(args, "_target");
string kt = string_replace(s, "\\^\\^", "__CIRCUM__");
kt = string_replace(kt, "\\^", "");
kt = string_replace(kt, "__CIRCUM__", "HAT");
//kt = "@lit " + kt + " @";
cout << "Modified: " << kt << "\n";
Machine M {};
M.state.state.set("K_program_name", "show");
Text T(true);
T.read_string(kt);
T.parse();
M.extract_definitions(T);
M.apply(target, T);
string processed = M.to_string(target, T);
stringstream ss {};
//ss << s << sp_arrow << processed;
ss << "@t " << s << " @ | " << processed;
return ss.str();
}