Hi,

On Wed, Apr 07, 2010 at 06:06:16PM -0600, ThanhVu (Vu) Nguyen wrote:
> can I tell CIL to process/output the code without adding the #line X ?

  --noPrintLn           Do not output #line directives in the output
  --commPrintLn         Print #line directives in the output, but put
                        them in comments
  --commPrintLnSparse   Print commented #line directives in the output
                        only when the line number changes.


> another question is when I create an empty function  with
> emptyFunction("fooname") of type void and then call GFfun() ,  CIL
> gives something  like
> 
> void emptyFunction(){
> {
> 
> }
> }
> 
> is there a way to remove these empty nested { }  ?

Define your own cilPrinter (inheriting cilDefaultPrinter).  It should be
enough to overload pBlock like this:

  method pBlock () (blk: block) = 
    let rec dofirst () = function
        [] -> nil
      | [x] -> self#pStmtNext invalidStmt () x
      | x :: rest -> dorest nil x rest
    and dorest acc prev = function
        [] -> acc ++ (self#pStmtNext invalidStmt () prev)
      | x :: rest -> 
          dorest (acc ++ (self#pStmtNext x () prev) ++ line)
            x rest
    in
    (* Skip empty blocks *)
    if blk.battrs = [] && blk.bstmts = [] then
      nil
    else
    (* Let the host of the block decide on the alignment. The d_block will 
     * pop the alignment as well  *)
    text "{" 
      ++ 
      (if blk.battrs <> [] then 
        self#pAttrsGen true blk.battrs
      else nil)
      ++ line
      ++ (dofirst () blk.bstmts)
      ++ unalign ++ line ++ text "}"

Regards,
-- 
Gabriel Kerneis

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
CIL-users mailing list
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to