regexpp
The regular expression parser for ECMAScript.
💿 Installation
$ npm install regexpp
- require Node.js 6.5.0 or newer.
📖 Usage
import {
AST,
RegExpParser,
RegExpValidator,
RegExpVisitor,
parseRegExpLiteral,
validateRegExpLiteral,
visitRegExpAST
} from "regexpp"
parseRegExpLiteral(source, options?)
Parse a given regular expression literal then make AST object.
This is equivalent to new RegExpParser(options).parseLiteral(source).
-
Parameters:
-
source(string | RegExp) The source code to parse. -
options?(RegExpParser.Options) The options to parse.
-
-
Return:
- The AST of the regular expression.
validateRegExpLiteral(source, options?)
Validate a given regular expression literal.
This is equivalent to new RegExpValidator(options).validateLiteral(source).
-
Parameters:
-
source(string) The source code to validate. -
options?(RegExpValidator.Options) The options to validate.
-
visitRegExpAST(ast, handlers)
Visit each node of a given AST.
This is equivalent to new RegExpVisitor(handlers).visit(ast).
-
Parameters:
-
ast(AST.Node) The AST to visit. -
handlers(RegExpVisitor.Handlers) The callbacks.
-
RegExpParser
new RegExpParser(options?)
-
Parameters:
-
options?(RegExpParser.Options) The options to parse.
-
parser.parseLiteral(source, start?, end?)
Parse a regular expression literal.
-
Parameters:
-
source(string) The source code to parse. E.g."/abc/g". -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length.
-
-
Return:
- The AST of the regular expression.
parser.parsePattern(source, start?, end?, uFlag?)
Parse a regular expression pattern.
-
Parameters:
-
source(string) The source code to parse. E.g."abc". -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length. -
uFlag?(boolean) The flag to enable Unicode mode.
-
-
Return:
- The AST of the regular expression pattern.
parser.parseFlags(source, start?, end?)
Parse a regular expression flags.
-
Parameters:
-
source(string) The source code to parse. E.g."gim". -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length.
-
-
Return:
- The AST of the regular expression flags.
RegExpValidator
new RegExpValidator(options)
-
Parameters:
-
options(RegExpValidator.Options) The options to validate.
-
validator.validateLiteral(source, start, end)
Validate a regular expression literal.
-
Parameters:
-
source(string) The source code to validate. -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length.
-
validator.validatePattern(source, start, end, uFlag)
Validate a regular expression pattern.
-
Parameters:
-
source(string) The source code to validate. -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length. -
uFlag?(boolean) The flag to enable Unicode mode.
-
validator.validateFlags(source, start, end)
Validate a regular expression flags.
-
Parameters:
-
source(string) The source code to validate. -
start?(number) The start index in the source code. Default is0. -
end?(number) The end index in the source code. Default issource.length.
-
RegExpVisitor
new RegExpVisitor(handlers)
-
Parameters:
-
handlers(RegExpVisitor.Handlers) The callbacks.
-
visitor.visit(ast)
Validate a regular expression literal.
-
Parameters:
-
ast(AST.Node) The AST to visit.
-
📰 Changelog
🍻 Contributing
Welcome contributing!
Please use GitHub's Issues/PRs.
Development Tools
-
npm testruns tests and measures coverage. -
npm run buildcompiles TypeScript source code toindex.js,index.js.map, andindex.d.ts. -
npm run cleanremoves the temporary files which are created bynpm testandnpm run build. -
npm run lintruns ESLint. -
npm run update:testupdates test fixtures. -
npm run update:idsupdatessrc/unicode/ids.ts. -
npm run watchruns tests with--watchoption.