[fpc-pascal] New FCL-CSS package in the GitLab repo

Michael Van Canneyt michael at freepascal.org
Sun Mar 27 12:42:13 CEST 2022



On Sun, 27 Mar 2022, Alexey Torgashin via fpc-pascal wrote:

> @Michael Van Canneyt
> I didn't test but I hope this package can parse this _minified_ CSS file?

Minified or not is normally not relevant for parsing.

> Attached on the forum
>
> https://forum.lazarus.freepascal.org/index.php/topic,58853.msg438550.html#msg438550
>
> It has many tricks. E.g. @media blocks (@media supports nested blocks, not 
> only 1 level), e.g. {} block for N classes, e.g. weird class names.

Nested blocks are supported.

But weird class names:

> extractcssclasses brackets.min.css -o out
Exception at 00000000004C107B: ECSSParser:
Error: line 9, pos 18: Unexpected token: Got ctkIDENTIFIER (as UTF8String: "zoom"), expected: ctkCOLON .

"*zoom", really ? That's not even valid CSS syntax.

I checked 2 EBNF grammars: neither will allow this. 
I checked the W3 spec: Confirms this is simply not valid syntax.

Browsers are simply very forgiving for all the junk found in CSS files:
The CSS syntax is so sloppy, almost impossible to cover all cases. 
That's why there are a lot of test files.

But patches to make the implementation more forgiving are welcome. 
I suppose things like *zoom can be easily supported.

Do you have the unminified file ? So I can see how to interpret the '*zoom':
treat as '* zoom' or as identifier '*zoom'

Michael.


More information about the fpc-pascal mailing list