Frama-C-discuss mailing list archives
This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Frama-c-discuss] how to modify stmt in AST by using a visitor
- Subject: [Frama-c-discuss] how to modify stmt in AST by using a visitor
- From: abiao.yang at gmail.com (David Yang)
- Date: Tue, 10 Dec 2013 12:01:29 +0000
- In-reply-to: <F78243227D06A34BB823689CE7C08A1F18B8CD33@EXDAG0-B0.intra.cea.fr>
- References: <CAA1cxujRpWor=nBKyTdgsCvejLeMgFi+sLqUKbYKvVJQeiWYiA@mail.gmail.com> <F78243227D06A34BB823689CE7C08A1F18B8CD33@EXDAG0-B0.intra.cea.fr>
Dear Guillaume Petiot, Thank you so much. It helps a lot. I am sorry for any inconvenience for not carefully enough. I can do that now by adding this code, similar with using "-then-on". Project.set_current prj; Additionally, whether could I achieve this by using the copy visitor? Thanks. Best wishes, -david On 10 December 2013 07:44, PETIOT Guillaume <Guillaume.PETIOT at cea.fr> wrote: > Hi, > > You applied your transformation on the AST of project prj (called "transfer") when you did > Project.on prj transform() > > but you call the Printer on the current project ("default"). So you have to replace the call to the Printer by something like > Project.on prj (fun () -> > Format.printf "\n\nAfter transfering:\n%a" Printer.pp_file (Ast.get ()) > ) () > So that the Ast.Get() will return the AST of project "transfer". > > > You can also print the AST by invoking frama-c like this: frama-c -load-script transfer.ml pfunc.c -then-on transfer -print > > > Regards. > -- > Guillaume Petiot, PhD student > CEA LIST > > ________________________________________ > From: frama-c-discuss-bounces at lists.gforge.inria.fr [frama-c-discuss-bounces at lists.gforge.inria.fr] on behalf of David Yang [abiao.yang at gmail.com] > Sent: Tuesday, December 10, 2013 3:47 AM > To: Frama-C public discussion > Subject: [Frama-c-discuss] how to modify stmt in AST by using a visitor > > Dear all, > > Inspired by Virgile 's insert_stmt script in this mailing list: > http://lists.gforge.inria.fr/pipermail/frama-c-discuss/2012-March/003141.html > > I am writing a similar script to transform all call stmt of using > function pointer to a regular call stmt. > > For example, in file "pfunc.c": > /* --------------pfunc.c--------------------- */ > typedef int p_func (int *, int); > > int main (p_func* func, int *arg1, int arg2) > { > int result; > > result = (*func)(arg1, arg2); > > return result; > } > /*-------------end----------------*/ > > the func variable is a function pointer type. I want transform this > call to a regular call statement. > > The command I used here is : > frama-c -load-script transfer.ml pfunc.c > > You could download this two files and then run these script directly > as long as you has frama-c in your computer. > > Attached please find these two files for this command. > > But the ast file is not changed by this script. > > Is there anybody could help me fixing this problem? > Thank you very much. > > PS: The frama-c version I used here is: Fluorine-20130601 > > All the best, > -david > > _______________________________________________ > Frama-c-discuss mailing list > Frama-c-discuss at lists.gforge.inria.fr > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/frama-c-discuss
- Follow-Ups:
- [Frama-c-discuss] how to modify stmt in AST by using a visitor
- From: abiao.yang at gmail.com (David Yang)
- [Frama-c-discuss] how to modify stmt in AST by using a visitor
- References:
- [Frama-c-discuss] how to modify stmt in AST by using a visitor
- From: abiao.yang at gmail.com (David Yang)
- [Frama-c-discuss] how to modify stmt in AST by using a visitor
- From: Guillaume.PETIOT at cea.fr (PETIOT Guillaume)
- [Frama-c-discuss] how to modify stmt in AST by using a visitor
- Prev by Date: [Frama-c-discuss] how to modify stmt in AST by using a visitor
- Next by Date: [Frama-c-discuss] how to modify stmt in AST by using a visitor
- Previous by thread: [Frama-c-discuss] how to modify stmt in AST by using a visitor
- Next by thread: [Frama-c-discuss] how to modify stmt in AST by using a visitor
- Index(es):