Hi all,

I am wondering if it is possible to interpret a c-preprocessor (the second
preprocessor, not the one expanding trigrams and removing "\\\n") or an m4
grammar through bison, and in case if it has already been done.
I think  this kind of tool does not produce a type-2 Chomsky grammar,
rather a type-1 or even type-0.
Any idea how to build something like an AST from it?

The purpose would be to use in a text editor, to know how to format for
example a block between #if/#endif (according to the condition, for example
could be greyed out if false),

or whether all blocks are closed (see for example this (simplified) macro
from systemd):
    #    define _SD_BEGIN_DECLARATIONS                              \
            extern "C" {                                            \
            struct _sd_useless_struct_to_allow_trailing_semicolon_
    #endif

 or to colorize a macro, although this latter would require post-processing
its expansion with a normal C grammar, and pick one of the tokens (the last
for example) as representative of the adequate color.

Thank you,
Giacinto

Reply via email to