repl

package
v0.0.0-beta2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package repl は対話モード(REPL)時に使われるパッケージです。

// 標準モジュールの読み込み
mods := modules.GetModuleMapAll()
// REPL インスタンスの作成
tempREPL := repl.REPL{
	Prompt:   "> ",  // 対話モード(REPL)時のプロンプト
	QuitWord: "bye", // 対話モード(REPL)時の終了キーワード
}
// REPL の起動(実行)
tempREPL.Run(mods, os.Stdin, os.Stdout)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Interactor

type Interactor struct {
	StdIn       *bufio.Scanner
	StdOut      *io.Writer
	FileSet     *parser.SourceFileSet
	Modules     *tengo.ModuleMap
	SymbolTable *tengo.SymbolTable
	Globals     []tengo.Object
	Constants   []tengo.Object
}

Interactor は対話モード(REPL)時のループ処理で再利用されるポインタや オブジェクトを保持します。 主に InteractREPL() の引数を少なく(すっきり)させるために使われます。

type REPL

type REPL struct {
	Prompt   string // 対話モード(REPL)時のプロンプト
	QuitWord string // 対話モード(REPL)時の終了キーワード
}

REPL は対話モード(REPL)でスクリプトを実行するためのオブジェクトを定義します。

func (*REPL) InteractREPL

func (r *REPL) InteractREPL(interactor *Interactor) (doContinue, doReturn bool)

InteractREPL は対話モード(REPL)時の、ユーザーの 1 アクションごとの処理です。 標準入力(Interactor オブジェクトの StdIn フィールド)からコードを受け取り、 実行します。

func (*REPL) Run

func (r *REPL) Run(modules *tengo.ModuleMap, in io.Reader, out io.Writer)

Run は対話モードを開始(REPL で実行)します。

in から受け取ったスクリプトを実行し、out に出力します。 スクリプト実行時に使うモジュールは、予め modules に含めておく必要があります。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL