apg-js-examples
Version:
Examples of using the suite of apg-js applications and libraries.
99 lines (66 loc) • 3.08 kB
Markdown
# apg-js-examples
## Description
This package contains a large set of examples of using `apg-js`,
the JavaScript version of APG, an ABNF Parser Generator.
Each example is in its own directory and in that directory is
a script, `main.sh`, which will execute the example. Each example has
multiple options. Running the script with
no arguments will display a desciption of the example and a
detailed list of the options available.
npm scripts are also available for each of these examples
in `package.json`. For example,
> ./src/ast/main.sh
and
> npm run ast
both run the AST test.
If executing the scripts directly or in with a debugger, they should be
excuted from the repository directory for correct relative path name alignment.
Each of the four libraries, apg-conv-api, apg-lib, apg-api and apg-exp,
has been bundled for browser use. Consequently, the examples for
each of these libraries contains an example of browser usage.
The browser-based example file names will have a "web-" prefix.
## Note on version 4.2.3
`apg-js-examples` version 4.2.3 adds a new example. Previously existing examples are unchanged.
The new example is a complete and well-tested URI ([RFC 3986](https://www.rfc-editor.org/rfc/rfc3986)) parser.
> npm run uri
will display a brief description and the help screen.
Any URI can be parsed with, for example:
> npm run uri -- http://user@example.com
A large number of unit tests covering many aspects of URI specifics are in the `src/uri/__tests__` directory.
To execute all of the unit tests run:
> npm run jest
## Note on version 4.2.1
`apg-js` version 4.2.1 made a minor change to the parser and hence the parser generator.
All of the grammars for all of the examples have been re-generated with `apg-js` 4.2.1.
All of the updated examples run as expected.
## Note on version 4.2.0
This version has been tested for compliance with `apg-js` version 4.2.0.
#### The new "all" option
An "all" option has been added to each example which will run all
of the demonstrations for that example.
Along with this is a new npm script `npm run all` which will run all demonstrations for all examples.
(Caveat: this will generate a lot of output.)
Even though the demonstrations are meant to be illustrative and not unit tests the "all" options
and script have served as a crude means of insuring that nothing was broken with changes to `apg-js`.
## Installation
**npm**
```
npm install apg-js-examples
cd node_modules/apg-js-examples
npm install
```
**GitHub**
```
mkdir node_modules
cd node_modules
git clone https://github.com/ldthomas/apg-js.git
git clone https://github.com/ldthomas/apg-js-examples.git
cd apg-js-examples
npm install
```
## Code Documentation
The code documentation is in [docco](http://ashkenas.com/docco/) format and can be generated with:
```
npm run docco
```
The documentation is then at `./docs/index.html` or see it [here](https://sabnf.com/docs/apg-js-examples/) at the [APG](https://sabnf.com/) website.