summaryrefslogtreecommitdiffstats
path: root/node_modules/fastparse/README.md
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-18 23:26:45 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-18 23:26:45 +0100
commit81ddf9b700bc48a1f8e472209f080f9c1d9a9b09 (patch)
tree8b959d50c5a614cbf9fcb346ed556140374d4b6d /node_modules/fastparse/README.md
parent1870f3fdf43707a15fda0f609a021f516f45eb63 (diff)
downloadwebsite_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.tar.gz
website_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.tar.bz2
website_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.zip
rm node_modules
Diffstat (limited to 'node_modules/fastparse/README.md')
-rw-r--r--node_modules/fastparse/README.md118
1 files changed, 0 insertions, 118 deletions
diff --git a/node_modules/fastparse/README.md b/node_modules/fastparse/README.md
deleted file mode 100644
index ee33c3b..0000000
--- a/node_modules/fastparse/README.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# fastparse
-
-A very simple and stupid parser, based on a statemachine and regular expressions.
-
-It's not intended for complex languages. It's intended to easily write a simple parser for a simple language.
-
-
-
-## Usage
-
-Pass a description of statemachine to the constructor. The description must be in this form:
-
-``` javascript
-new Parser(description)
-
-description is {
- // The key is the name of the state
- // The value is an object containing possible transitions
- "state-name": {
- // The key is a regular expression
- // If the regular expression matches the transition is executed
- // The value can be "true", a other state name or a function
-
- "a": true,
- // true will make the parser stay in the current state
-
- "b": "other-state-name",
- // a string will make the parser transit to a new state
-
- "[cde]": function(match, index, matchLength) {
- // "match" will be the matched string
- // "index" will be the position in the complete string
- // "matchLength" will be "match.length"
-
- // "this" will be the "context" passed to the "parse" method"
-
- // A new state name (string) can be returned
- return "other-state-name";
- },
-
- "([0-9]+)(\\.[0-9]+)?": function(match, first, second, index, matchLength) {
- // groups can be used in the regular expression
- // they will match to arguments "first", "second"
- },
-
- // the parser stops when it cannot match the string anymore
-
- // order of keys is the order in which regular expressions are matched
- // if the javascript runtime preserves the order of keys in an object
- // (this is not standardized, but it's a de-facto standard)
- }
-}
-```
-
-The statemachine is compiled down to a single regular expression per state. So basically the parsing work is delegated to the (native) regular expression logic of the javascript runtime.
-
-
-``` javascript
-Parser.prototype.parse(initialState: String, parsedString: String, context: Object)
-```
-
-`initialState`: state where the parser starts to parse.
-
-`parsedString`: the string which should be parsed.
-
-`context`: an object which can be used to save state and results. Available as `this` in transition functions.
-
-returns `context`
-
-
-
-
-## Example
-
-``` javascript
-var Parser = require("fastparse");
-
-// A simple parser that extracts @licence ... from comments in a JS file
-var parser = new Parser({
- // The "source" state
- "source": {
- // matches comment start
- "/\\*": "comment",
- "//": "linecomment",
-
- // this would be necessary for a complex language like JS
- // but omitted here for simplicity
- // "\"": "string1",
- // "\'": "string2",
- // "\/": "regexp"
-
- },
- // The "comment" state
- "comment": {
- "\\*/": "source",
- "@licen[cs]e\\s((?:[^*\n]|\\*+[^*/\n])*)": function(match, licenseText) {
- this.licences.push(licenseText.trim());
- }
- },
- // The "linecomment" state
- "linecomment": {
- "\n": "source",
- "@licen[cs]e\\s(.*)": function(match, licenseText) {
- this.licences.push(licenseText.trim());
- }
- }
-});
-
-var licences = parser.parse("source", sourceCode, { licences: [] }).licences;
-
-console.log(licences);
-```
-
-
-
-## License
-
-MIT (http://www.opensource.org/licenses/mit-license.php)