TypeDoc API
TagScript
classes
Interpreter

Class: Interpreter

The TagScript interpreter.

Constructors

constructor

new Interpreter(...parsers)

Parameters

NameType
...parsersIParser[]

Properties

parsers

Protected parsers: IParser[]

Methods

addParsers

addParsers(...parsers): void

Add more parsers

Parameters

NameTypeDescription
...parsersIParser[]The parsers to add.

Returns

void


checkWorkload

Private checkWorkload(charLimit, totalWork, output): undefined | number

Parameters

NameType
charLimitnull | number
totalWorknumber
outputstring

Returns

undefined | number


getAcceptors

Protected getAcceptors(ctx): Promise (opens in a new tab)<IParser[]>

Parameters

NameType
ctxContext

Returns

Promise (opens in a new tab)<IParser[]>


getContext

Private getContext(node, final, response, originalMessage, tagLimit, parenType?): Context

Parameters

NameTypeDefault value
nodeNodeundefined
finalstringundefined
responseResponseundefined
originalMessagestringundefined
tagLimitnumberundefined
parenTypeParenTypeParenType.Both

Returns

Context


processTags

Private processTags(ctx, node): Promise (opens in a new tab)<null | string>

Parameters

NameType
ctxContext
nodeNode

Returns

Promise (opens in a new tab)<null | string>


run

run(message, seedVariables?, charLimit?, tagLimit?, parenType?, keyValues?): Promise (opens in a new tab)<Response>

Processes a given TagScript string.

Parameters

NameTypeDefault valueDescription
messagestringundefinedThe TagScript string that to be processed.
seedVariablesObject{}A object containing strings to transformer to provide context variables for processing.
charLimitnull | numbernullThe maximum characters to process.
tagLimitnumber2_000The maximum tags to process.
parenTypeParenTypeParenType.BothWhether the parameter should be followed after a "." or use parenthesis or both.
keyValuesIKeyValues{}Additional key value pairs that may be used by parsers during parsing.

Returns

Promise (opens in a new tab)<Response>

  • Response class containing the raw string, processed body, actions and variables.

setParsers

setParsers(...parsers): void

Set new parsers

Parameters

NameTypeDescription
...parsersIParser[]The parsers to set.

Returns

void


solve

Private solve(message, nodeOrderedList, response, charLimit, tagLimit?, parenType?): Promise (opens in a new tab)<string>

Parameters

NameTypeDefault value
messagestringundefined
nodeOrderedListNode[]undefined
responseResponseundefined
charLimitnull | numberundefined
tagLimitnumber2_000
parenTypeParenTypeParenType.Both

Returns

Promise (opens in a new tab)<string>


textDeform

Private textDeform(start, end, final, output): [string, number]

Parameters

NameType
startnumber
endnumber
finalstring
outputstring

Returns

[string, number]


translateNodes

Private translateNodes(nodeOrderedList, index, start, differential): void

Parameters

NameType
nodeOrderedListNode[]
indexnumber
startnumber
differentialnumber

Returns

void