Hi,

Since the OCaml scripting was added, we also add access to some
internal objects about the C tree.

Could a pretty-printer of those objects help ?

Nico

On Mon, Aug 22, 2011 at 7:21 AM, Julia Lawall <[email protected]> wrote:
> Within a function definition, for statement-level things, you can do
> something like the following:
>
> @r@
> statement S;
> position p;
> @@
>
> S@p
>
> @script:ocaml s@
> p << r.p;
> label_start;
> label_end;
> @@
>
> label_start := Printf.sprintf "// <statement line: %d>" (List.hd p).line;
> label_end := Printf.sprintf "// </statement line: %d>" (List.hd p).line
>
> @@
> position r.p;
> statement S;
> identifier s.label_start, s.label_end;
> @@
>
> + label_start;
> S@p
> + label_end;
>
> For the C file:
>
> int main () {
>  foo();
>  if (y)
>    x = 12;
>  if (y) {
>    x = 12;
>  }
>  return 15;
> }
>
> You get:
>
> int main () {
>  // <statement line: 2>;
>  foo();
>  // </statement line: 2>;
>  // <statement line: 3>;
>  if (y) {
>    // <statement line: 4>;
>    x = 12;
>    // </statement line: 4>;
>  }
>  // </statement line: 3>;
>  // <statement line: 5>;
>  if (y) {
>    // <statement line: 5>;
>    {
>    // <statement line: 6>;
>    x = 12;
>    // </statement line: 6>;
>  }
>  // </statement line: 5>;
> }
> // </statement line: 5>;
>  // <statement line: 8>;
>  return 15;
>  // </statement line: 8>;
> }
>
> Note { } were added in the first if branch, because it thinks that newcode
> was added so the braces are needed.
>
> This is only possible in cases where it is possible to use an identifier.
> So I don't see how it would be possible to do the same for an expression
> or for a top-level item.  It is, however, possible to add comments around
> things.  Maybe metavariables could be instantiated within these added
> comments.
>
> julia
> _______________________________________________
> Cocci mailing list
> [email protected]
> http://lists.diku.dk/mailman/listinfo/cocci
> (Web access from inside DIKUs LAN only)
>



-- 
Nicolas Palix
http://sardes.inrialpes.fr/~npalix/
_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)

Reply via email to