Ausgabe-Kanäle, Eingabe-Aufforderungen und Eingabe-Vorgaben |
Neben Blöcken der Form
DATA_BEGINformat:messageDATA_END
erlaubt das TeXmacs-Meta-Format auch noch Blöcke der Form
DATA_BEGINchannel#messageDATA_END
Hier spezifiziert channel einen „Ausgabe-Kanal”, an den der Rumpf, message, gerichtet ist. der Standard-Ausgabe-Kanal ist output. es gibt aber noch die Kanäle prompt und input, um die Eingabe-Aufforderung und eine Vorgabe für die nächst folgende Eingabe zu erzeugen. Für die Zukunft ist auch die Unterstützung von Fehler- und Status-Kanälen (error, status) geplant. Die Voreinstellung von Eingaben kann vor allem für Beispiele in Computer Algebra Systemen sein.
das Beispiel-Plugin prompt zeigt, wie man Eingabe-Aufforderungen verwenden kann. Es besteht aus den Dateien:
prompt/Makefile prompt/progs/init-prompt.scm prompt/src/prompt.cpp
Die Methode, die die nächste Eingabe-Aufforderung erzeugt ist diese
void
next_input () {
counter++;
cout << DATA_BEGIN << "prompt#";
cout << "Input " << counter << "] ";
cout << DATA_END;
}
Die folgende Methode dient zur Darstellung eines Begrüßungstextes und einer Eingabe-Aufforderung:
cout << DATA_BEGIN << "verbatim:";
cout << "A LaTeX -> TeXmacs converter";
next_input ();
cout << DATA_END;
fflush (stdout);
mit den folgenden Zeilen in der Hauptschleife
char buffer[100];
cin.getline (buffer, 100, '\n');
cout << DATA_BEGIN << "verbatim:";
cout << DATA_BEGIN;
cout << "latex:$" << buffer << "$";
cout << DATA_END;
next_input ();
cout << DATA_END;
fflush (stdout);