Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
COCCILIB(3COCCI)					      COCCILIB(3COCCI)

NAME
       Coccilib	 -  Library  of	functions for use with Coccinelle OCaml	script
       code

MODULE
       Module	Coccilib

DOCUMENTATION
       Module Coccilib
	: sig end

       === Positions ===

       type pos	= {
	current_element	: string ;
	current_element_line : int ;
	current_element_col : int ;
	current_element_line_end : int ;
	current_element_col_end	: int ;
	file : string ;
	line : int ;
	col : int ;
	line_end : int ;
	col_end	: int ;
	}

       A value of type pos describes a position	in a source file.  current_el-
       ement is	the name of the	function containing the	matched	position; cur-
       rent_element_line is the	number of the line containing the first	 char-
       acter  of  the  function	 containing the	matched	position; current_ele-
       ment_col	is the (0-based) column	containing the first character of  the
       function	 containing  the matched position; current_element_line_end is
       the number of the line containing the last character  of	 the  function
       containing   the	  matched  position;  current_element_col_end  is  the
       (0-based) column	containing the last character of the function contain-
       ing  the	 matched  position file	is the name of the file	containing the
       matched position; line is the number of the line	containing  the	 first
       character of the	matched	position; col is the (0-based) column contain-
       ing the first character of the matched position;	line_end is the	number
       of  the	line  containing  the  last character of the matched position;
       col_end is the (0-based)	column containing the last  character  of  the
       matched position.

       === Abstract Syntax Tree	===

       type param_type
	=
	| Pos of pos list
	| Str of string
	| Type of Ast_c.fullType
	| Init of Ast_c.initialiser
	| InitList of Ast_c.initialiser	Ast_c.wrap2 list
	| Int of int
	| Param	of Ast_c.parameterType
	| ParamList of Ast_c.parameterType Ast_c.wrap2 list
	| Expr of Ast_c.expression
	| ExprList of Ast_c.argument Ast_c.wrap2 list
	| Decl of Ast_c.declaration
	| Field	of Ast_c.field
	| FieldList of Ast_c.field list
	| Stmt of Ast_c.statement

       val make_ident :	string -> Ast_c.metavar_binding_kind

       Make an identifier

       val make_expr : string -> Ast_c.metavar_binding_kind

       Make an expression

       val make_expr_with_env :	string -> string -> Ast_c.metavar_binding_kind

       Make  an	 expression  in	 a  type environment.  The first argument is a
       string containing any C variable	declarations needed to make the	 envi-
       ronment and the second argument is a string containing the expression.

       val make_stmt : string -> Ast_c.metavar_binding_kind

       Make a single statement

       val make_stmt_in_env : string ->	Ast_c.metavar_binding_kind

       Make a single statement in a type environment.  The first argument is a
       string containing any C variable	declarations needed to make the	 envi-
       ronment and the second argument is a string containing the statement.

       val make_type : string -> Ast_c.metavar_binding_kind

       Make a type

       val make_listlen	: int -> Ast_c.metavar_binding_kind

       Make a list length, for parameter lists,	expression lists, etc.

       val  make_full_position	: string -> string -> int -> int -> int	-> int
       -> int -> int ->	int -> int -> Ast_c.metavar_binding_kind

       Make a position.	 The arguments are the	file  name,  the  function  or
       other  toplevel	element	 containing the	position, the starting line of
       the containing element, the starting column of the containing  element,
       the  ending  line  of  the containing element, the ending column	of the
       containing element, the starting	line  of  the  created	position,  the
       starting	column of the created position,	the ending line	of the created
       position, and the ending	column of the created position.

       start at	0.  The	ending line is the one that contains the last  charac-
       ter  of	what  is  to be	matched.  The ending character is one past the
       last character of the thing to be matched.  The containing element  po-
       sition will be a	default	value.

       val  make_position  :  string  -> string	-> int -> int -> int ->	int ->
       Ast_c.metavar_binding_kind

       Make a position.	 The arguments are the	file  name,  the  function  or
       other  toplevel element containing the position,	the starting line, the
       starting	column,	the ending line, and the ending	column.	  Lines	 start
       at  1.	Columns	 start at 0.  The ending line is the one that contains
       the last	character of what is to	be matched.  The ending	 character  is
       one past	the last character of the thing	to be matched.	The containing
       element position	will be	a default value.

       === Match management functions ===

       val include_match : bool	-> unit

       If the argument is true,	retain the environment with respect  to	 which
       the  ocaml  script  code	is being executed for use in subsequent	rules.
       If the argument is false, discard this environment.   By	 default,  the
       environment is retained.

       val exit	: unit -> unit

       If  called,  aborts  the	 treatment  of the current file.  All previous
       changes take effect.

       val dir : unit -> string

       Returns the directory on	which spatch was launched.

       val files : unit	-> string list

       Returns the list	of files on which spatch is  currently	working.   The
       result is the empty list	if spatch is not currently working on any file
       (eg, in an initialize or	finalize rule).

       val cocci_version : unit	-> string

       Returns a string	indicating the current version.	  Note	that  if  Coc-
       cinelle	has  been modified since a release, the	version	number will be
       postfixed with "-dirty".

       val print_main :	?color:string -> string	-> pos list -> unit

       Print information about a main position using org mode.

       val print_sec : ?color:string ->	string -> pos list -> unit

       Print information about a single	secondary position using org mode.

       val print_secs :	?color:string -> string	-> pos list -> unit

       Print information about a list of secondary positions using org mode.

REFERENCES
       Y. Padioleau, J.L. Lawall, R.R Hansen, G. Muller	"Documenting  and  Au-
       tomating	 Collateral  Evolutions	 in Linux Device Driver" EuroSys 2008,
       Glasgow,	Scotland (April	2008) pp. 247-260.

AUTHOR
       This manual page	was written by Julia Lawall <Julia.Lawall@lip6.fr>.

REPORTING BUGS
       Send a mail to <cocci@systeme.lip6.fr>

COPYRIGHT
       Copyright 2011, DIKU, University	of Copenhagen  and  INRIA.   Copyright
       2012-2015, INRIA.

				 Jul 26, 2015		      COCCILIB(3COCCI)

NAME | MODULE | DOCUMENTATION | REFERENCES | AUTHOR | REPORTING BUGS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Coccilib&sektion=3cocci&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help