<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- erl_recomment</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/syntax_tools-1.6.9.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Syntax_Tools</strong><br><strong>Reference Manual</strong><br><small>Version 1.6.9</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p> <ul class="flipMenu"> <li id="no" title="epp_dodger " expanded="false">epp_dodger<ul> <li><a href="epp_dodger.html"> Top of manual page </a></li> <li title="parse-1"><a href="epp_dodger.html#parse-1">parse/1</a></li> <li title="parse-2"><a href="epp_dodger.html#parse-2">parse/2</a></li> <li title="parse-3"><a href="epp_dodger.html#parse-3">parse/3</a></li> <li title="parse_file-1"><a href="epp_dodger.html#parse_file-1">parse_file/1</a></li> <li title="parse_file-2"><a href="epp_dodger.html#parse_file-2">parse_file/2</a></li> <li title="parse_form-2"><a href="epp_dodger.html#parse_form-2">parse_form/2</a></li> <li title="parse_form-3"><a href="epp_dodger.html#parse_form-3">parse_form/3</a></li> <li title="quick_parse-1"><a href="epp_dodger.html#quick_parse-1">quick_parse/1</a></li> <li title="quick_parse-2"><a href="epp_dodger.html#quick_parse-2">quick_parse/2</a></li> <li title="quick_parse-3"><a href="epp_dodger.html#quick_parse-3">quick_parse/3</a></li> <li title="quick_parse_file-1"><a href="epp_dodger.html#quick_parse_file-1">quick_parse_file/1</a></li> <li title="quick_parse_file-2"><a href="epp_dodger.html#quick_parse_file-2">quick_parse_file/2</a></li> <li title="quick_parse_form-2"><a href="epp_dodger.html#quick_parse_form-2">quick_parse_form/2</a></li> <li title="quick_parse_form-3"><a href="epp_dodger.html#quick_parse_form-3">quick_parse_form/3</a></li> <li title="tokens_to_string-1"><a href="epp_dodger.html#tokens_to_string-1">tokens_to_string/1</a></li> </ul> </li> <li id="no" title="erl_comment_scan " expanded="false">erl_comment_scan<ul> <li><a href="erl_comment_scan.html"> Top of manual page </a></li> <li title="file-1"><a href="erl_comment_scan.html#file-1">file/1</a></li> <li title="join_lines-1"><a href="erl_comment_scan.html#join_lines-1">join_lines/1</a></li> <li title="scan_lines-1"><a href="erl_comment_scan.html#scan_lines-1">scan_lines/1</a></li> <li title="string-1"><a href="erl_comment_scan.html#string-1">string/1</a></li> </ul> </li> <li id="no" title="erl_prettypr " expanded="false">erl_prettypr<ul> <li><a href="erl_prettypr.html"> Top of manual page </a></li> <li title="best-1"><a href="erl_prettypr.html#best-1">best/1</a></li> <li title="best-2"><a href="erl_prettypr.html#best-2">best/2</a></li> <li title="format-1"><a href="erl_prettypr.html#format-1">format/1</a></li> <li title="format-2"><a href="erl_prettypr.html#format-2">format/2</a></li> <li title="get_ctxt_hook-1"><a href="erl_prettypr.html#get_ctxt_hook-1">get_ctxt_hook/1</a></li> <li title="get_ctxt_linewidth-1"><a href="erl_prettypr.html#get_ctxt_linewidth-1">get_ctxt_linewidth/1</a></li> <li title="get_ctxt_paperwidth-1"><a href="erl_prettypr.html#get_ctxt_paperwidth-1">get_ctxt_paperwidth/1</a></li> <li title="get_ctxt_precedence-1"><a href="erl_prettypr.html#get_ctxt_precedence-1">get_ctxt_precedence/1</a></li> <li title="get_ctxt_user-1"><a href="erl_prettypr.html#get_ctxt_user-1">get_ctxt_user/1</a></li> <li title="layout-1"><a href="erl_prettypr.html#layout-1">layout/1</a></li> <li title="layout-2"><a href="erl_prettypr.html#layout-2">layout/2</a></li> <li title="set_ctxt_hook-2"><a href="erl_prettypr.html#set_ctxt_hook-2">set_ctxt_hook/2</a></li> <li title="set_ctxt_linewidth-2"><a href="erl_prettypr.html#set_ctxt_linewidth-2">set_ctxt_linewidth/2</a></li> <li title="set_ctxt_paperwidth-2"><a href="erl_prettypr.html#set_ctxt_paperwidth-2">set_ctxt_paperwidth/2</a></li> <li title="set_ctxt_precedence-2"><a href="erl_prettypr.html#set_ctxt_precedence-2">set_ctxt_precedence/2</a></li> <li title="set_ctxt_user-2"><a href="erl_prettypr.html#set_ctxt_user-2">set_ctxt_user/2</a></li> </ul> </li> <li id="loadscrollpos" title="erl_recomment " expanded="true">erl_recomment<ul> <li><a href="erl_recomment.html"> Top of manual page </a></li> <li title="quick_recomment_forms-2"><a href="erl_recomment.html#quick_recomment_forms-2">quick_recomment_forms/2</a></li> <li title="recomment_forms-2"><a href="erl_recomment.html#recomment_forms-2">recomment_forms/2</a></li> <li title="recomment_tree-2"><a href="erl_recomment.html#recomment_tree-2">recomment_tree/2</a></li> </ul> </li> <li id="no" title="erl_syntax " expanded="false">erl_syntax<ul> <li><a href="erl_syntax.html"> Top of manual page </a></li> <li title="abstract-1"><a href="erl_syntax.html#abstract-1">abstract/1</a></li> <li title="add_ann-2"><a href="erl_syntax.html#add_ann-2">add_ann/2</a></li> <li title="add_postcomments-2"><a href="erl_syntax.html#add_postcomments-2">add_postcomments/2</a></li> <li title="add_precomments-2"><a href="erl_syntax.html#add_precomments-2">add_precomments/2</a></li> <li title="application-2"><a href="erl_syntax.html#application-2">application/2</a></li> <li title="application-3"><a href="erl_syntax.html#application-3">application/3</a></li> <li title="application_arguments-1"><a href="erl_syntax.html#application_arguments-1">application_arguments/1</a></li> <li title="application_operator-1"><a href="erl_syntax.html#application_operator-1">application_operator/1</a></li> <li title="arity_qualifier-2"><a href="erl_syntax.html#arity_qualifier-2">arity_qualifier/2</a></li> <li title="arity_qualifier_argument-1"><a href="erl_syntax.html#arity_qualifier_argument-1">arity_qualifier_argument/1</a></li> <li title="arity_qualifier_body-1"><a href="erl_syntax.html#arity_qualifier_body-1">arity_qualifier_body/1</a></li> <li title="atom-1"><a href="erl_syntax.html#atom-1">atom/1</a></li> <li title="atom_literal-1"><a href="erl_syntax.html#atom_literal-1">atom_literal/1</a></li> <li title="atom_name-1"><a href="erl_syntax.html#atom_name-1">atom_name/1</a></li> <li title="atom_value-1"><a href="erl_syntax.html#atom_value-1">atom_value/1</a></li> <li title="attribute-1"><a href="erl_syntax.html#attribute-1">attribute/1</a></li> <li title="attribute-2"><a href="erl_syntax.html#attribute-2">attribute/2</a></li> <li title="attribute_arguments-1"><a href="erl_syntax.html#attribute_arguments-1">attribute_arguments/1</a></li> <li title="attribute_name-1"><a href="erl_syntax.html#attribute_name-1">attribute_name/1</a></li> <li title="binary-1"><a href="erl_syntax.html#binary-1">binary/1</a></li> <li title="binary_comp-2"><a href="erl_syntax.html#binary_comp-2">binary_comp/2</a></li> <li title="binary_comp_body-1"><a href="erl_syntax.html#binary_comp_body-1">binary_comp_body/1</a></li> <li title="binary_comp_template-1"><a href="erl_syntax.html#binary_comp_template-1">binary_comp_template/1</a></li> <li title="binary_field-1"><a href="erl_syntax.html#binary_field-1">binary_field/1</a></li> <li title="binary_field-2"><a href="erl_syntax.html#binary_field-2">binary_field/2</a></li> <li title="binary_field-3"><a href="erl_syntax.html#binary_field-3">binary_field/3</a></li> <li title="binary_field_body-1"><a href="erl_syntax.html#binary_field_body-1">binary_field_body/1</a></li> <li title="binary_field_size-1"><a href="erl_syntax.html#binary_field_size-1">binary_field_size/1</a></li> <li title="binary_field_types-1"><a href="erl_syntax.html#binary_field_types-1">binary_field_types/1</a></li> <li title="binary_fields-1"><a href="erl_syntax.html#binary_fields-1">binary_fields/1</a></li> <li title="binary_generator-2"><a href="erl_syntax.html#binary_generator-2">binary_generator/2</a></li> <li title="binary_generator_body-1"><a href="erl_syntax.html#binary_generator_body-1">binary_generator_body/1</a></li> <li title="binary_generator_pattern-1"><a href="erl_syntax.html#binary_generator_pattern-1">binary_generator_pattern/1</a></li> <li title="block_expr-1"><a href="erl_syntax.html#block_expr-1">block_expr/1</a></li> <li title="block_expr_body-1"><a href="erl_syntax.html#block_expr_body-1">block_expr_body/1</a></li> <li title="case_expr-2"><a href="erl_syntax.html#case_expr-2">case_expr/2</a></li> <li title="case_expr_argument-1"><a href="erl_syntax.html#case_expr_argument-1">case_expr_argument/1</a></li> <li title="case_expr_clauses-1"><a href="erl_syntax.html#case_expr_clauses-1">case_expr_clauses/1</a></li> <li title="catch_expr-1"><a href="erl_syntax.html#catch_expr-1">catch_expr/1</a></li> <li title="catch_expr_body-1"><a href="erl_syntax.html#catch_expr_body-1">catch_expr_body/1</a></li> <li title="char-1"><a href="erl_syntax.html#char-1">char/1</a></li> <li title="char_literal-1"><a href="erl_syntax.html#char_literal-1">char_literal/1</a></li> <li title="char_value-1"><a href="erl_syntax.html#char_value-1">char_value/1</a></li> <li title="class_qualifier-2"><a href="erl_syntax.html#class_qualifier-2">class_qualifier/2</a></li> <li title="class_qualifier_argument-1"><a href="erl_syntax.html#class_qualifier_argument-1">class_qualifier_argument/1</a></li> <li title="class_qualifier_body-1"><a href="erl_syntax.html#class_qualifier_body-1">class_qualifier_body/1</a></li> <li title="clause-2"><a href="erl_syntax.html#clause-2">clause/2</a></li> <li title="clause-3"><a href="erl_syntax.html#clause-3">clause/3</a></li> <li title="clause_body-1"><a href="erl_syntax.html#clause_body-1">clause_body/1</a></li> <li title="clause_guard-1"><a href="erl_syntax.html#clause_guard-1">clause_guard/1</a></li> <li title="clause_patterns-1"><a href="erl_syntax.html#clause_patterns-1">clause_patterns/1</a></li> <li title="comment-1"><a href="erl_syntax.html#comment-1">comment/1</a></li> <li title="comment-2"><a href="erl_syntax.html#comment-2">comment/2</a></li> <li title="comment_padding-1"><a href="erl_syntax.html#comment_padding-1">comment_padding/1</a></li> <li title="comment_text-1"><a href="erl_syntax.html#comment_text-1">comment_text/1</a></li> <li title="compact_list-1"><a href="erl_syntax.html#compact_list-1">compact_list/1</a></li> <li title="concrete-1"><a href="erl_syntax.html#concrete-1">concrete/1</a></li> <li title="cond_expr-1"><a href="erl_syntax.html#cond_expr-1">cond_expr/1</a></li> <li title="cond_expr_clauses-1"><a href="erl_syntax.html#cond_expr_clauses-1">cond_expr_clauses/1</a></li> <li title="conjunction-1"><a href="erl_syntax.html#conjunction-1">conjunction/1</a></li> <li title="conjunction_body-1"><a href="erl_syntax.html#conjunction_body-1">conjunction_body/1</a></li> <li title="cons-2"><a href="erl_syntax.html#cons-2">cons/2</a></li> <li title="copy_ann-2"><a href="erl_syntax.html#copy_ann-2">copy_ann/2</a></li> <li title="copy_attrs-2"><a href="erl_syntax.html#copy_attrs-2">copy_attrs/2</a></li> <li title="copy_comments-2"><a href="erl_syntax.html#copy_comments-2">copy_comments/2</a></li> <li title="copy_pos-2"><a href="erl_syntax.html#copy_pos-2">copy_pos/2</a></li> <li title="data-1"><a href="erl_syntax.html#data-1">data/1</a></li> <li title="disjunction-1"><a href="erl_syntax.html#disjunction-1">disjunction/1</a></li> <li title="disjunction_body-1"><a href="erl_syntax.html#disjunction_body-1">disjunction_body/1</a></li> <li title="eof_marker-0"><a href="erl_syntax.html#eof_marker-0">eof_marker/0</a></li> <li title="error_marker-1"><a href="erl_syntax.html#error_marker-1">error_marker/1</a></li> <li title="error_marker_info-1"><a href="erl_syntax.html#error_marker_info-1">error_marker_info/1</a></li> <li title="flatten_form_list-1"><a href="erl_syntax.html#flatten_form_list-1">flatten_form_list/1</a></li> <li title="float-1"><a href="erl_syntax.html#float-1">float/1</a></li> <li title="float_literal-1"><a href="erl_syntax.html#float_literal-1">float_literal/1</a></li> <li title="float_value-1"><a href="erl_syntax.html#float_value-1">float_value/1</a></li> <li title="form_list-1"><a href="erl_syntax.html#form_list-1">form_list/1</a></li> <li title="form_list_elements-1"><a href="erl_syntax.html#form_list_elements-1">form_list_elements/1</a></li> <li title="fun_expr-1"><a href="erl_syntax.html#fun_expr-1">fun_expr/1</a></li> <li title="fun_expr_arity-1"><a href="erl_syntax.html#fun_expr_arity-1">fun_expr_arity/1</a></li> <li title="fun_expr_clauses-1"><a href="erl_syntax.html#fun_expr_clauses-1">fun_expr_clauses/1</a></li> <li title="function-2"><a href="erl_syntax.html#function-2">function/2</a></li> <li title="function_arity-1"><a href="erl_syntax.html#function_arity-1">function_arity/1</a></li> <li title="function_clauses-1"><a href="erl_syntax.html#function_clauses-1">function_clauses/1</a></li> <li title="function_name-1"><a href="erl_syntax.html#function_name-1">function_name/1</a></li> <li title="generator-2"><a href="erl_syntax.html#generator-2">generator/2</a></li> <li title="generator_body-1"><a href="erl_syntax.html#generator_body-1">generator_body/1</a></li> <li title="generator_pattern-1"><a href="erl_syntax.html#generator_pattern-1">generator_pattern/1</a></li> <li title="get_ann-1"><a href="erl_syntax.html#get_ann-1">get_ann/1</a></li> <li title="get_attrs-1"><a href="erl_syntax.html#get_attrs-1">get_attrs/1</a></li> <li title="get_pos-1"><a href="erl_syntax.html#get_pos-1">get_pos/1</a></li> <li title="get_postcomments-1"><a href="erl_syntax.html#get_postcomments-1">get_postcomments/1</a></li> <li title="get_precomments-1"><a href="erl_syntax.html#get_precomments-1">get_precomments/1</a></li> <li title="has_comments-1"><a href="erl_syntax.html#has_comments-1">has_comments/1</a></li> <li title="if_expr-1"><a href="erl_syntax.html#if_expr-1">if_expr/1</a></li> <li title="if_expr_clauses-1"><a href="erl_syntax.html#if_expr_clauses-1">if_expr_clauses/1</a></li> <li title="implicit_fun-1"><a href="erl_syntax.html#implicit_fun-1">implicit_fun/1</a></li> <li title="implicit_fun-2"><a href="erl_syntax.html#implicit_fun-2">implicit_fun/2</a></li> <li title="implicit_fun-3"><a href="erl_syntax.html#implicit_fun-3">implicit_fun/3</a></li> <li title="implicit_fun_name-1"><a href="erl_syntax.html#implicit_fun_name-1">implicit_fun_name/1</a></li> <li title="infix_expr-3"><a href="erl_syntax.html#infix_expr-3">infix_expr/3</a></li> <li title="infix_expr_left-1"><a href="erl_syntax.html#infix_expr_left-1">infix_expr_left/1</a></li> <li title="infix_expr_operator-1"><a href="erl_syntax.html#infix_expr_operator-1">infix_expr_operator/1</a></li> <li title="infix_expr_right-1"><a href="erl_syntax.html#infix_expr_right-1">infix_expr_right/1</a></li> <li title="integer-1"><a href="erl_syntax.html#integer-1">integer/1</a></li> <li title="integer_literal-1"><a href="erl_syntax.html#integer_literal-1">integer_literal/1</a></li> <li title="integer_value-1"><a href="erl_syntax.html#integer_value-1">integer_value/1</a></li> <li title="is_atom-2"><a href="erl_syntax.html#is_atom-2">is_atom/2</a></li> <li title="is_char-2"><a href="erl_syntax.html#is_char-2">is_char/2</a></li> <li title="is_form-1"><a href="erl_syntax.html#is_form-1">is_form/1</a></li> <li title="is_integer-2"><a href="erl_syntax.html#is_integer-2">is_integer/2</a></li> <li title="is_leaf-1"><a href="erl_syntax.html#is_leaf-1">is_leaf/1</a></li> <li title="is_list_skeleton-1"><a href="erl_syntax.html#is_list_skeleton-1">is_list_skeleton/1</a></li> <li title="is_literal-1"><a href="erl_syntax.html#is_literal-1">is_literal/1</a></li> <li title="is_proper_list-1"><a href="erl_syntax.html#is_proper_list-1">is_proper_list/1</a></li> <li title="is_string-2"><a href="erl_syntax.html#is_string-2">is_string/2</a></li> <li title="is_tree-1"><a href="erl_syntax.html#is_tree-1">is_tree/1</a></li> <li title="join_comments-2"><a href="erl_syntax.html#join_comments-2">join_comments/2</a></li> <li title="list-1"><a href="erl_syntax.html#list-1">list/1</a></li> <li title="list-2"><a href="erl_syntax.html#list-2">list/2</a></li> <li title="list_comp-2"><a href="erl_syntax.html#list_comp-2">list_comp/2</a></li> <li title="list_comp_body-1"><a href="erl_syntax.html#list_comp_body-1">list_comp_body/1</a></li> <li title="list_comp_template-1"><a href="erl_syntax.html#list_comp_template-1">list_comp_template/1</a></li> <li title="list_elements-1"><a href="erl_syntax.html#list_elements-1">list_elements/1</a></li> <li title="list_head-1"><a href="erl_syntax.html#list_head-1">list_head/1</a></li> <li title="list_length-1"><a href="erl_syntax.html#list_length-1">list_length/1</a></li> <li title="list_prefix-1"><a href="erl_syntax.html#list_prefix-1">list_prefix/1</a></li> <li title="list_suffix-1"><a href="erl_syntax.html#list_suffix-1">list_suffix/1</a></li> <li title="list_tail-1"><a href="erl_syntax.html#list_tail-1">list_tail/1</a></li> <li title="macro-1"><a href="erl_syntax.html#macro-1">macro/1</a></li> <li title="macro-2"><a href="erl_syntax.html#macro-2">macro/2</a></li> <li title="macro_arguments-1"><a href="erl_syntax.html#macro_arguments-1">macro_arguments/1</a></li> <li title="macro_name-1"><a href="erl_syntax.html#macro_name-1">macro_name/1</a></li> <li title="make_tree-2"><a href="erl_syntax.html#make_tree-2">make_tree/2</a></li> <li title="match_expr-2"><a href="erl_syntax.html#match_expr-2">match_expr/2</a></li> <li title="match_expr_body-1"><a href="erl_syntax.html#match_expr_body-1">match_expr_body/1</a></li> <li title="match_expr_pattern-1"><a href="erl_syntax.html#match_expr_pattern-1">match_expr_pattern/1</a></li> <li title="meta-1"><a href="erl_syntax.html#meta-1">meta/1</a></li> <li title="module_qualifier-2"><a href="erl_syntax.html#module_qualifier-2">module_qualifier/2</a></li> <li title="module_qualifier_argument-1"><a href="erl_syntax.html#module_qualifier_argument-1">module_qualifier_argument/1</a></li> <li title="module_qualifier_body-1"><a href="erl_syntax.html#module_qualifier_body-1">module_qualifier_body/1</a></li> <li title="nil-0"><a href="erl_syntax.html#nil-0">nil/0</a></li> <li title="normalize_list-1"><a href="erl_syntax.html#normalize_list-1">normalize_list/1</a></li> <li title="operator-1"><a href="erl_syntax.html#operator-1">operator/1</a></li> <li title="operator_literal-1"><a href="erl_syntax.html#operator_literal-1">operator_literal/1</a></li> <li title="operator_name-1"><a href="erl_syntax.html#operator_name-1">operator_name/1</a></li> <li title="parentheses-1"><a href="erl_syntax.html#parentheses-1">parentheses/1</a></li> <li title="parentheses_body-1"><a href="erl_syntax.html#parentheses_body-1">parentheses_body/1</a></li> <li title="prefix_expr-2"><a href="erl_syntax.html#prefix_expr-2">prefix_expr/2</a></li> <li title="prefix_expr_argument-1"><a href="erl_syntax.html#prefix_expr_argument-1">prefix_expr_argument/1</a></li> <li title="prefix_expr_operator-1"><a href="erl_syntax.html#prefix_expr_operator-1">prefix_expr_operator/1</a></li> <li title="qualified_name-1"><a href="erl_syntax.html#qualified_name-1">qualified_name/1</a></li> <li title="qualified_name_segments-1"><a href="erl_syntax.html#qualified_name_segments-1">qualified_name_segments/1</a></li> <li title="query_expr-1"><a href="erl_syntax.html#query_expr-1">query_expr/1</a></li> <li title="query_expr_body-1"><a href="erl_syntax.html#query_expr_body-1">query_expr_body/1</a></li> <li title="receive_expr-1"><a href="erl_syntax.html#receive_expr-1">receive_expr/1</a></li> <li title="receive_expr-3"><a href="erl_syntax.html#receive_expr-3">receive_expr/3</a></li> <li title="receive_expr_action-1"><a href="erl_syntax.html#receive_expr_action-1">receive_expr_action/1</a></li> <li title="receive_expr_clauses-1"><a href="erl_syntax.html#receive_expr_clauses-1">receive_expr_clauses/1</a></li> <li title="receive_expr_timeout-1"><a href="erl_syntax.html#receive_expr_timeout-1">receive_expr_timeout/1</a></li> <li title="record_access-2"><a href="erl_syntax.html#record_access-2">record_access/2</a></li> <li title="record_access-3"><a href="erl_syntax.html#record_access-3">record_access/3</a></li> <li title="record_access_argument-1"><a href="erl_syntax.html#record_access_argument-1">record_access_argument/1</a></li> <li title="record_access_field-1"><a href="erl_syntax.html#record_access_field-1">record_access_field/1</a></li> <li title="record_access_type-1"><a href="erl_syntax.html#record_access_type-1">record_access_type/1</a></li> <li title="record_expr-2"><a href="erl_syntax.html#record_expr-2">record_expr/2</a></li> <li title="record_expr-3"><a href="erl_syntax.html#record_expr-3">record_expr/3</a></li> <li title="record_expr_argument-1"><a href="erl_syntax.html#record_expr_argument-1">record_expr_argument/1</a></li> <li title="record_expr_fields-1"><a href="erl_syntax.html#record_expr_fields-1">record_expr_fields/1</a></li> <li title="record_expr_type-1"><a href="erl_syntax.html#record_expr_type-1">record_expr_type/1</a></li> <li title="record_field-1"><a href="erl_syntax.html#record_field-1">record_field/1</a></li> <li title="record_field-2"><a href="erl_syntax.html#record_field-2">record_field/2</a></li> <li title="record_field_name-1"><a href="erl_syntax.html#record_field_name-1">record_field_name/1</a></li> <li title="record_field_value-1"><a href="erl_syntax.html#record_field_value-1">record_field_value/1</a></li> <li title="record_index_expr-2"><a href="erl_syntax.html#record_index_expr-2">record_index_expr/2</a></li> <li title="record_index_expr_field-1"><a href="erl_syntax.html#record_index_expr_field-1">record_index_expr_field/1</a></li> <li title="record_index_expr_type-1"><a href="erl_syntax.html#record_index_expr_type-1">record_index_expr_type/1</a></li> <li title="remove_comments-1"><a href="erl_syntax.html#remove_comments-1">remove_comments/1</a></li> <li title="revert-1"><a href="erl_syntax.html#revert-1">revert/1</a></li> <li title="revert_forms-1"><a href="erl_syntax.html#revert_forms-1">revert_forms/1</a></li> <li title="rule-2"><a href="erl_syntax.html#rule-2">rule/2</a></li> <li title="rule_arity-1"><a href="erl_syntax.html#rule_arity-1">rule_arity/1</a></li> <li title="rule_clauses-1"><a href="erl_syntax.html#rule_clauses-1">rule_clauses/1</a></li> <li title="rule_name-1"><a href="erl_syntax.html#rule_name-1">rule_name/1</a></li> <li title="set_ann-2"><a href="erl_syntax.html#set_ann-2">set_ann/2</a></li> <li title="set_attrs-2"><a href="erl_syntax.html#set_attrs-2">set_attrs/2</a></li> <li title="set_pos-2"><a href="erl_syntax.html#set_pos-2">set_pos/2</a></li> <li title="set_postcomments-2"><a href="erl_syntax.html#set_postcomments-2">set_postcomments/2</a></li> <li title="set_precomments-2"><a href="erl_syntax.html#set_precomments-2">set_precomments/2</a></li> <li title="size_qualifier-2"><a href="erl_syntax.html#size_qualifier-2">size_qualifier/2</a></li> <li title="size_qualifier_argument-1"><a href="erl_syntax.html#size_qualifier_argument-1">size_qualifier_argument/1</a></li> <li title="size_qualifier_body-1"><a href="erl_syntax.html#size_qualifier_body-1">size_qualifier_body/1</a></li> <li title="string-1"><a href="erl_syntax.html#string-1">string/1</a></li> <li title="string_literal-1"><a href="erl_syntax.html#string_literal-1">string_literal/1</a></li> <li title="string_value-1"><a href="erl_syntax.html#string_value-1">string_value/1</a></li> <li title="subtrees-1"><a href="erl_syntax.html#subtrees-1">subtrees/1</a></li> <li title="text-1"><a href="erl_syntax.html#text-1">text/1</a></li> <li title="text_string-1"><a href="erl_syntax.html#text_string-1">text_string/1</a></li> <li title="tree-1"><a href="erl_syntax.html#tree-1">tree/1</a></li> <li title="tree-2"><a href="erl_syntax.html#tree-2">tree/2</a></li> <li title="try_after_expr-2"><a href="erl_syntax.html#try_after_expr-2">try_after_expr/2</a></li> <li title="try_expr-2"><a href="erl_syntax.html#try_expr-2">try_expr/2</a></li> <li title="try_expr-3"><a href="erl_syntax.html#try_expr-3">try_expr/3</a></li> <li title="try_expr-4"><a href="erl_syntax.html#try_expr-4">try_expr/4</a></li> <li title="try_expr_after-1"><a href="erl_syntax.html#try_expr_after-1">try_expr_after/1</a></li> <li title="try_expr_body-1"><a href="erl_syntax.html#try_expr_body-1">try_expr_body/1</a></li> <li title="try_expr_clauses-1"><a href="erl_syntax.html#try_expr_clauses-1">try_expr_clauses/1</a></li> <li title="try_expr_handlers-1"><a href="erl_syntax.html#try_expr_handlers-1">try_expr_handlers/1</a></li> <li title="tuple-1"><a href="erl_syntax.html#tuple-1">tuple/1</a></li> <li title="tuple_elements-1"><a href="erl_syntax.html#tuple_elements-1">tuple_elements/1</a></li> <li title="tuple_size-1"><a href="erl_syntax.html#tuple_size-1">tuple_size/1</a></li> <li title="type-1"><a href="erl_syntax.html#type-1">type/1</a></li> <li title="underscore-0"><a href="erl_syntax.html#underscore-0">underscore/0</a></li> <li title="update_tree-2"><a href="erl_syntax.html#update_tree-2">update_tree/2</a></li> <li title="variable-1"><a href="erl_syntax.html#variable-1">variable/1</a></li> <li title="variable_literal-1"><a href="erl_syntax.html#variable_literal-1">variable_literal/1</a></li> <li title="variable_name-1"><a href="erl_syntax.html#variable_name-1">variable_name/1</a></li> <li title="warning_marker-1"><a href="erl_syntax.html#warning_marker-1">warning_marker/1</a></li> <li title="warning_marker_info-1"><a href="erl_syntax.html#warning_marker_info-1">warning_marker_info/1</a></li> </ul> </li> <li id="no" title="erl_syntax_lib " expanded="false">erl_syntax_lib<ul> <li><a href="erl_syntax_lib.html"> Top of manual page </a></li> <li title="analyze_application-1"><a href="erl_syntax_lib.html#analyze_application-1">analyze_application/1</a></li> <li title="analyze_attribute-1"><a href="erl_syntax_lib.html#analyze_attribute-1">analyze_attribute/1</a></li> <li title="analyze_export_attribute-1"><a href="erl_syntax_lib.html#analyze_export_attribute-1">analyze_export_attribute/1</a></li> <li title="analyze_file_attribute-1"><a href="erl_syntax_lib.html#analyze_file_attribute-1">analyze_file_attribute/1</a></li> <li title="analyze_form-1"><a href="erl_syntax_lib.html#analyze_form-1">analyze_form/1</a></li> <li title="analyze_forms-1"><a href="erl_syntax_lib.html#analyze_forms-1">analyze_forms/1</a></li> <li title="analyze_function-1"><a href="erl_syntax_lib.html#analyze_function-1">analyze_function/1</a></li> <li title="analyze_function_name-1"><a href="erl_syntax_lib.html#analyze_function_name-1">analyze_function_name/1</a></li> <li title="analyze_implicit_fun-1"><a href="erl_syntax_lib.html#analyze_implicit_fun-1">analyze_implicit_fun/1</a></li> <li title="analyze_import_attribute-1"><a href="erl_syntax_lib.html#analyze_import_attribute-1">analyze_import_attribute/1</a></li> <li title="analyze_module_attribute-1"><a href="erl_syntax_lib.html#analyze_module_attribute-1">analyze_module_attribute/1</a></li> <li title="analyze_record_attribute-1"><a href="erl_syntax_lib.html#analyze_record_attribute-1">analyze_record_attribute/1</a></li> <li title="analyze_record_expr-1"><a href="erl_syntax_lib.html#analyze_record_expr-1">analyze_record_expr/1</a></li> <li title="analyze_record_field-1"><a href="erl_syntax_lib.html#analyze_record_field-1">analyze_record_field/1</a></li> <li title="analyze_rule-1"><a href="erl_syntax_lib.html#analyze_rule-1">analyze_rule/1</a></li> <li title="analyze_wild_attribute-1"><a href="erl_syntax_lib.html#analyze_wild_attribute-1">analyze_wild_attribute/1</a></li> <li title="annotate_bindings-1"><a href="erl_syntax_lib.html#annotate_bindings-1">annotate_bindings/1</a></li> <li title="annotate_bindings-2"><a href="erl_syntax_lib.html#annotate_bindings-2">annotate_bindings/2</a></li> <li title="fold-3"><a href="erl_syntax_lib.html#fold-3">fold/3</a></li> <li title="fold_subtrees-3"><a href="erl_syntax_lib.html#fold_subtrees-3">fold_subtrees/3</a></li> <li title="foldl_listlist-3"><a href="erl_syntax_lib.html#foldl_listlist-3">foldl_listlist/3</a></li> <li title="function_name_expansions-1"><a href="erl_syntax_lib.html#function_name_expansions-1">function_name_expansions/1</a></li> <li title="is_fail_expr-1"><a href="erl_syntax_lib.html#is_fail_expr-1">is_fail_expr/1</a></li> <li title="limit-2"><a href="erl_syntax_lib.html#limit-2">limit/2</a></li> <li title="limit-3"><a href="erl_syntax_lib.html#limit-3">limit/3</a></li> <li title="map-2"><a href="erl_syntax_lib.html#map-2">map/2</a></li> <li title="map_subtrees-2"><a href="erl_syntax_lib.html#map_subtrees-2">map_subtrees/2</a></li> <li title="mapfold-3"><a href="erl_syntax_lib.html#mapfold-3">mapfold/3</a></li> <li title="mapfold_subtrees-3"><a href="erl_syntax_lib.html#mapfold_subtrees-3">mapfold_subtrees/3</a></li> <li title="mapfoldl_listlist-3"><a href="erl_syntax_lib.html#mapfoldl_listlist-3">mapfoldl_listlist/3</a></li> <li title="new_variable_name-1"><a href="erl_syntax_lib.html#new_variable_name-1">new_variable_name/1</a></li> <li title="new_variable_name-2"><a href="erl_syntax_lib.html#new_variable_name-2">new_variable_name/2</a></li> <li title="new_variable_names-2"><a href="erl_syntax_lib.html#new_variable_names-2">new_variable_names/2</a></li> <li title="new_variable_names-3"><a href="erl_syntax_lib.html#new_variable_names-3">new_variable_names/3</a></li> <li title="strip_comments-1"><a href="erl_syntax_lib.html#strip_comments-1">strip_comments/1</a></li> <li title="to_comment-1"><a href="erl_syntax_lib.html#to_comment-1">to_comment/1</a></li> <li title="to_comment-2"><a href="erl_syntax_lib.html#to_comment-2">to_comment/2</a></li> <li title="to_comment-3"><a href="erl_syntax_lib.html#to_comment-3">to_comment/3</a></li> <li title="variables-1"><a href="erl_syntax_lib.html#variables-1">variables/1</a></li> </ul> </li> <li id="no" title="erl_tidy " expanded="false">erl_tidy<ul> <li><a href="erl_tidy.html"> Top of manual page </a></li> <li title="dir-0"><a href="erl_tidy.html#dir-0">dir/0</a></li> <li title="dir-1"><a href="erl_tidy.html#dir-1">dir/1</a></li> <li title="dir-2"><a href="erl_tidy.html#dir-2">dir/2</a></li> <li title="file-1"><a href="erl_tidy.html#file-1">file/1</a></li> <li title="file-2"><a href="erl_tidy.html#file-2">file/2</a></li> <li title="module-1"><a href="erl_tidy.html#module-1">module/1</a></li> <li title="module-2"><a href="erl_tidy.html#module-2">module/2</a></li> </ul> </li> <li id="no" title="igor " expanded="false">igor<ul> <li><a href="igor.html"> Top of manual page </a></li> <li title="create_stubs-2"><a href="igor.html#create_stubs-2">create_stubs/2</a></li> <li title="merge-2"><a href="igor.html#merge-2">merge/2</a></li> <li title="merge-3"><a href="igor.html#merge-3">merge/3</a></li> <li title="merge_files-3"><a href="igor.html#merge_files-3">merge_files/3</a></li> <li title="merge_files-4"><a href="igor.html#merge_files-4">merge_files/4</a></li> <li title="merge_sources-3"><a href="igor.html#merge_sources-3">merge_sources/3</a></li> <li title="parse_transform-2"><a href="igor.html#parse_transform-2">parse_transform/2</a></li> <li title="rename-2"><a href="igor.html#rename-2">rename/2</a></li> <li title="rename-3"><a href="igor.html#rename-3">rename/3</a></li> </ul> </li> <li id="no" title="prettypr " expanded="false">prettypr<ul> <li><a href="prettypr.html"> Top of manual page </a></li> <li title="above-2"><a href="prettypr.html#above-2">above/2</a></li> <li title="beside-2"><a href="prettypr.html#beside-2">beside/2</a></li> <li title="best-3"><a href="prettypr.html#best-3">best/3</a></li> <li title="break-1"><a href="prettypr.html#break-1">break/1</a></li> <li title="empty-0"><a href="prettypr.html#empty-0">empty/0</a></li> <li title="floating-1"><a href="prettypr.html#floating-1">floating/1</a></li> <li title="floating-3"><a href="prettypr.html#floating-3">floating/3</a></li> <li title="follow-2"><a href="prettypr.html#follow-2">follow/2</a></li> <li title="follow-3"><a href="prettypr.html#follow-3">follow/3</a></li> <li title="format-1"><a href="prettypr.html#format-1">format/1</a></li> <li title="format-2"><a href="prettypr.html#format-2">format/2</a></li> <li title="format-3"><a href="prettypr.html#format-3">format/3</a></li> <li title="nest-2"><a href="prettypr.html#nest-2">nest/2</a></li> <li title="null_text-1"><a href="prettypr.html#null_text-1">null_text/1</a></li> <li title="par-1"><a href="prettypr.html#par-1">par/1</a></li> <li title="par-2"><a href="prettypr.html#par-2">par/2</a></li> <li title="sep-1"><a href="prettypr.html#sep-1">sep/1</a></li> <li title="text-1"><a href="prettypr.html#text-1">text/1</a></li> <li title="text_par-1"><a href="prettypr.html#text_par-1">text_par/1</a></li> <li title="text_par-2"><a href="prettypr.html#text_par-2">text_par/2</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>erl_recomment</h1></center> <h3>MODULE</h3> <div class="REFBODY">erl_recomment</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">Inserting comments into abstract Erlang syntax trees.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>Inserting comments into abstract Erlang syntax trees</p> <p>This module contains functions for inserting comments, described by position, indentation and text, as attachments on an abstract syntax tree, at the correct places.</p></p></div> <h3>EXPORTS</h3> <p><a name="quick_recomment_forms-2"><span class="bold_code">quick_recomment_forms(Tree::Forms, Comments::[Comment]) -> syntaxTree()</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Forms = syntaxTree() | [syntaxTree()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Comment = {Line, Column, Indentation, Text}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Line = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Column = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Indentation = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Text = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_recomment_forms-2"></a> <p>Like <span class="bold_code"><a href="#recomment_forms-2">recomment_forms/2</a></span>, but only inserts top-level comments. Comments within function definitions or declarations ("forms") are simply ignored.</p> </p></div> <p><a name="recomment_forms-2"><span class="bold_code">recomment_forms(Tree::Forms, Comments::[Comment]) -> syntaxTree()</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">syntaxTree() (see module erl_syntax)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = syntaxTree() | [syntaxTree()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Comment = {Line, Column, Indentation, Text}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Line = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Column = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Indentation = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Text = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="recomment_forms-2"></a> <p>Attaches comments to the syntax tree/trees representing a program. The given <span class="code">Forms</span> should be a single syntax tree of type <span class="code">form_list</span>, or a list of syntax trees representing "program forms". The syntax trees must contain valid position information (for details, see <span class="code">recomment_tree/2</span>). The result is a corresponding syntax tree of type <span class="code">form_list</span> in which all comments in the list <span class="code">Comments</span> have been attached at the proper places.</p> <p>Assuming <span class="code">Forms</span> represents a program (or any sequence of "program forms"), any comments whose first lines are not directly associated with a specific program form will become standalone comments inserted between the neighbouring program forms. Furthermore, comments whose column position is less than or equal to one will not be attached to a program form that begins at a conflicting line number (this can happen with preprocessor-generated <span class="code">line</span>-attributes).</p> <p>If <span class="code">Forms</span> is a syntax tree of some other type than <span class="code">form_list</span>, the comments will be inserted directly using <span class="code">recomment_tree/2</span>, and any comments left over from that process are added as postcomments on the result.</p> <p>Entries in <span class="code">Comments</span> represent multi-line comments. For each entry, <span class="code">Line</span> is the line number and <span class="code">Column</span> the left column of the comment (the column of the first comment-introducing "<span class="code">%</span>" character). <span class="code">Indentation</span> is the number of character positions between the last non-whitespace character before the comment (or the left margin) and the left column of the comment. <span class="code">Text</span> is a list of strings representing the consecutive comment lines in top-down order, where each string contains all characters following (but not including) the comment-introducing "<span class="code">%</span>" and up to (but not including) the terminating newline. (Cf. module <span class="code">erl_comment_scan</span>.)</p> <p>Evaluation exits with reason <span class="code">{bad_position, Pos}</span> if the associated position information <span class="code">Pos</span> of some subtree in the input does not have a recognizable format, or with reason <span class="code">{bad_tree, L, C}</span> if insertion of a comment at line <span class="code">L</span>, column <span class="code">C</span>, fails because the tree structure is ill-formed.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="erl_comment_scan.html">erl_comment_scan</a></span>, <span class="bold_code"><a href="#quick_recomment_forms-2">quick_recomment_forms/2</a></span>, <span class="bold_code"><a href="#recomment_tree-2">recomment_tree/2</a></span>.</p> </p></div> <p><a name="recomment_tree-2"><span class="bold_code">recomment_tree(Tree::syntaxTree(), Comments::[Comment]) -> {syntaxTree(), [Comment]}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Comment = {Line, Column, Indentation, Text}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Line = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Column = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Indentation = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Text = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="recomment_tree-2"></a> <p>Attaches comments to a syntax tree. The result is a pair <span class="code">{NewTree, Remainder}</span> where <span class="code">NewTree</span> is the given <span class="code">Tree</span> where comments from the list <span class="code">Comments</span> have been attached at the proper places. <span class="code">Remainder</span> is the list of entries in <span class="code">Comments</span> which have not been inserted, because their line numbers are greater than those of any node in the tree. The entries in <span class="code">Comments</span> are inserted in order; if two comments become attached to the same node, they will appear in the same order in the program text.</p> <p>The nodes of the syntax tree must contain valid position information. This can be single integers, assumed to represent a line number, or 2- or 3-tuples where the first or second element is an integer, in which case the leftmost integer element is assumed to represent the line number. Line numbers less than one are ignored (usually, the default line number for newly created nodes is zero).</p> <p>For details on the <span class="code">Line</span>, <span class="code">Column</span> and <span class="code">Indentation</span> fields, and the behaviour in case of errors, see <span class="code">recomment_forms/2</span>.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="#recomment_forms-2">recomment_forms/2</a></span>.</p> </p></div> Richard Carlsson carlsson.richard@gmail.com</div> <div class="footer"> <hr> <p>Copyright © 2006-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>