miniscript library

Classes

BackPatch
BackPatch: represents a place where we need to patch the code to fill in a jump destination (once we figure out where that destination is).
Check
Context
TAC.Context keeps track of the runtime environment, including local variables. Context objects form a linked list via a "parent" reference, with a new context formed on each function call (this is known as the call stack).
Dictionary
Error
FunctionParam
Param: helper class representing a function parameter.
HostInfo
Information about the app hosting MiniScript.
Interpreter
Interpreter: an object that contains and runs one MiniScript script.
Intrinsic
Intrinsic: represents an intrinsic function available to MiniScript code.
IntrinsicResult
Result represents the result of an intrinsic call.
Intrinsics
Intrinsics: a class containing all standard MiniScript built-in intrinsics.
JumpPoint
JumpPoint: represents a place in the code we will need to jump to later (typically, the top of a loop of some sort).
Keywords
Static class containing MiniScript reserved keywords
Lexer
Line
Machine
TAC.Machine implements a complete MiniScript virtual machine. It keeps the context stack, keeps track of run time, and provides methods to step, stop, or reset the program.
Parser
ParseState
RValueEqualityComparer
Script
SourceLoc
TempValString
Token
UnitTest
ValFunction
ValFunction: a Value that is, in fact, a Function.
ValList
ValList represents a MiniScript list (which, under the hood, is just a wrapper for a List of Values).
ValMap<T>
ValMap represents a MiniScript map, which under the hood is just a Dictionary of Value, Value pairs.
ValNull
ValNull is an object to represent null in places where we can't use an actual null (such as a dictionary key or value).
ValNumber
ValNumber represents a numeric (double-precision floating point) value in MiniScript. Since we also use numbers to represent boolean values, ValNumber does that job too.
ValSeqElem
ValString
ValString represents a string (text) value.
ValTemp
Value
Value: abstract base class for the MiniScript type hierarchy. Defines a number of handy methods that you can call on ANY value (though some of these do nothing for some types).
ValuePair
ValuePair: used internally when working out whether two maps or lists are equal.
ValuePointer<T>
ValueReverseSorter
ValueSorter
ValVar
VFunction
Function: our internal representation of a MiniScript function. This includes its parameters and its code. (It does not include a name -- functions don't actually HAVE names; instead there are named variables whose value may happen to be a function.)

Enums

ErrorType
LineOp
LocalOnlyMode
TokenType
Token type enum

Functions

dump(List<Line> lines, int lineNumToHighlight, [int indent = 0]) → void
intrinsicByName(String name) ValNumber
isIdentical(Value? a, Value? b) bool
lTemp(int tempNum) ValTemp
lVar(String identifier) ValVar
num(double value) ValNumber
rTemp(int tempNum) ValTemp
str(String value) ValString

Typedefs

TextOutputMethod = void Function(String output, bool addLineBreak)
TextOutputMethod: a function typedef used to return text from the script (e.g. normal output, errors, etc.) to your Dart code.