mysticatea / Regexpp
Licence: mit
The regular expression parser for ECMAScript.
Stars: ✭ 97
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
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
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
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
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
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:
-
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 test
runs tests and measures coverage. -
npm run build
compiles TypeScript source code toindex.js
,index.js.map
, andindex.d.ts
. -
npm run clean
removes the temporary files which are created bynpm test
andnpm run build
. -
npm run lint
runs ESLint. -
npm run update:test
updates test fixtures. -
npm run update:ids
updatessrc/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].