diff options
Diffstat (limited to 'Build/source/utils/asymptote/interact.h')
-rw-r--r-- | Build/source/utils/asymptote/interact.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/interact.h b/Build/source/utils/asymptote/interact.h new file mode 100644 index 00000000000..317496b52d4 --- /dev/null +++ b/Build/source/utils/asymptote/interact.h @@ -0,0 +1,52 @@ +/***** + * interact.h + * + * The glue between the lexical analyzer and the readline library. + *****/ + +#ifndef INTERACT_H +#define INTERACT_H + +#include "common.h" + +namespace interact { + +extern bool interactive; +extern bool uptodate; +extern int lines; // Interactive scroll count +extern bool query; // Enable interactive scrolling; + +void init_interactive(); + +// Read a line from the input, without any processing. +string simpleline(string prompt); + +// Add a line of input to the readline history. +void addToHistory(string line); + +// Functions to work with the most recently entered line in the history. +string getLastHistoryLine(); +void setLastHistoryLine(string line); + +// Remove the line last added to the history. +void deleteLastLine(); + +// Write out the history of input lines to the history file. +void cleanup_interactive(); + +// This class is used to set a text completion function for readline. A class +// is used instead the usual function pointer so that information such as the +// current environment can be coded into the function (mimicking a closure). +class completer : public gc { +public: + virtual ~completer() {}; + virtual char *operator () (const char *text, int state) = 0; +}; + +void setCompleter(completer *c); + +#define YY_READ_BUF_SIZE YY_BUF_SIZE + +} + +#endif // INTERACT_H |