diff options
author | bptato <nincsnevem662@gmail.com> | 2022-01-24 17:22:50 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-01-24 17:22:50 +0100 |
commit | cd8ca0faa258a3387f9875c7a6f534743b45f817 (patch) | |
tree | dce2d7a45969664cae90f96f32e33d6e8011a07f /src/css | |
parent | 7cb534fd1fb2cbd0a338ba22457e18ba8cb57f78 (diff) | |
download | chawan-cd8ca0faa258a3387f9875c7a6f534743b45f817.tar.gz |
Refactor
Diffstat (limited to 'src/css')
-rw-r--r-- | src/css/cascade.nim | 2 | ||||
-rw-r--r-- | src/css/parser.nim | 38 | ||||
-rw-r--r-- | src/css/select.nim | 2 | ||||
-rw-r--r-- | src/css/selparser.nim | 8 | ||||
-rw-r--r-- | src/css/values.nim | 4 |
5 files changed, 16 insertions, 38 deletions
diff --git a/src/css/cascade.nim b/src/css/cascade.nim index 0e481a10..aea064b0 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -161,7 +161,7 @@ func applyMediaQuery(ss: CSSStylesheet): CSSStylesheet = if rule.query.applies(): result.add(rule.children.applyMediaQuery()) -proc applyRules*(document: Document, ua, user: CSSStylesheet) = +proc applyRules(document: Document, ua, user: CSSStylesheet) = var stack: seq[Element] var embedded_rules: seq[CSSStylesheet] diff --git a/src/css/parser.nim b/src/css/parser.nim index f71ed033..0277bf41 100644 --- a/src/css/parser.nim +++ b/src/css/parser.nim @@ -25,9 +25,9 @@ type at: int top_level: bool - tflaga = enum + tflaga* = enum TFLAGA_UNRESTRICTED, TFLAGA_ID - tflagb = enum + tflagb* = enum TFLAGB_INTEGER, TFLAGB_NUMBER CSSParsedItem* = ref object of RootObj @@ -74,7 +74,8 @@ type SyntaxError = object of ValueError -func `$`*(c: CSSParsedItem): string = +# For debugging +template `$`*(c: CSSParsedItem): string = if c of CSSToken: case CSSToken(c).tokenType: of CSS_FUNCTION_TOKEN, CSS_AT_KEYWORD_TOKEN, CSS_URL_TOKEN: @@ -136,10 +137,10 @@ func `$`*(c: CSSParsedItem): string = func `==`*(a: CSSParsedItem, b: CSSTokenType): bool = return a of CSSToken and CSSToken(a).tokenType == b -func isNameStartCodePoint*(r: Rune): bool = +func isNameStartCodePoint(r: Rune): bool = return not isAscii(r) or r == Rune('_') or isAlphaAscii(r) -func isNameCodePoint*(r: Rune): bool = +func isNameCodePoint(r: Rune): bool = return isNameStartCodePoint(r) or isDigitAscii(r) or r == Rune('-') proc consume(state: var CSSTokenizerState): Rune = @@ -160,10 +161,10 @@ proc has(state: var CSSTokenizerState, i: int = 0): bool = func curr(state: CSSTokenizerState): Rune = return state.buf[state.at] -proc isValidEscape*(state: var CSSTokenizerState): bool = +proc isValidEscape(state: var CSSTokenizerState): bool = return state.has(1) and state.curr() == Rune('\\') and state.peek(1) != Rune('\n') -proc startsWithIdentifier*(state: var CSSTokenizerState): bool = +proc startsWithIdentifier(state: var CSSTokenizerState): bool = if not state.has(): return false @@ -180,7 +181,7 @@ proc startsWithIdentifier*(state: var CSSTokenizerState): bool = return false -proc startsWithNumber*(state: var CSSTokenizerState): bool = +proc startsWithNumber(state: var CSSTokenizerState): bool = if state.has(): case state.curr() of Rune('+'), Rune('-'): @@ -810,24 +811,3 @@ proc parseCSS*(inputStream: Stream): CSSRawStylesheet = if inputStream.atEnd(): return CSSRawStylesheet() return inputstream.parseStylesheet() - -proc debugparseCSS*(inputStream: Stream) = - let ss = inputStream.parseStylesheet() - for v in ss.value: - if v of CSSAtRule: - eprint CSSAtRule(v).name - else: - for c in CSSQualifiedRule(v).prelude: - eprint c - case v.oblock.token.tokenType - of CSS_LBRACE_TOKEN: eprint "\n{" - of CSS_LPAREN_TOKEN: eprint "(" - of CSS_LBRACKET_TOKEN: eprint "[" - else: discard - for s in v.oblock.value: - eprint s - case v.oblock.token.tokenType - of CSS_LBRACE_TOKEN: eprint "\n}" - of CSS_LPAREN_TOKEN: eprint ")" - of CSS_LBRACKET_TOKEN: eprint "]" - else: discard diff --git a/src/css/select.nim b/src/css/select.nim index 1bd45dcd..94cdd96f 100644 --- a/src/css/select.nim +++ b/src/css/select.nim @@ -187,7 +187,7 @@ func selectElems(document: Document, selectors: SelectorList): seq[Element] = result = result.filter((elem) => selectorMatches(elem, sellist[i]).psuccess) inc i -proc querySelector*(document: Document, q: string): seq[Element] = +proc querySelector(document: Document, q: string): seq[Element] = let ss = newStringStream(q) let cvals = parseListOfComponentValues(ss) let selectors = parseSelectors(cvals) diff --git a/src/css/selparser.nim b/src/css/selparser.nim index 9a953c54..c373bfbe 100644 --- a/src/css/selparser.nim +++ b/src/css/selparser.nim @@ -9,7 +9,7 @@ type UNIVERSAL_SELECTOR, PSEUDO_SELECTOR, PSELEM_SELECTOR, FUNC_SELECTOR, COMBINATOR_SELECTOR - QueryMode* = enum + QueryMode = enum QUERY_TYPE, QUERY_CLASS, QUERY_ATTR, QUERY_DELIM, QUERY_VALUE, QUERY_PSEUDO, QUERY_PSELEM, QUERY_DESC_COMBINATOR, QUERY_CHILD_COMBINATOR, QUERY_NEXT_SIBLING_COMBINATOR, QUERY_SUBSEQ_SIBLING_COMBINATOR @@ -56,9 +56,9 @@ type sels*: seq[Selector] parent*: SelectorList -proc add*(sellist: SelectorList, sel: Selector) = sellist.sels.add(sel) -proc add*(sellist: SelectorList, sels: SelectorList) = sellist.sels.add(sels.sels) -proc setLen*(sellist: SelectorList, i: int) = sellist.sels.setLen(i) +proc add(sellist: SelectorList, sel: Selector) = sellist.sels.add(sel) +proc add(sellist: SelectorList, sels: SelectorList) = sellist.sels.add(sels.sels) +proc setLen(sellist: SelectorList, i: int) = sellist.sels.setLen(i) proc `[]`*(sellist: SelectorList, i: int): Selector = sellist.sels[i] proc len*(sellist: SelectorList): int = sellist.sels.len diff --git a/src/css/values.nim b/src/css/values.nim index e4f6e944..87ac9e2d 100644 --- a/src/css/values.nim +++ b/src/css/values.nim @@ -81,7 +81,7 @@ type CSSSpecifiedValue* = ref object t*: CSSPropertyType - case v*: CSSValueType + case v: CSSValueType of VALUE_COLOR: color*: CSSColor of VALUE_LENGTH: @@ -106,8 +106,6 @@ type CSSSpecifiedValues* = ref array[CSSPropertyType, CSSSpecifiedValue] - CSSValues* = array[PseudoElem, CSSSpecifiedValues] - CSSValueError* = object of ValueError const PropertyNames = { |