aboutsummaryrefslogtreecommitdiff
path: root/lib/style-reader.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-19 12:16:34 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-19 12:16:34 +0000
commit2df392487052d543fe412383ef6d29886678edbf (patch)
tree427c93ee2128c546076c32a9814efa094bde8968 /lib/style-reader.js
parentf3676789408dfaf898823c1fbe3cb7d6888a1fd4 (diff)
Support parsing style name prefixes
Diffstat (limited to 'lib/style-reader.js')
-rw-r--r--lib/style-reader.js43
1 files changed, 30 insertions, 13 deletions
diff --git a/lib/style-reader.js b/lib/style-reader.js
index fe80006..20cdb56 100644
--- a/lib/style-reader.js
+++ b/lib/style-reader.js
@@ -63,21 +63,38 @@ function documentMatcherRule() {
return {styleId: styleId};
}
);
-
- var styleNameRule = lop.rules.then(
- lop.rules.sequence(
- lop.rules.tokenOfType("open-square-bracket"),
- lop.rules.sequence.cut(),
- lop.rules.token("identifier", "style-name"),
- lop.rules.tokenOfType("equals"),
- lop.rules.sequence.capture(stringRule),
- lop.rules.tokenOfType("close-square-bracket")
- ).head(),
- function(styleName) {
- return {styleName: documentMatchers.equalTo(styleName)};
- }
+
+ var styleNameMatcherRule = lop.rules.firstOf("style name matcher",
+ lop.rules.then(
+ lop.rules.sequence(
+ lop.rules.tokenOfType("equals"),
+ lop.rules.sequence.cut(),
+ lop.rules.sequence.capture(stringRule)
+ ).head(),
+ function(styleName) {
+ return {styleName: documentMatchers.equalTo(styleName)};
+ }
+ ),
+ lop.rules.then(
+ lop.rules.sequence(
+ lop.rules.tokenOfType("startsWith"),
+ lop.rules.sequence.cut(),
+ lop.rules.sequence.capture(stringRule)
+ ).head(),
+ function(styleName) {
+ return {styleName: documentMatchers.startsWith(styleName)};
+ }
+ )
);
+ var styleNameRule = lop.rules.sequence(
+ lop.rules.tokenOfType("open-square-bracket"),
+ lop.rules.sequence.cut(),
+ lop.rules.token("identifier", "style-name"),
+ lop.rules.sequence.capture(styleNameMatcherRule),
+ lop.rules.tokenOfType("close-square-bracket")
+ ).head();
+
var listTypeRule = lop.rules.firstOf("list type",
identifierToConstant("ordered-list", {isOrdered: true}),