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

FreeBSD Manual Pages

  
 
  

home | help
Ast_iterator(3)			   OCamldoc		       Ast_iterator(3)

NAME
       Ast_iterator - Ast_iterator.iterator allows to implement	AST inspection
       using open recursion.

Module
       Module	Ast_iterator

Documentation
       Module Ast_iterator
	: sig end

       Ast_iterator.iterator allows to implement AST inspection	using open re-
       cursion.	 A typical mapper would	be based on Ast_iterator.default_iter-
       ator , a	trivial	iterator, and will fall	back on	it  for	 handling  the
       syntax it does not modify.

       === A generic Parsetree iterator	===

       type iterator = {
	attribute : iterator ->	Parsetree.attribute -> unit ;
	attributes : iterator -> Parsetree.attribute list -> unit ;
	case : iterator	-> Parsetree.case -> unit ;
	cases :	iterator -> Parsetree.case list	-> unit	;
	class_declaration : iterator ->	Parsetree.class_declaration -> unit ;
	class_description : iterator ->	Parsetree.class_description -> unit ;
	class_expr : iterator -> Parsetree.class_expr -> unit ;
	class_field : iterator -> Parsetree.class_field	-> unit	;
	class_signature	: iterator -> Parsetree.class_signature	-> unit	;
	class_structure	: iterator -> Parsetree.class_structure	-> unit	;
	class_type : iterator -> Parsetree.class_type -> unit ;
	class_type_declaration	: iterator -> Parsetree.class_type_declaration
       -> unit ;
	class_type_field : iterator -> Parsetree.class_type_field -> unit ;
	constructor_declaration	: iterator  ->	Parsetree.constructor_declara-
       tion -> unit ;
	expr : iterator	-> Parsetree.expression	-> unit	;
	extension : iterator ->	Parsetree.extension -> unit ;
	extension_constructor :	iterator -> Parsetree.extension_constructor ->
       unit ;
	include_declaration :  iterator	 ->  Parsetree.include_declaration  ->
       unit ;
	include_description  :	iterator  ->  Parsetree.include_description ->
       unit ;
	label_declaration : iterator ->	Parsetree.label_declaration -> unit ;
	location : iterator -> Location.t -> unit ;
	module_binding : iterator -> Parsetree.module_binding -> unit ;
	module_declaration : iterator -> Parsetree.module_declaration ->  unit
       ;
	module_expr : iterator -> Parsetree.module_expr	-> unit	;
	module_type : iterator -> Parsetree.module_type	-> unit	;
	module_type_declaration	 :  iterator ->	Parsetree.module_type_declara-
       tion -> unit ;
	open_description : iterator -> Parsetree.open_description -> unit ;
	pat : iterator -> Parsetree.pattern -> unit ;
	payload	: iterator -> Parsetree.payload	-> unit	;
	signature : iterator ->	Parsetree.signature -> unit ;
	signature_item : iterator -> Parsetree.signature_item -> unit ;
	structure : iterator ->	Parsetree.structure -> unit ;
	structure_item : iterator -> Parsetree.structure_item -> unit ;
	typ : iterator -> Parsetree.core_type -> unit ;
	type_declaration : iterator -> Parsetree.type_declaration -> unit ;
	type_extension : iterator -> Parsetree.type_extension -> unit ;
	type_kind : iterator ->	Parsetree.type_kind -> unit ;
	value_binding :	iterator -> Parsetree.value_binding -> unit ;
	value_description : iterator ->	Parsetree.value_description -> unit ;
	with_constraint	: iterator -> Parsetree.with_constraint	-> unit	;
	}

       A iterator record implements one	"method" per syntactic category, using
       an  open	 recursion  style: each	method takes as	its first argument the
       iterator	to be applied to children in the syntax	tree.

       val default_iterator : iterator

       A default iterator, which implements a "do not do anything" mapping.

2020-08-11			    source:		       Ast_iterator(3)

NAME | Module | Documentation

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

home | help