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>
This commit is contained in:
43
sks/kutil/show.cpp
Normal file
43
sks/kutil/show.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user