@tracespace/parser
Version:
Gerber and NC drill file parser
24 lines (23 loc) • 1.11 kB
TypeScript
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;