From 4e854a34c40efef895f6cbaec909e4d8db9044c9 Mon Sep 17 00:00:00 2001 From: Christopher Baker Date: Wed, 14 Feb 2018 16:51:17 -0800 Subject: [PATCH] Cleanup markdown sample code (#7) * Use const/let in sample code * run eslint on markdown code * run eslint on markdown code --- readme.md | 121 +++++++++++++++++++++++++++--------------------------- 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/readme.md b/readme.md index c758c41..2a45aca 100644 --- a/readme.md +++ b/readme.md @@ -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]*/, @@ -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: [ - [""], + [ "" ] ], 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" ] ] } }; @@ -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("" ,function(token, expressions){ - token //-> { lex: "<", match: "<", index: 0 } - expressions.end // -> [] - expressions.start +parser( "", 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: