aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-16 19:38:11 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-16 19:38:11 +0000
commit96a56d95dcfcb58fc0257cfe33a85f264235e213 (patch)
tree9098df0ea606b32045153ece5bcbaf818df7285c /lib
parent703b5b7a99969146e9a7f7101c5997a8e04b1424 (diff)
Move tokeniser into its own module
Diffstat (limited to 'lib')
-rw-r--r--lib/style-reader.js24
-rw-r--r--lib/styles/parser/tokeniser.js25
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);
+}