{smcl}
{cmd:help elabel fcncall}
{hline}

{title:Title}

{p 4 8 2}
{cmd:elabel fcncall} {hline 2} Parse call to {cmd:elabel_fcn_{it:fcn}}


{title:Syntax}

{p 8 12 2}
{cmd:elabel fcncall}
{{cmdab:var:iable}|{cmdab:de:fine}|{cmd:*}} 
[ {it:lmacname1} ] {it:lmacname2} {it:lmacname3}
{cmd::} {it:elabel_fcn_call}


{p 4 10 2}
where {it:lmacname1}, {it:lmacname2}, and {it:lmacname3} are 
local macro names; {it:elabel_fcn_call} is

{p 10 10 2}
{it:subcommand}
{it:namelist} 
{cmd:=} {it:arguments} [ {cmd:,} {it:options} ]

{p 4 10 2}
and local macros are filled with the elements of 
{it:elabel_fcn_call}

{col 10}local macro{col 24}contains
{col 10}{hline 42}
{p2colset 10 24 24 2}{...}
{p2col:{it:lmacname1}}{it:subcommand}{p_end}
{p2col:{it:lmacname2}}{it:namelist}{p_end}
{p2col:{it:lmacname3}}{it:arguments} [ {cmd:,} {it:options} ]{p_end}
{p2colreset}{...}


{p 4 10 2}
If {help version} is set to 16 or higher, the syntax 

{p 8 12 2}
{cmd:elabel fcncall}
{{cmdab:var:iable}|{cmdab:de:fine}|{cmd:*}} 
[ {it:lmacname1} ] {it:lmacname2} {it:lmacname3}

{p 4 10 2}
is allowed and obtains {it:elabel_fcn_call} from what the caller has typed.
 

{title:Description}

{pstd}
{cmd:elabel fcncall} is a convenience tool for parsing calls to 
{cmd:elabel_fcn_{it:fcn}} programs. 

{pstd}
If you are writing a {help elabel_functions##fcnsvar:(pseudo-)function} 
for {helpb elabel_variable:elabel variable}, specify 
{cmd:elabel fcncall variable {it:...}}

{pstd}
If you are writing a {help elabel_functions##fcns:(pseudo-)function} 
for {helpb elabel_define:elabel define}, specify 
{cmd:elabel fcncall define {it:...}}

{pstd}
In the rare cases where you want to write a 
{help elabel_functions##functions:(pseudo-)function} for both 
{helpb elabel_variable:elabel variable} and
{helpb elabel_define:elabel define}, specify 
{cmd:elabel fcncall *} {it:lmacname1 ...}


{title:Remarks}

{pstd}
As explained in 
{help elabel_programming##addfcn:Adding (pseudo-)functions to {bf:elabel}}, 
when you type

{phang2}
{cmd:. elabel define {it:elblnamelist} = {it:fcn}({it:arguments})} 
[ {cmd:,} {{cmd:add}|{cmd:modify}|{cmd:replace}} {cmd:nofix} {it:options} ]
{p_end}

{phang}
{cmd:elabel} internally calls {cmd:elabel_fcn_{it:fcn}} as

{phang2}
{cmd:elabel_fcn_{it:fcn}}
{cmd:define}
{it:lblnamelist} 
{cmd: = {it:arguments}}
[ {cmd:,} {{cmd:add}|{cmd:modify}|{cmd:replace}} {cmd:nofix} {it:options} ]
{p_end}

{phang}
{cmd:elabel fcncall} splits this internal call and returns the 
respective elements in local macros. Typical usage of 
{cmd:elabel fcncall} is

{p 10 12 2}
{cmd:program elabel_fcn_newfcn}
{p_end}
{p 14 16 2}
{cmd:version {ccl stata_version}}
{p_end}
{p 14 16 2}
{cmd:elabel fcncall} {{cmd:define}|{cmd:variable}} {cmd:lblnames 0 : `0'}
{p_end}
{p 14 16 2}
{{cmd:syntax {it:...}}|{cmd:elabel parse {it:...} {cmd:: `0'}}}
{p_end}
{p 14 16 2}
{it:...}
{p_end}
{p 10 12 2}
{cmd:end}

{pstd}
where you omit {it:lmacname1} because you already know that the subcommand
is {cmd:define} or {cmd:variable}.


{title:Author}

{pstd}
Daniel Klein{break}
University of Kassel{break}
klein.daniel.81@gmail.com


{title:Also see}

{psee}
Online: {helpb gettoken}{p_end}

{psee}
if installed: {help elabel}
{p_end}