<!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 -- edoc_extract</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/edoc-0.7.10.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>EDoc</strong><br><strong>Reference Manual</strong><br><small>Version 0.7.10</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="edoc " expanded="false">edoc<ul> <li><a href="edoc.html"> Top of manual page </a></li> <li title="application-1"><a href="edoc.html#application-1">application/1</a></li> <li title="application-2"><a href="edoc.html#application-2">application/2</a></li> <li title="application-3"><a href="edoc.html#application-3">application/3</a></li> <li title="file-1"><a href="edoc.html#file-1">file/1</a></li> <li title="file-2"><a href="edoc.html#file-2">file/2</a></li> <li title="files-1"><a href="edoc.html#files-1">files/1</a></li> <li title="files-2"><a href="edoc.html#files-2">files/2</a></li> <li title="get_doc-1"><a href="edoc.html#get_doc-1">get_doc/1</a></li> <li title="get_doc-2"><a href="edoc.html#get_doc-2">get_doc/2</a></li> <li title="get_doc-3"><a href="edoc.html#get_doc-3">get_doc/3</a></li> <li title="layout-1"><a href="edoc.html#layout-1">layout/1</a></li> <li title="layout-2"><a href="edoc.html#layout-2">layout/2</a></li> <li title="packages-1"><a href="edoc.html#packages-1">packages/1</a></li> <li title="packages-2"><a href="edoc.html#packages-2">packages/2</a></li> <li title="read-1"><a href="edoc.html#read-1">read/1</a></li> <li title="read-2"><a href="edoc.html#read-2">read/2</a></li> <li title="read_comments-1"><a href="edoc.html#read_comments-1">read_comments/1</a></li> <li title="read_comments-2"><a href="edoc.html#read_comments-2">read_comments/2</a></li> <li title="read_source-1"><a href="edoc.html#read_source-1">read_source/1</a></li> <li title="read_source-2"><a href="edoc.html#read_source-2">read_source/2</a></li> <li title="run-3"><a href="edoc.html#run-3">run/3</a></li> </ul> </li> <li id="no" title="edoc_doclet " expanded="false">edoc_doclet<ul> <li><a href="edoc_doclet.html"> Top of manual page </a></li> <li title="run-2"><a href="edoc_doclet.html#run-2">run/2</a></li> </ul> </li> <li id="loadscrollpos" title="edoc_extract " expanded="true">edoc_extract<ul> <li><a href="edoc_extract.html"> Top of manual page </a></li> <li title="file-4"><a href="edoc_extract.html#file-4">file/4</a></li> <li title="header-3"><a href="edoc_extract.html#header-3">header/3</a></li> <li title="header-4"><a href="edoc_extract.html#header-4">header/4</a></li> <li title="header-5"><a href="edoc_extract.html#header-5">header/5</a></li> <li title="source-3"><a href="edoc_extract.html#source-3">source/3</a></li> <li title="source-4"><a href="edoc_extract.html#source-4">source/4</a></li> <li title="source-5"><a href="edoc_extract.html#source-5">source/5</a></li> <li title="text-4"><a href="edoc_extract.html#text-4">text/4</a></li> </ul> </li> <li id="no" title="edoc_layout " expanded="false">edoc_layout<ul> <li><a href="edoc_layout.html"> Top of manual page </a></li> <li title="module-2"><a href="edoc_layout.html#module-2">module/2</a></li> <li title="overview-2"><a href="edoc_layout.html#overview-2">overview/2</a></li> <li title="package-2"><a href="edoc_layout.html#package-2">package/2</a></li> <li title="type-1"><a href="edoc_layout.html#type-1">type/1</a></li> </ul> </li> <li id="no" title="edoc_lib " expanded="false">edoc_lib<ul> <li><a href="edoc_lib.html"> Top of manual page </a></li> <li title="get_doc_env-4"><a href="edoc_lib.html#get_doc_env-4">get_doc_env/4</a></li> </ul> </li> <li id="no" title="edoc_run " expanded="false">edoc_run<ul> <li><a href="edoc_run.html"> Top of manual page </a></li> <li title="application-1"><a href="edoc_run.html#application-1">application/1</a></li> <li title="file-1"><a href="edoc_run.html#file-1">file/1</a></li> <li title="files-1"><a href="edoc_run.html#files-1">files/1</a></li> <li title="packages-1"><a href="edoc_run.html#packages-1">packages/1</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>edoc_extract</h1></center> <h3>MODULE</h3> <div class="REFBODY">edoc_extract</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">EDoc documentation extraction.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>EDoc documentation extraction.</p></p></div> <h3><a name="id68437">DATA TYPES</a></h3> <div class="REFBODY"> <a name="types"></a> <dl> <dt><strong><span class="code">edoc_env() = edoc_env() (see module edoc_lib)</span></strong></dt> <dd> <a name="type-edoc_env"></a> </dd> <dt><strong><span class="code">filename() = filename() (see module file)</span></strong></dt> <dd> <a name="type-filename"></a> </dd> <dt><strong><span class="code">proplist() = property() (see module proplists)</span></strong></dt> <dd> <a name="type-proplist"></a> </dd> <dt><strong><span class="code">syntaxTree() = syntaxTree() (see module erl_syntax)</span></strong></dt> <dd> <a name="type-syntaxTree"></a> </dd> <dt><strong><span class="code">t() = t1()</span></strong></dt> <dd> <a name="type-t"></a> <p>Some docs of t/0; Further docs of t/0. The same thing using -type: -type t() :: t1(). % Some docs of t/0; Further docs of t/0.</p> </dd> </dl> </div> <h3>EXPORTS</h3> <p><a name="file-4"><span class="bold_code">file(File::filename(), Context, Env::edoc_env(), Options::proplist()) -> {ok, Tags} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Context = overview | package</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Tags = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Reason = term()</span><br> </div> </div> <div class="REFBODY"><p><a name="file-4"></a> <p>Reads a text file and returns the list of tags in the file. Any lines of text before the first tag are ignored. <span class="code">Env</span> is an environment created by <span class="bold_code"><a href="edoc_lib.html#get_doc_env-4">edoc_lib:get_doc_env/4</a></span>. Upon error, <span class="code">Reason</span> is an atom returned from the call to <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','kernel','file.html#read_file-1');">file:read_file/1</a></span>.</p> <p>See <span class="bold_code"><a href="#text-4">text/4</a></span> for options.</p> </p></div> <p><a name="header-3"><span class="bold_code">header(File::filename(), Env::edoc_env(), Options::proplist()) -> {ok, Tags} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Tags = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Reason = term()</span><br> </div> </div> <div class="REFBODY"><p><a name="header-3"></a> <p>Similar to <span class="bold_code"><a href="#header-5">header/5</a></span>, but reads the syntax tree and the comments from the specified file. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#header-4">header/4</a></span>, <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>, <span class="bold_code"><a href="edoc.html#read_source-2">edoc:read_source/2</a></span>.</p> </p></div> <p><a name="header-4"><span class="bold_code">header(Forms, File::filename(), Env::edoc_env(), Options::proplist()) -> {ok, Tags} | {error, Reason}</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">Tags = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Reason = term()</span><br> </div> </div> <div class="REFBODY"><p><a name="header-4"></a> <p>Extracts EDoc documentation from commented header file syntax trees. Similar to <span class="bold_code"><a href="#source-5">source/5</a></span>, but ignores any documentation that occurs before a module declaration or a function definition. (Warning messages are printed if content may be ignored.) <span class="code">Env</span> is assumed to already be set up with a suitable module context. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','syntax_tools','erl_recomment.html');">erl_recomment(3)</a></span>, <span class="bold_code"><a href="#header-5">header/5</a></span>.</p> </p></div> <p><a name="header-5"><span class="bold_code">header(Forms, Comments::[comment() (see module edoc)], File::filename(), Env::edoc_env(), Options::proplist()) -> {ok, Tags} | {error, Reason}</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">Tags = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Reason = term()</span><br> </div> </div> <div class="REFBODY"><p><a name="header-5"></a> <p>Similar to <span class="bold_code"><a href="#header-4">header/4</a></span>, but first inserts the given comments in the syntax trees. The syntax trees must contain valid position information. (Cf. <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>.) </p> <p><strong>See also:</strong> <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','syntax_tools','erl_recomment.html');">erl_recomment(3)</a></span>, <span class="bold_code"><a href="#header-3">header/3</a></span>, <span class="bold_code"><a href="#header-4">header/4</a></span>.</p> </p></div> <p><a name="source-3"><span class="bold_code">source(File::filename(), Env::edoc_env(), Options::proplist()) -> {ModuleName, edoc_module() (see module edoc)}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">ModuleName = atom()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">[term()]</span><br> </div> </div> <div class="REFBODY"><p><a name="source-3"></a> <p>Like <span class="bold_code"><a href="#source-5">source/5</a></span>, but reads the syntax tree and the comments from the specified file. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="#source-4">source/4</a></span>, <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>, <span class="bold_code"><a href="edoc.html#read_source-2">edoc:read_source/2</a></span>.</p> </p></div> <p><a name="source-4"><span class="bold_code">source(Forms, File::filename(), Env::edoc_env(), Options::proplist()) -> {ModuleName, edoc_module() (see module edoc)}</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">ModuleName = atom()</span><br> </div> </div> <div class="REFBODY"><p><a name="source-4"></a> <p>Extracts EDoc documentation from commented source code syntax trees. The given <span class="code">Forms</span> must be a single syntax tree of type <span class="code">form_list</span>, or a list of syntax trees representing "program forms" (cf. <span class="bold_code"><a href="edoc.html#read_source-2">edoc:read_source/2</a></span>. <span class="code">Env</span> is an environment created by <span class="bold_code"><a href="edoc_lib.html#get_doc_env-4">edoc_lib:get_doc_env/4</a></span>. The <span class="code">File</span> argument is used for error reporting and output file name generation only.</p> <p>See <span class="bold_code"><a href="edoc.html#get_doc-2">edoc:get_doc/2</a></span> for descriptions of the <span class="code">def</span>, <span class="code">hidden</span>, <span class="code">private</span>, and <span class="code">todo</span> options. </p> <p><strong>See also:</strong> <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','syntax_tools','erl_recomment.html');">erl_recomment(3)</a></span>, <span class="bold_code"><a href="#source-5">source/5</a></span>, <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>, <span class="bold_code"><a href="edoc.html#read_source-2">edoc:read_source/2</a></span>.</p> </p></div> <p><a name="source-5"><span class="bold_code">source(Forms, Comments::[comment() (see module edoc)], File::filename(), Env::edoc_env(), Options::proplist()) -> {ModuleName, edoc_module() (see module edoc)}</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">ModuleName = atom()</span><br> </div> </div> <div class="REFBODY"><p><a name="source-5"></a> <p>Like <span class="bold_code"><a href="#source-4">source/4</a></span>, but first inserts the given comments in the syntax trees. The syntax trees must contain valid position information. (Cf. <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>.) </p> <p><strong>See also:</strong> <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','syntax_tools','erl_recomment.html');">erl_recomment(3)</a></span>, <span class="bold_code"><a href="#source-3">source/3</a></span>, <span class="bold_code"><a href="#source-4">source/4</a></span>, <span class="bold_code"><a href="edoc.html#read_comments-2">edoc:read_comments/2</a></span>, <span class="bold_code"><a href="edoc.html#read_source-2">edoc:read_source/2</a></span>.</p> </p></div> <p><a name="text-4"><span class="bold_code">text(Text::string(), Context, Env::edoc_env(), Options::proplist()) -> Tags</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Context = overview | package</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Tags = [term()]</span><br> </div> </div> <div class="REFBODY"><p><a name="text-4"></a> <p>Returns the list of tags in the text. Any lines of text before the first tag are ignored. <span class="code">Env</span> is an environment created by <span class="bold_code"><a href="edoc_lib.html#get_doc_env-4">edoc_lib:get_doc_env/4</a></span>.</p> <p>See <span class="bold_code"><a href="#source-4">source/4</a></span> for a description of the <span class="code">def</span> option.</p> </p></div> <h3><a name="id69084">See also</a></h3> <div class="REFBODY"><p><span class="bold_code"><a href="edoc.html">edoc</a></span></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>