diff options
author | bptato <nincsnevem662@gmail.com> | 2025-01-15 22:40:10 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-01-15 22:40:10 +0100 |
commit | 5bbced41ec3531c57ecba6095357be691fabcaf9 (patch) | |
tree | 97f5bd9e3be2ea081bbbfed554b5ab40b0c41a02 /src/css/cssparser.nim | |
parent | f9b6a0f06bc4f84543a24c8264e02ac89cfc2b4a (diff) | |
download | chawan-5bbced41ec3531c57ecba6095357be691fabcaf9.tar.gz |
cssparser: enumize CSSFunction name
Diffstat (limited to 'src/css/cssparser.nim')
-rw-r--r-- | src/css/cssparser.nim | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/css/cssparser.nim b/src/css/cssparser.nim index 7e2f6004..94067d24 100644 --- a/src/css/cssparser.nim +++ b/src/css/cssparser.nim @@ -51,8 +51,23 @@ type value*: seq[CSSComponentValue] important*: bool + CSSFunctionType* = enum + cftUnknown = "-cha-unknown" + cftNot = "not" + cftIs = "is" + cftWhere = "where" + cftNthChild = "nth-child" + cftNthLastChild = "nth-last-child" + cftLang = "lang" + cftRgb = "rgb" + cftRgba = "rgba" + cftChaAnsi = "-cha-ansi" + cftUrl = "url" + cftSrc = "src" + cftVar = "var" + CSSFunction* = ref object of CSSComponentValue - name*: string + name*: CSSFunctionType value*: seq[CSSComponentValue] CSSSimpleBlock* = ref object of CSSComponentValue @@ -109,7 +124,7 @@ proc `$`*(c: CSSComponentValue): string = result &= " !important" result &= ";\n" elif c of CSSFunction: - result &= CSSFunction(c).name & "(" + result &= $CSSFunction(c).name & "(" for s in CSSFunction(c).value: result &= $s result &= ")" @@ -509,7 +524,8 @@ proc consumeSimpleBlock(state: var CSSParseState; tok: CSSToken): proc consumeFunction(state: var CSSParseState): CSSFunction = let t = CSSToken(state.consume()) - let res = CSSFunction(name: t.value) + let name = parseEnumNoCase[CSSFunctionType](t.value).get(cftUnknown) + let res = CSSFunction(name: name) while state.has(): let t = state.consume() if t == cttRparen: |