[<span style="font-size: 150%;font-weight:bold;">&#8962;</span> home](https://sabnf.com/)

**Annotated Table of Contents**<br>
_JavaScript APG, examples of use_

- The apg-js-examples README page from [https://github.com/ldthomas/apg-js-examples](https://github.com/ldthomas/apg-js-examples).<br>
  [README.md](./README.html)

- The apg-js-examples license.<br>
  [LICENSE.md](./LICENSE.html)

- Using the JavaScript APG API.<br>
  [main.js](./src/apg-api/main.html)<br>
  [separate.js](./src/apg-api/separate.html)<br>
  [single.js](./src/apg-api/single.html)<br>
  [web-apg-api.js](./src/apg-api/web-apg-api.html)<br>

- Using the data conversion API.<br>
  [main.js](./src/apg-conv-api/main.html)<br>
  [web-conv-api.js](./src/apg-conv-api/web-conv-api.html)<br>

- Using the parser library.<br>
  [main.js](./src/apg-lib/main.html)<br>
  [phone-number.js](./src/apg-lib/phone-number.html)<br>
  [web-main.js](./src/apg-lib/web-main.html)<br>
  [web-phone-number.js](./src/apg-lib/web-phone-number.html)<br>

- Using the pattern-matching engine library.<br>
  [ast.js](./src/apg-exp/ast.html)<br>
  [csv.js](./src/apg-exp/csv.html)<br>
  [dangling-else.js](./src/apg-exp/dangling-else.html)<br>
  [display.js](./src/apg-exp/display.html)<br>
  [flags.js](./src/apg-exp/flags.html)<br>
  [float.js](./src/apg-exp/float.html)<br>
  [limits.js](./src/apg-exp/limits.html)<br>
  [main.js](./src/apg-exp/main.html)<br>
  [multiline-mode.js](./src/apg-exp/multiline-mode.html)<br>
  [recursive.js](./src/apg-exp/recursive.html)<br>
  [replace.js](./src/apg-exp/replace.html)<br>
  [rules.js](./src/apg-exp/rules.html)<br>
  [split.js](./src/apg-exp/split.html)<br>
  [test.js](./src/apg-exp/test.html)<br>
  [trace.js](./src/apg-exp/trace.html)<br>
  [udt.js](./src/apg-exp/udt.html)<br>
  [unicode.js](./src/apg-exp/unicode.html)<br>
  [web-email.js](./src/apg-exp/web-email.html)<br>
  [word-boundaries.js](./src/apg-exp/word-boundaries.html)<br>

- Using the parser-generated AST.<br>
  [main.js](./src/ast/main.html)<br>
  [phone-number.js](./src/ast/phone-number.html)<br>
  [setup.js](./src/ast/setup.html)<br>
  [translate.js](./src/ast/translate.html)<br>
  [xml.js](./src/ast/xml.html)<br>

- Demonstration of the back reference operators.<br>
  [branch-fail-grammar.js](./src/back-reference/branch-fail-grammar.html)<br>
  [parent-mode-grammar.js](./src/back-reference/parent-mode-grammar.html)<br>
  [main.js](./src/back-reference/main.html)<br>
  [setup.js](./src/back-reference/setup.html)<br>
  [universal-mode-grammar.js](./src/back-reference/universal-mode-grammar.html)<br>

- Demonstrate executing a rule from a UDT.<br>
  [colors-app.js](./src/execute-rule/colors-app.html)<br>
  [colors-callbacks.js](./src/execute-rule/colors-callbacks.html)<br>
  [colors.js](./src/execute-rule/colors.html)<br>
  [main.js](./src/execute-rule/main.html)<br>
  [more-app.js](./src/execute-rule/more-app.html)<br>
  [more-setup.js](./src/execute-rule/more-setup.html)<br>
  [more.js](./src/execute-rule/more.html)<br>

- Demonstrate handling an initialization, "ini", file.<br>
  [ast-callbacks.js](./src/ini-file/ast-callbacks.html)<br>
  [bad-input.js](./src/ini-file/bad-input.html)<br>
  [basic.js](./src/ini-file/basic.html)<br>
  [ini-file.js](./src/ini-file/ini-file.html)<br>
  [main.js](./src/ini-file/main.html)<br>
  [parser-callbacks.js](./src/ini-file/parser-callbacks.html)<br>
  [setup.js](./src/ini-file/setup.html)<br>
  [trace.js](./src/ini-file/trace.html)<br>

- Demonstrating the look ahead operators.<br>
  [anbncn.js](./src/look-ahead/anbncn.html)<br>
  [and.js](./src/look-ahead/and.html)<br>
  [c-comment.js](./src/look-ahead/c-comment.html)<br>
  [compound.js](./src/look-ahead/compound.html)<br>
  [main.js](./src/look-ahead/main.html)<br>
  [nested.js](./src/look-ahead/nested.html)<br>
  [not.js](./src/look-ahead/not.html)<br>
  [setup.js](./src/look-ahead/setup.html)<br>

- Demonstrating the look behind operators.<br>
  [boundaries-grammar.js](./src/look-behind/boundaries-grammar.html)<br>
  [boundaries.js](./src/look-behind/boundaries.html)<br>
  [comment-grammar.js](./src/look-behind/comment-grammar.html)<br>
  [comment.js](./src/look-behind/comment.html)<br>
  [main.js](./src/look-behind/main.html)<br>
  [negative-grammar.js](./src/look-behind/negative-grammar.html)<br>
  [negative.js](./src/look-behind/negative.html)<br>
  [positive-grammar.js](./src/look-behind/positive-grammar.html)<br>
  [positive.js](./src/look-behind/positive.html)<br>
  [setup.js](./src/look-behind/setup.html)<br>

- OData test cases.<br>
  [main.js](./src/odata/main.html)<br>
  [run.js](./src/odata/run.html)<br>
  [setup.js](./src/odata/setup.html)<br>

- Demonstrations of parsing substrings.<br>
  [area-code.js](./src/substrings/area-code.html)<br>
  [lookaround.js](./src/substrings/lookaround.html)<br>
  [main.js](./src/substrings/main.html)<br>
  [phone-number.js](./src/substrings/phone-number.html)<br>
  [setup.js](./src/substrings/setup.html)<br>
  [simple.js](./src/substrings/simple.html)<br>

- Demonstration of tracing the parser through the parse tree nodes.<br>
  [all-operators.js](./src/trace/all-operators.html)<br>
  [default.js](./src/trace/default.html)<br>
  [fancy-number.js](./src/trace/fancy-number.html)<br>
  [limited-lines.js](./src/trace/limited-lines.html)<br>
  [main.js](./src/trace/main.html)<br>
  [select-operators.js](./src/trace/select-operators.html)<br>
  [select-rules.js](./src/trace/select-rules.html)<br>
  [setup.js](./src/trace/setup.html)<br>

- Demonstration of using User-Defined Terminals, UDTs.<br>
  [main.js](./src/udt/main.html)<br>
  [minimal.js](./src/udt/minimal.html)<br>
  [phone-number.js](./src/udt/phone-number.html)<br>
  [setup.js](./src/udt/setup.html)<br>
  [stats.js](./src/udt/stats.html)<br>
  [trace.js](./src/udt/trace.html)<br>

- A complete and well tested URI (RFC 3986) parser.<br>
  [main.js](./src/uri/main.html)<br>
  [parser.js](./src/uri/parser.html)<br>
  [callbacks.js](./src/uri/callbacks.html)<br>

- A utility for writing an HTML page.<br>
  [writeHtml.js](./src/writeHtml.html)<br>
