roll-parser - v3.4.0
    Preparing search index...

    Class ParseError

    Error thrown when the parser encounters invalid syntax.

    position is a zero-based UTF-16 offset into the notation. It is deliberately absent from message — read it from the field, or uniformly across all roll-parser errors via getErrorSpan.

    import { ParseError, roll, TokenType } from 'roll-parser';

    try {
    roll('4d6d1');
    } catch (error) {
    const typed = error as ParseError;
    typed.code; // 'AMBIGUOUS_DICE_CHAIN'
    typed.position; // 3
    typed.token?.type === TokenType.DICE; // true
    }

    Hierarchy (View Summary)

    Index
    • Parameters

      • message: string
      • code:
            | "UNEXPECTED_CHARACTER"
            | "UNEXPECTED_IDENTIFIER"
            | "UNEXPECTED_TOKEN"
            | "UNEXPECTED_END"
            | "EXPECTED_TOKEN"
            | "INVALID_DICE_COUNT"
            | "INVALID_DICE_SIDES"
            | "DICE_LIMIT_EXCEEDED"
            | "DIVISION_BY_ZERO"
            | "MODULO_BY_ZERO"
            | "UNKNOWN_OPERATOR"
            | "UNKNOWN_NODE_TYPE"
            | "INVALID_KEEP_DROP_COUNT"
            | "INVALID_KEEP_DROP_TARGET"
            | "EXPLODE_LIMIT_EXCEEDED"
            | "INVALID_EXPLODE_TARGET"
            | "REROLL_LIMIT_EXCEEDED"
            | "INVALID_REROLL_TARGET"
            | "INVALID_SUCCESS_COUNT_TARGET"
            | "INVALID_SORT_TARGET"
            | "INVALID_CRIT_THRESHOLD_TARGET"
            | "INVALID_DIE_BOUND_TARGET"
            | "INVALID_THRESHOLD"
            | "NESTED_VERSUS"
            | "INVALID_FUNCTION_ARITY"
            | "UNKNOWN_FUNCTION"
            | "UNDEFINED_VARIABLE"
            | "INVALID_VARIABLE_VALUE"
            | "AMBIGUOUS_DICE_CHAIN"
            | "MAX_DEPTH_EXCEEDED"
            | "NON_FINITE_RESULT"
            | "INCOMPATIBLE_RNG_STATE"
            | "INVALID_EVALUATION_LIMIT"
            | "INVALID_NOTATION_TYPE"
      • position: number
      • Optionaltoken: Token
      • Optionaloptions: ErrorOptions

      Returns ParseError

    code:
        | "UNEXPECTED_CHARACTER"
        | "UNEXPECTED_IDENTIFIER"
        | "UNEXPECTED_TOKEN"
        | "UNEXPECTED_END"
        | "EXPECTED_TOKEN"
        | "INVALID_DICE_COUNT"
        | "INVALID_DICE_SIDES"
        | "DICE_LIMIT_EXCEEDED"
        | "DIVISION_BY_ZERO"
        | "MODULO_BY_ZERO"
        | "UNKNOWN_OPERATOR"
        | "UNKNOWN_NODE_TYPE"
        | "INVALID_KEEP_DROP_COUNT"
        | "INVALID_KEEP_DROP_TARGET"
        | "EXPLODE_LIMIT_EXCEEDED"
        | "INVALID_EXPLODE_TARGET"
        | "REROLL_LIMIT_EXCEEDED"
        | "INVALID_REROLL_TARGET"
        | "INVALID_SUCCESS_COUNT_TARGET"
        | "INVALID_SORT_TARGET"
        | "INVALID_CRIT_THRESHOLD_TARGET"
        | "INVALID_DIE_BOUND_TARGET"
        | "INVALID_THRESHOLD"
        | "NESTED_VERSUS"
        | "INVALID_FUNCTION_ARITY"
        | "UNKNOWN_FUNCTION"
        | "UNDEFINED_VARIABLE"
        | "INVALID_VARIABLE_VALUE"
        | "AMBIGUOUS_DICE_CHAIN"
        | "MAX_DEPTH_EXCEEDED"
        | "NON_FINITE_RESULT"
        | "INCOMPATIBLE_RNG_STATE"
        | "INVALID_EVALUATION_LIMIT"
        | "INVALID_NOTATION_TYPE"

    Stable programmatic identifier for the failure. Branch on this rather than on message, which is free to change between releases.

    position: number

    Zero-based UTF-16 offset in the notation where parsing failed.

    token: Token | undefined

    The token the parser was looking at. undefined when the failure is not anchored to a token — currently only UNEXPECTED_END, raised when the input stops short.