diff options
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}), |
