/*! Copyright (c) 2020 Patrick Demian; Licensed under MIT */ /** * The parser for Human2Regex * @packageDocumentation */ import { EmbeddedActionsParser, IToken } from "chevrotain"; import { RegularExpressionCST, RegexDialect } from "./generator"; import { CommonError } from "./utilities"; /** * The options for the Parser */ export declare class Human2RegexParserOptions { skip_validations: boolean; /** * Constructor for Human2RegexParserOptions * * @param skip_validations If true, the lexer will skip validations (~25% faster) */ constructor(skip_validations?: boolean); } /** * Tokenization result */ export declare class ParseResult { private regexp_cst; errors: CommonError[]; /** * Constructor for the TokenizeResult * * @param tokens The token stream * @param errors A list of lexing errors */ constructor(regexp_cst: RegularExpressionCST, errors: CommonError[]); /** * Validate that this is both valid and can be generated in the specified language * * @remarks There is no guarantee toRegex or toRegExp will work unless validate returns no errors * * @param language the regex dialect we're validating * @returns A list of errors * @public */ validate(language: RegexDialect): CommonError[]; /** * Generate a regular expression string based on the parse result * * @remarks There is no guarantee toRegex will work unless validate returns no errors * * @param language the regex dialect we're generating * @returns a regular expression string * @public */ toRegex(language: RegexDialect): string; /** * Generate a RegExp object based on the parse result * * @remarks There is no guarantee toRegExp will work unless validate returns no errors * * @param language the regex dialect we're generating * @returns a RegExp object * @public */ toRegExp(language: RegexDialect): RegExp; } /** * The Parser class * * @remarks Only 1 parser instance allowed due to performance reasons */ export declare class Human2RegexParser extends EmbeddedActionsParser { private options; private static already_init; private regexp; /** * Parses the token stream * * @param tokens Tokens to parse * @returns a parse result which contains the token stream and error list * @public */ parse(tokens: IToken[]): ParseResult; constructor(options?: Human2RegexParserOptions); /** * Sets the options for this parser * * @param options options for the parser * @see Human2RegexParserOptions * @public */ setOptions(options: Human2RegexParserOptions): void; }