UNPKG

dice-typescript

Version:

A TypeScript library for parsing dice rolling expressions, most commonly used in tabletop RPGs.

54 lines (53 loc) 3.79 kB
import * as Ast from '../ast'; import { DiceGenerator } from '../generator'; import { RandomProvider } from '../random'; import { DiceResult } from './dice-result.class'; import { InterpreterError } from './error-message.class'; import { FunctionDefinitionList } from './function-definition-list.class'; import { Interpreter } from './interpreter.interface'; import { InterpreterOptions } from './interpreter-options.interface'; export declare class DiceInterpreter implements Interpreter<DiceResult> { protected functions: FunctionDefinitionList; protected random: RandomProvider; protected generator: DiceGenerator; protected options: InterpreterOptions; constructor(functions?: FunctionDefinitionList, random?: RandomProvider, generator?: DiceGenerator, options?: InterpreterOptions); interpret(expression: Ast.ExpressionNode): DiceResult; evaluate(expression: Ast.ExpressionNode, errors: InterpreterError[]): any; evaluateAdd(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateSubtract(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateMultiply(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateDivide(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateModulo(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateExponent(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateNegate(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateNumber(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateDiceSides(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateDiceRoll(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateDice(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateFunction(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateGroup(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateRepeat(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateExplode(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateKeep(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateDrop(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateCritical(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateReroll(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateSort(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateEqual(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateGreater(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateGreaterOrEqual(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateLess(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; evaluateLessOrEqual(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; countSuccesses(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; countFailures(expression: Ast.ExpressionNode, errors: InterpreterError[]): number; private countSuccessOrFailure; private expectChildCount; private evaluateComparison; evaluateSuccess(expression: Ast.ExpressionNode, compare: (lhs: number, rhs: number) => boolean, errors: InterpreterError[]): number; private findDiceOrGroupNode; private getSortedDiceRolls; private createDiceRoll; private createDiceRollValue; private wouldRollAgainForever; }