Skip to content

Commit

Permalink
Cleanup markdown sample code (#7)
Browse files Browse the repository at this point in the history
* Use const/let in sample code

* run eslint on markdown code

* run eslint on markdown code
  • Loading branch information
Christopher Baker committed Feb 15, 2018
1 parent f6a2904 commit 4e854a3
Showing 1 changed file with 61 additions and 60 deletions.
121 changes: 61 additions & 60 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ To create a parser, first create a `grammar` with `lex`ical tokens and
an expression `tree` as follows:

```js
var grammar = {
const grammar = {
lex: {
"{": /^\{/,
"}": /^\}/,
"<": /^</,
"/>" : /^\/>/,
"</" : /^<\//,
"/>": /^\/>/,
"</": /^<\//,
">": /^>/,
"SPACE": /^\s/,
"'": /^'/,
'"': /^"/,
"\"": /^"/,
"=": /^=/,
ALPHA_NUMERIC: /^[A-Za-z0-9]+/,
TAGNAME: /^[a-z][-:_A-Za-z0-9]*/,
Expand All @@ -35,67 +35,67 @@ var grammar = {
},
tree: {
EXPRESSION: [
["TAG"],
["CLOSING"],
["MAGIC_OR_TEXT"],
["TAG", "EXPRESSION"],
["CLOSING", "EXPRESSION"],
["MAGIC_OR_TEXT", "EXPRESSION"]
[ "TAG" ],
[ "CLOSING" ],
[ "MAGIC_OR_TEXT" ],
[ "TAG", "EXPRESSION" ],
[ "CLOSING", "EXPRESSION" ],
[ "MAGIC_OR_TEXT", "EXPRESSION" ]
],
TAG: [
["<","TAGNAME",">"],
["<","TAGNAME","/>"],
["<","TAGNAME","SPACE",">"],
["<","TAGNAME","SPACE","/>"],
["<","TAGNAME","SPACE","ATTRS",">"],
["<","TAGNAME","SPACE","ATTRS", "/>"]
[ "<", "TAGNAME", ">" ],
[ "<", "TAGNAME", "/>" ],
[ "<", "TAGNAME", "SPACE", ">" ],
[ "<", "TAGNAME", "SPACE", "/>" ],
[ "<", "TAGNAME", "SPACE", "ATTRS", ">" ],
[ "<", "TAGNAME", "SPACE", "ATTRS", "/>" ]
],
CLOSING: [
["</","TAGNAME",">"],
[ "</", "TAGNAME", ">" ]
],
ATTRS: [
["ATTR"],
["ATTR", "SPACE", "ATTRS"],
["MAGIC"],
["MAGIC","ATTRS"]
[ "ATTR" ],
[ "ATTR", "SPACE", "ATTRS" ],
[ "MAGIC" ],
[ "MAGIC", "ATTRS" ]
],
ATTR: [
["QUOTE","=","QUOTE"],
["NOT_SPACE_RIGHT_CARROT","=","QUOTE"],
["NOT_SPACE_RIGHT_CARROT","=","NOT_SPACE_RIGHT_CARROT"],
["NOT_SPACE_RIGHT_CARROT","=","MAGIC"],
["NOT_SPACE_RIGHT_CARROT"]
[ "QUOTE", "=", "QUOTE" ],
[ "NOT_SPACE_RIGHT_CARROT", "=", "QUOTE" ],
[ "NOT_SPACE_RIGHT_CARROT", "=", "NOT_SPACE_RIGHT_CARROT" ],
[ "NOT_SPACE_RIGHT_CARROT", "=", "MAGIC" ],
[ "NOT_SPACE_RIGHT_CARROT" ]
],
QUOTE: [
["'","SINGLE_QUOTE_MAGIC_OR_TEXT","'"],
['"',"DOUBLE_QUOTE_MAGIC_OR_TEXT",'"']
[ "'", "SINGLE_QUOTE_MAGIC_OR_TEXT", "'" ],
[ "\"", "DOUBLE_QUOTE_MAGIC_OR_TEXT", "\"" ]
],
SINGLE_QUOTE_MAGIC_OR_TEXT: [
["NOT_MAGIC_OR_SINGLE"],
["NOT_MAGIC_OR_SINGLE","SINGLE_QUOTE_MAGIC_OR_TEXT" ],
["MAGIC"],
["MAGIC", "SINGLE_QUOTE_MAGIC_OR_TEXT"]
[ "NOT_MAGIC_OR_SINGLE" ],
[ "NOT_MAGIC_OR_SINGLE", "SINGLE_QUOTE_MAGIC_OR_TEXT" ],
[ "MAGIC" ],
[ "MAGIC", "SINGLE_QUOTE_MAGIC_OR_TEXT" ]
],
DOUBLE_QUOTE_MAGIC_OR_TEXT: [
["NOT_MAGIC_OR_DOUBLE"],
["NOT_MAGIC_OR_DOUBLE","DOUBLE_QUOTE_MAGIC_OR_TEXT" ],
["MAGIC"],
["MAGIC", "DOUBLE_QUOTE_MAGIC_OR_TEXT"]
[ "NOT_MAGIC_OR_DOUBLE" ],
[ "NOT_MAGIC_OR_DOUBLE", "DOUBLE_QUOTE_MAGIC_OR_TEXT" ],
[ "MAGIC" ],
[ "MAGIC", "DOUBLE_QUOTE_MAGIC_OR_TEXT" ]
],
MAGIC_OR_TEXT: [
["TEXT"],
["TEXT","MAGIC_OR_TEXT" ],
["MAGIC"],
["MAGIC", "MAGIC_OR_TEXT"]
[ "TEXT" ],
[ "TEXT", "MAGIC_OR_TEXT" ],
[ "MAGIC" ],
[ "MAGIC", "MAGIC_OR_TEXT" ]
],
MAGIC: [
["{", "NOT_END_MAGIC", "}"],
[ "{", "NOT_END_MAGIC", "}" ]
],
TEXT: [
["SPACE"],
["SPACE", "TEXT"],
["NOT_SPACE"],
["NOT_SPACE", "TEXT"]
[ "SPACE" ],
[ "SPACE", "TEXT" ],
[ "NOT_SPACE" ],
[ "NOT_SPACE", "TEXT" ]
]
}
};
Expand All @@ -106,30 +106,31 @@ var grammar = {
Once you built your grammar, build a parser like:

```js
var parse = require("can-parse");
import parse from "can-parse";

var parser = parse(grammar);
const parser = parse( grammar );
```


Then parse something:

```js
parser("<my-element bar='car'/>" ,function(token, expressions){
token //-> { lex: "<", match: "<", index: 0 }
expressions.end // -> []
expressions.start
parser( "<my-element bar='car'/>", function( token, expressions ) {
token; //-> { lex: "<", match: "<", index: 0 }
expressions.end; // -> []
expressions.start;

// ->[
// {
// "expression": "EXPRESSION",
// "ruleIndexes": [ 0, 3 ]
// },
// {
// "expression": "TAG",
// "ruleIndexes": [ 0, 1, 2, 3, 4, 5]
// }
// {
// "expression": "EXPRESSION",
// "ruleIndexes": [ 0, 3 ]
// },
// {
// "expression": "TAG",
// "ruleIndexes": [ 0, 1, 2, 3, 4, 5]
// }
// ]
});
} );
```

The `parser` function takes:
Expand Down

0 comments on commit 4e854a3

Please sign in to comment.