diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-16 19:38:11 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-16 19:38:11 +0000 |
| commit | 96a56d95dcfcb58fc0257cfe33a85f264235e213 (patch) | |
| tree | 9098df0ea606b32045153ece5bcbaf818df7285c /lib | |
| parent | 703b5b7a99969146e9a7f7101c5997a8e04b1424 (diff) | |
Move tokeniser into its own module
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/style-reader.js | 24 | ||||
| -rw-r--r-- | lib/styles/parser/tokeniser.js | 25 |
2 files changed, 26 insertions, 23 deletions
diff --git a/lib/style-reader.js b/lib/style-reader.js index b781792..a13c919 100644 --- a/lib/style-reader.js +++ b/lib/style-reader.js @@ -1,9 +1,9 @@ var _ = require("underscore"); var lop = require("lop"); -var RegexTokeniser = lop.RegexTokeniser; var documentMatchers = require("./document-matchers"); var htmlPaths = require("./html-paths"); +var tokenise = require("./styles/parser/tokeniser").tokenise; var results = require("../lib/results"); exports.readHtmlPath = readHtmlPath; @@ -255,26 +255,4 @@ function describeError(error) { "Expected " + error.expected + " but got " + error.actual; } -function tokenise(string) { - var tokeniser = new RegexTokeniser([ - {name: "identifier", regex: /([a-zA-Z][a-zA-Z0-9\-]*)/}, - {name: "cssClassName", regex: /(\.(?:[a-zA-Z0-9\-]|\\.)+)/}, - {name: "colon", regex: /:/}, - {name: "gt", regex: />/}, - {name: "whitespace", regex: /\s+/}, - {name: "arrow", regex: /=>/}, - {name: "equals", regex: /=/}, - {name: "open-paren", regex: /\(/}, - {name: "close-paren", regex: /\)/}, - {name: "open-square-bracket", regex: /\[/}, - {name: "close-square-bracket", regex: /\]/}, - {name: "string", regex: /'((?:\\.|[^'])*)'/}, - {name: "integer", regex: /([0-9]+)/}, - {name: "choice", regex: /\|/}, - {name: "bang", regex: /(!)/} - ]); - return tokeniser.tokenise(string); -} - - var styleRule = createStyleRule(); diff --git a/lib/styles/parser/tokeniser.js b/lib/styles/parser/tokeniser.js new file mode 100644 index 0000000..2ada818 --- /dev/null +++ b/lib/styles/parser/tokeniser.js @@ -0,0 +1,25 @@ +var lop = require("lop"); +var RegexTokeniser = lop.RegexTokeniser; + +exports.tokenise = tokenise; + +function tokenise(string) { + var tokeniser = new RegexTokeniser([ + {name: "identifier", regex: /([a-zA-Z][a-zA-Z0-9\-]*)/}, + {name: "cssClassName", regex: /(\.(?:[a-zA-Z0-9\-]|\\.)+)/}, + {name: "colon", regex: /:/}, + {name: "gt", regex: />/}, + {name: "whitespace", regex: /\s+/}, + {name: "arrow", regex: /=>/}, + {name: "equals", regex: /=/}, + {name: "open-paren", regex: /\(/}, + {name: "close-paren", regex: /\)/}, + {name: "open-square-bracket", regex: /\[/}, + {name: "close-square-bracket", regex: /\]/}, + {name: "string", regex: /'((?:\\.|[^'])*)'/}, + {name: "integer", regex: /([0-9]+)/}, + {name: "choice", regex: /\|/}, + {name: "bang", regex: /(!)/} + ]); + return tokeniser.tokenise(string); +} |
