Skip to main content

module REPL

rascal-0.28.2

Usage

import util::REPL;

Dependencies

extend Content;

alias Completion

tuple[int offset, list[str] suggestions]

data REPL

data REPL  
= repl(
str title = "",
str welcome = "",
str prompt = "\n\>",
str quit = "",
loc history = |home:///.term-repl-history|,
Content (str command) handler = echo,
Completion(str line, int cursor) completor = noSuggestions,
str () stacktrace = str () { return ""; }
)
;

function echo

Content echo(str line)

function noSuggestions

Completion noSuggestions(str _, int _)

alias Terminal

tuple[void() run, void(str) send]

function newREPL

Terminal newREPL(REPL repl, 



// filling in defaults from the repl constructor, for use in the Java code:

str title = repl.title,

str welcome = repl.welcome,

str prompt = repl.prompt,

str quit = repl.quit,

loc history = repl.history,

Content (str ) handler = repl.handler,

Completion(str , int) completor = repl.completor,

str () stacktrace = repl.stacktrace)

function startREPL

void startREPL(REPL repl, 



// filling in defaults from the repl constructor, for use in the Java code:

str title = repl.title,

str welcome = repl.welcome,

str prompt = repl.prompt,

str quit = repl.quit,

loc history = repl.history,

Content (str ) handler = repl.handler,

Completion(str , int) completor = repl.completor,

str () stacktrace = repl.stacktrace)