All Projects → mysticatea → Regexpp

mysticatea / Regexpp

Licence: mit
The regular expression parser for ECMAScript.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
ecmascript
72 projects

Projects that are alternatives of or similar to Regexpp

Spoon
Spoon is a metaprogramming library to analyze and transform Java source code (up to Java 15). 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Stars: ✭ 1,078 (+1011.34%)
Mutual labels:  abstract-syntax-tree, parser
Javaparser
Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13
Stars: ✭ 3,972 (+3994.85%)
Mutual labels:  abstract-syntax-tree, parser
Vermin
Concurrently detect the minimum Python versions needed to run code
Stars: ✭ 218 (+124.74%)
Mutual labels:  abstract-syntax-tree, parser
Marko
A markdown parser with high extensibility.
Stars: ✭ 77 (-20.62%)
Mutual labels:  parser, regexp
Postcss Less
PostCSS Syntax for parsing LESS
Stars: ✭ 93 (-4.12%)
Mutual labels:  parser
Mediawiki
MediaWiki API wrapper in python http://pymediawiki.readthedocs.io/en/latest/
Stars: ✭ 89 (-8.25%)
Mutual labels:  parser
Sax Wasm
The first streamable, fixed memory XML, HTML, and JSX parser for WebAssembly.
Stars: ✭ 89 (-8.25%)
Mutual labels:  parser
Psd Parser
Photoshop Document Parser for .Net
Stars: ✭ 87 (-10.31%)
Mutual labels:  parser
Elm Markdown
Pure Elm markdown parsing and rendering
Stars: ✭ 96 (-1.03%)
Mutual labels:  parser
Duckling old
Deprecated in favor of https://github.com/facebook/duckling
Stars: ✭ 1,332 (+1273.2%)
Mutual labels:  parser
Java
jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go
Stars: ✭ 1,308 (+1248.45%)
Mutual labels:  parser
Rst
PHP library to parse reStructuredText documents
Stars: ✭ 90 (-7.22%)
Mutual labels:  parser
Fbp
FBP flow definition language parser
Stars: ✭ 93 (-4.12%)
Mutual labels:  parser
Udt
UDT spec, reference library and related packages
Stars: ✭ 89 (-8.25%)
Mutual labels:  parser
Graphql Go Tools
Tools to write high performance GraphQL applications using Go/Golang.
Stars: ✭ 96 (-1.03%)
Mutual labels:  parser
Diffsitter
A tree-sitter based AST difftool to get meaningful semantic diffs
Stars: ✭ 89 (-8.25%)
Mutual labels:  parser
Libdparse
Library for lexing and parsing D source code
Stars: ✭ 91 (-6.19%)
Mutual labels:  parser
Argumentum
C++ command line parsing library
Stars: ✭ 92 (-5.15%)
Mutual labels:  parser
Csv Parser
Fast, header-only, extensively tested, C++11 CSV parser
Stars: ✭ 90 (-7.22%)
Mutual labels:  parser
Go
A high-performance 100% compatible drop-in replacement of "encoding/json"
Stars: ✭ 10,248 (+10464.95%)
Mutual labels:  parser

regexpp

npm version Downloads/month Build Status codecov Dependency Status

A regular expression parser for ECMAScript.

💿 Installation

$ npm install regexpp
  • require Node.js 8 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:

visitRegExpAST(ast, handlers)

Visit each node of a given AST.

This is equivalent to new RegExpVisitor(handlers).visit(ast).

RegExpParser

new RegExpParser(options?)

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 is 0.
    • end? (number) The end index in the source code. Default is source.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 is 0.
    • end? (number) The end index in the source code. Default is source.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 is 0.
    • end? (number) The end index in the source code. Default is source.length.
  • Return:
    • The AST of the regular expression flags.

RegExpValidator

new RegExpValidator(options)

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 is 0.
    • end? (number) The end index in the source code. Default is source.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 is 0.
    • end? (number) The end index in the source code. Default is source.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 is 0.
    • end? (number) The end index in the source code. Default is source.length.

RegExpVisitor

new RegExpVisitor(handlers)

visitor.visit(ast)

Validate a regular expression literal.

  • Parameters:

📰 Changelog

🍻 Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run build compiles TypeScript source code to index.js, index.js.map, and index.d.ts.
  • npm run clean removes the temporary files which are created by npm test and npm run build.
  • npm run lint runs ESLint.
  • npm run update:test updates test fixtures.
  • npm run update:ids updates src/unicode/ids.ts.
  • npm run watch runs tests with --watch option.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].