Reusing KHTMLs CSS parser for a KDevelop language plugin

Aleix Pol aleixpol at kde.org
Wed Oct 21 20:51:08 BST 2009


On Wed, Oct 21, 2009 at 8:11 PM, Milian Wolff <mail at milianw.de> wrote:

> Hello!
>
> Sooner or later I want to start on a language plugin to add CSS support to
> KDevelop (and eventually Quanta).
>
> For that I need a tokenizer and a parser. So far, each language plugin in
> KDevelop uses an AST and the Visitor concept to build the DUChain. As I've
> never used Flex myself, and am by far no expert in parsers, does the CSS
> parser support the Visitor concept?
>
> Nevertheless, I'd like to at least reuse the tokenizer from kdelibs and
> would
> write a grammar for Kdevelop-pg-qt to get a parser with an AST.
>
> I had a quick look at kdelibs/khtml/css and I see that neither the parser,
> nor
> the tokenizer gets installed. Of course, this makes sense if noone uses it
> outside of KHTML. Could this be changed? Or would those classes then have
> to
> stay BC and this is not possible/wanted for such internal classes?
>
>
> Alternatively to the above, are there maybe KHTML APIs I can use that give
> me
> a low-level analysis of a given CSS file? I'd need e.g. a list of rule
> definitions, imports, charset statements, together with line numbers where
> they
> occur. That should actually be enough to build a DUChain.
>
> Note that most of the above could be applied to other languages as well,
> most
> notably JavaScript/ECMA Script and XML/HTML/XHTML.
>
> Thanks and have a nice day
> --
> Milian Wolff
> mail at milianw.de
> http://milianw.de
>

Not as far as I know, I needed a CSS parser for a project I've been working
on, and the only solution I got was to access the CSS through the DOM. My
solution was to use libcroco (because I didn't have the time to implement
the CSS parser). libcroco using the SAC parser (like SAX but for CSS) is
quite light so it would make sense to be used.wa

A Qt CSS parser would be needed though, IMO, so if you decide to do it, I
don't think you're going to lose your time. It's not a very complicated
language anyway. (as a language, there are a lot of semantics created, of
course)

Take care,
Aleix
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20091021/4dbc84f0/attachment.htm>


More information about the kde-core-devel mailing list