UNPKG

@tracespace/parser

Version:
24 lines (23 loc) 1.11 kB
import { Token } from '../lexer'; export declare const SINGLE_TOKEN = "TOKEN"; export declare const MIN_TO_MAX = "MIN_TO_MAX"; export interface SingleTokenRule { rule: typeof SINGLE_TOKEN; type: Token['type']; value: Token['value'] | RegExp | null | undefined; negate?: boolean; } export interface MinToMaxRule { rule: typeof MIN_TO_MAX; min: number; max: number; match: Array<SingleTokenRule>; } export declare type TokenRule = SingleTokenRule | MinToMaxRule; export declare function token(type: Token['type'], value?: Token['value'] | RegExp): SingleTokenRule; export declare function notToken(type: Token['type'], value?: Token['value']): SingleTokenRule; export declare function one(match: Array<SingleTokenRule>): MinToMaxRule; export declare function zeroOrOne(match: Array<SingleTokenRule>): MinToMaxRule; export declare function zeroOrMore(match: Array<SingleTokenRule>): MinToMaxRule; export declare function oneOrMore(match: Array<SingleTokenRule>): MinToMaxRule; export declare function minToMax(min: number, max: number, match: Array<SingleTokenRule>): MinToMaxRule;