diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-19 12:16:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-19 12:16:34 +0000 |
| commit | 2df392487052d543fe412383ef6d29886678edbf (patch) | |
| tree | 427c93ee2128c546076c32a9814efa094bde8968 /lib/style-reader.js | |
| parent | f3676789408dfaf898823c1fbe3cb7d6888a1fd4 (diff) | |
Support parsing style name prefixes
Diffstat (limited to 'lib/style-reader.js')
| -rw-r--r-- | lib/style-reader.js | 43 |
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}), |
