<!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 -- epp_dodger</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.5.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.5</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="loadscrollpos" title="epp_dodger " expanded="true">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="no" title="erl_recomment " expanded="false">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-5"><a href="erl_syntax.html#clause-5">clause/5</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-5"><a href="erl_syntax.html#receive_expr-5">receive_expr/5</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-4"><a href="erl_syntax.html#try_expr-4">try_expr/4</a></li> <li title="try_expr-7"><a href="erl_syntax.html#try_expr-7">try_expr/7</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-3"><a href="igor.html#create_stubs-3">create_stubs/3</a></li> <li title="merge-2"><a href="igor.html#merge-2">merge/2</a></li> <li title="merge-4"><a href="igor.html#merge-4">merge/4</a></li> <li title="merge_files-4"><a href="igor.html#merge_files-4">merge_files/4</a></li> <li title="merge_files-5"><a href="igor.html#merge_files-5">merge_files/5</a></li> <li title="merge_sources-3"><a href="igor.html#merge_sources-3">merge_sources/3</a></li> <li title="parse_transform-3"><a href="igor.html#parse_transform-3">parse_transform/3</a></li> <li title="rename-2"><a href="igor.html#rename-2">rename/2</a></li> <li title="rename-5"><a href="igor.html#rename-5">rename/5</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>epp_dodger</h1></center> <h3>MODULE</h3> <div class="REFBODY">epp_dodger</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">epp_dodger - bypasses the Erlang preprocessor.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p><span class="code">epp_dodger</span> - bypasses the Erlang preprocessor.</p> <p>This module tokenises and parses most Erlang source code without expanding preprocessor directives and macro applications, as long as these are syntactically "well-behaved". Because the normal parse trees of the <span class="code">erl_parse</span> module cannot represent these things (normally, they are expanded by the Erlang preprocessor <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','stdlib','epp.html');">epp(3)</a></span> before the parser sees them), an extended syntax tree is created, using the <span class="bold_code"><a href="erl_syntax.html">erl_syntax</a></span> module.</p></p></div> <h3><a name="id2254437">DATA TYPES</a></h3> <div class="REFBODY"> <a name="types"></a> <dl> <dt><strong><span class="code">errorinfo() = {ErrorLine::integer(), Module::atom(), Descriptor::term()}</span></strong></dt> <dd> <a name="type-errorinfo"></a> <p>This is a so-called Erlang I/O ErrorInfo structure; see the <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','stdlib','io.html');">io(3)</a></span> module for details.</p> </dd> </dl> </div> <h3>EXPORTS</h3> <p><a name="parse-1"><span class="bold_code">parse(Dev::IODevice) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"><p><a name="parse-1"></a> <p>Equivalent to <span class="bold_code"><a href="#parse-2">parse(IODevice, 1)</a></span>.</p> </p></div> <p><a name="parse-2"><span class="bold_code">parse(Dev::IODevice, L::StartLine) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="parse-2"></a> <p>Equivalent to <span class="bold_code"><a href="#parse-3">parse(IODevice, StartLine, [])</a></span>.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-1">parse/1</a></span>.</p> </p></div> <p><a name="parse-3"><span class="bold_code">parse(Dev::IODevice, L0::StartLine, Options) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="parse-3"></a> <p>Reads and parses program text from an I/O stream. Characters are read from <span class="code">IODevice</span> until end-of-file; apart from this, the behaviour is the same as for <span class="bold_code"><a href="#parse_file-2">parse_file/2</a></span>. <span class="code">StartLine</span> is the initial line number, which should be a positive integer. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-2">parse/2</a></span>, <span class="bold_code"><a href="#parse_file-2">parse_file/2</a></span>, <span class="bold_code"><a href="#parse_form-2">parse_form/2</a></span>, <span class="bold_code"><a href="#quick_parse-3">quick_parse/3</a></span>.</p> </p></div> <p><a name="parse_file-1"><span class="bold_code">parse_file(File) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">File = filename() (see module file)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="parse_file-1"></a> <p>Equivalent to <span class="bold_code"><a href="#parse_file-2">parse_file(File, [])</a></span>.</p> </p></div> <p><a name="parse_file-2"><span class="bold_code">parse_file(File, Options) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">File = filename() (see module file)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="parse_file-2"></a> <p>Reads and parses a file. If successful, <span class="code">{ok, Forms}</span> is returned, where <span class="code">Forms</span> is a list of abstract syntax trees representing the "program forms" of the file (cf. <span class="code">erl_syntax:is_form/1</span>). Otherwise, <span class="code">{error, errorinfo()}</span> is returned, typically if the file could not be opened. Note that parse errors show up as error markers in the returned list of forms; they do not cause this function to fail or return <span class="code">{error, errorinfo()}</span>.</p> <p>Options: </p><dl> <dt><strong><span class="code">{no_fail, boolean()}</span></strong></dt> <dd><p>If <span class="code">true</span>, this makes <span class="code">epp_dodger</span> replace any program forms that could not be parsed with nodes of type <span class="code">text</span> (see <span class="bold_code"><a href="erl_syntax.html#text-1">erl_syntax:text/1</a></span>), representing the raw token sequence of the form, instead of reporting a parse error. The default value is <span class="code">false</span>.</p></dd> <dt><strong><span class="code">{clever, boolean()}</span></strong></dt> <dd><p>If set to <span class="code">true</span>, this makes <span class="code">epp_dodger</span> try to repair the source code as it seems fit, in certain cases where parsing would otherwise fail. Currently, it inserts <span class="code">++</span>-operators between string literals and macros where it looks like concatenation was intended. The default value is <span class="code">false</span>.</p></dd> </dl><p> </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-2">parse/2</a></span>, <span class="bold_code"><a href="#quick_parse_file-1">quick_parse_file/1</a></span>, <span class="bold_code"><a href="erl_syntax.html#is_form-1">erl_syntax:is_form/1</a></span>.</p> </p></div> <p><a name="parse_form-2"><span class="bold_code">parse_form(Dev::IODevice, L0::StartLine) -> {ok, Form, LineNo} | {eof, LineNo} | {error, errorinfo(), LineNo}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Form = syntaxTree() (see module erl_syntax)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">LineNo = integer()</span><br> </div> </div> <div class="REFBODY"><p><a name="parse_form-2"></a> <p>Equivalent to <span class="bold_code"><a href="#parse_form-3">parse_form(IODevice, StartLine, [])</a></span>.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="#quick_parse_form-2">quick_parse_form/2</a></span>.</p> </p></div> <p><a name="parse_form-3"><span class="bold_code">parse_form(Dev::IODevice, L0::StartLine, Options) -> {ok, Form, LineNo} | {eof, LineNo} | {error, errorinfo(), LineNo}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Form = syntaxTree() (see module erl_syntax)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">LineNo = integer()</span><br> </div> </div> <div class="REFBODY"><p><a name="parse_form-3"></a> <p>Reads and parses a single program form from an I/O stream. Characters are read from <span class="code">IODevice</span> until an end-of-form marker is found (a period character followed by whitespace), or until end-of-file; apart from this, the behaviour is similar to that of <span class="code">parse/3</span>, except that the return values also contain the final line number given that <span class="code">StartLine</span> is the initial line number, and that <span class="code">{eof, LineNo}</span> may be returned. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-3">parse/3</a></span>, <span class="bold_code"><a href="#parse_form-2">parse_form/2</a></span>, <span class="bold_code"><a href="#quick_parse_form-3">quick_parse_form/3</a></span>.</p> </p></div> <p><a name="quick_parse-1"><span class="bold_code">quick_parse(Dev::IODevice) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"><p><a name="quick_parse-1"></a> <p>Equivalent to <span class="bold_code"><a href="#quick_parse-2">quick_parse(IODevice, 1)</a></span>.</p> </p></div> <p><a name="quick_parse-2"><span class="bold_code">quick_parse(Dev::IODevice, L::StartLine) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse-2"></a> <p>Equivalent to <span class="bold_code"><a href="#quick_parse-3">quick_parse(IODevice, StartLine, [])</a></span>.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="#quick_parse-1">quick_parse/1</a></span>.</p> </p></div> <p><a name="quick_parse-3"><span class="bold_code">quick_parse(Dev::IODevice, L0::StartLine, Options) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse-3"></a> <p>Similar to <span class="bold_code"><a href="#parse-3">parse/3</a></span>, but does a more quick-and-dirty processing of the code. See <span class="bold_code"><a href="#quick_parse_file-2">quick_parse_file/2</a></span> for details. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-3">parse/3</a></span>, <span class="bold_code"><a href="#quick_parse-2">quick_parse/2</a></span>, <span class="bold_code"><a href="#quick_parse_file-2">quick_parse_file/2</a></span>, <span class="bold_code"><a href="#quick_parse_form-2">quick_parse_form/2</a></span>.</p> </p></div> <p><a name="quick_parse_file-1"><span class="bold_code">quick_parse_file(File) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">File = filename() (see module file)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse_file-1"></a> <p>Equivalent to <span class="bold_code"><a href="#quick_parse_file-2">quick_parse_file(File, [])</a></span>.</p> </p></div> <p><a name="quick_parse_file-2"><span class="bold_code">quick_parse_file(File, Options) -> {ok, Forms} | {error, errorinfo()}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">File = filename() (see module file)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Forms = [syntaxTree() (see module erl_syntax)]</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse_file-2"></a> <p>Similar to <span class="bold_code"><a href="#parse_file-2">parse_file/2</a></span>, but does a more quick-and-dirty processing of the code. Macro definitions and other preprocessor directives are discarded, and all macro calls are replaced with atoms. This is useful when only the main structure of the code is of interest, and not the details. Furthermore, the quick-parse method can usually handle more strange cases than the normal, more exact parsing.</p> <p>Options: see <span class="bold_code"><a href="#parse_file-2">parse_file/2</a></span>. Note however that for <span class="code">quick_parse_file/2</span>, the option <span class="code">no_fail</span> is <span class="code">true</span> by default. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse_file-2">parse_file/2</a></span>, <span class="bold_code"><a href="#quick_parse-2">quick_parse/2</a></span>.</p> </p></div> <p><a name="quick_parse_form-2"><span class="bold_code">quick_parse_form(Dev::IODevice, L0::StartLine) -> {ok, Form, LineNo} | {eof, LineNo} | {error, errorinfo(), LineNo}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Form = syntaxTree() (see module erl_syntax) | none</span><br> </div> <div class="REFTYPES"> <span class="bold_code">LineNo = integer()</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse_form-2"></a> <p>Equivalent to <span class="bold_code"><a href="#quick_parse_form-3">quick_parse_form(IODevice, StartLine, [])</a></span>.</p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse_form-2">parse_form/2</a></span>.</p> </p></div> <p><a name="quick_parse_form-3"><span class="bold_code">quick_parse_form(Dev::IODevice, L0::StartLine, Options) -> {ok, Form, LineNo} | {eof, LineNo} | {error, errorinfo(), LineNo}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">IODevice = pid()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">StartLine = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Options = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Form = syntaxTree() (see module erl_syntax)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">LineNo = integer()</span><br> </div> </div> <div class="REFBODY"><p><a name="quick_parse_form-3"></a> <p>Similar to <span class="bold_code"><a href="#parse_form-3">parse_form/3</a></span>, but does a more quick-and-dirty processing of the code. See <span class="bold_code"><a href="#quick_parse_file-2">quick_parse_file/2</a></span> for details. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#parse-3">parse/3</a></span>, <span class="bold_code"><a href="#parse_form-3">parse_form/3</a></span>, <span class="bold_code"><a href="#quick_parse_form-2">quick_parse_form/2</a></span>.</p> </p></div> <p><a name="tokens_to_string-1"><span class="bold_code">tokens_to_string(Tokens::[term()]) -> string()</span></a><br></p> <div class="REFBODY"><p><a name="tokens_to_string-1"></a> <p>Generates a string corresponding to the given token sequence. The string can be re-tokenized to yield the same token list again.</p> </p></div> Richard Carlsson richardc@it.uu.se</div> <div class="footer"> <hr> <p>Copyright © 2006-2010 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>