Re: Fwd: dependency tee from c parser entities downto token

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, May 5, 2012 at 4:38 PM, Konrad Eisele <eiselekd@xxxxxxxxx> wrote:
>
> I appended a diff for review. Is this kind of interface ok?
> This is kind of not a patch to apply, rather I want to avoid to put
> effort in it and you telling me later I am too intrusive...:). So
> can you give a ok or comment...
>
> Interface so far:
> struct preprocess_hook {
>        def      : called when #define is processed

Why do you need #define hooks? The macro symbol
should have pos and macro body already.

>        args_beg : called before argument expasnion
>        args_end : called after argument expasnion
>        body_beg : called before body expansion
>        body_end : called after body expansion

I am wondering why is do you need 4 call backs for macro
expand instead of just one like the patch I post previously.
That macro expand give you the name of the macro need to
be expand and the replacement list.  My guess is that you
want the end position of the macro before expand. That
can be add to the macro expand hook. Will that be sufficient?


>        post     : called after preprocess

I don't think the post call back is needed. You can call
the preprocessor directly. It will return when it complete.
Then you can do your post work. You can invoke the parser
separately.  The sparse wrapper function does it all in
one function but that did not stop you it step by step
if you wants to.


> All of there I found are needed. There might be more to be added...
>
> I also introduce a tokentype TOKEN_M_EMPTY so that I can track
> empty expansion. To filter these out again I add the post hook.

What purpose does the token_m_empty if you filter those token later?
Rember where in the stream there is an invisible macro?

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux