Files
musrfit/doc/technical/html/structPFunctionGrammar_1_1definition.html
Gitea Actions 8a8eac55b7 Deploy site
2025-12-27 12:57:44 +00:00

578 lines
39 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>musrfit: PFunctionGrammar::definition&lt; ScannerT &gt; Struct Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">musrfit<span id="projectnumber">&#160;1.9.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search',true);
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('structPFunctionGrammar_1_1definition.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structPFunctionGrammar_1_1definition-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PFunctionGrammar::definition&lt; ScannerT &gt; Struct Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Inner template structure defining the grammar rules.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a50e0c525ee129ccf29aec9d646562e5f" id="r_a50e0c525ee129ccf29aec9d646562e5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a50e0c525ee129ccf29aec9d646562e5f">definition</a> (<a class="el" href="structPFunctionGrammar.html">PFunctionGrammar</a> const &amp;)</td></tr>
<tr class="memdesc:a50e0c525ee129ccf29aec9d646562e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that defines all grammar rules. <br /></td></tr>
<tr class="separator:a50e0c525ee129ccf29aec9d646562e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2002f323a98f126f48546593ecd9f638" id="r_a2002f323a98f126f48546593ecd9f638"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a38c30e4067af880ee38ac40318956943">assignmentID</a> &gt; &gt; const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2002f323a98f126f48546593ecd9f638">start</a> () const</td></tr>
<tr class="memdesc:a2002f323a98f126f48546593ecd9f638"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the starting rule for the grammar. <br /></td></tr>
<tr class="separator:a2002f323a98f126f48546593ecd9f638"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a26676aac6b24ff4ab38894159aaaa014" id="r_a26676aac6b24ff4ab38894159aaaa014"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a38c30e4067af880ee38ac40318956943">assignmentID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a26676aac6b24ff4ab38894159aaaa014">assignment</a></td></tr>
<tr class="memdesc:a26676aac6b24ff4ab38894159aaaa014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for assignment: FUN# = expression. <br /></td></tr>
<tr class="separator:a26676aac6b24ff4ab38894159aaaa014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad769d49bc1e8b4a25606cf3853383ba5" id="r_ad769d49bc1e8b4a25606cf3853383ba5"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a75a6c2e2105e91357d84d55b1fc4700c">expressionID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad769d49bc1e8b4a25606cf3853383ba5">expression</a></td></tr>
<tr class="memdesc:ad769d49bc1e8b4a25606cf3853383ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for expression: term { ('+' | '-') term }. <br /></td></tr>
<tr class="separator:ad769d49bc1e8b4a25606cf3853383ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71dd0e20b7461be60aadb8d58409482e" id="r_a71dd0e20b7461be60aadb8d58409482e"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a04ad9c99ef510c880c809cebecd9043d">termID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a71dd0e20b7461be60aadb8d58409482e">term</a></td></tr>
<tr class="memdesc:a71dd0e20b7461be60aadb8d58409482e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for term: factor { ('*' | '/') factor }. <br /></td></tr>
<tr class="separator:a71dd0e20b7461be60aadb8d58409482e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f2320f9cd68d7e2f36b9391e1985114" id="r_a1f2320f9cd68d7e2f36b9391e1985114"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a99e329cd08605fb958302177cc6ab0b8">factorID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1f2320f9cd68d7e2f36b9391e1985114">factor</a></td></tr>
<tr class="memdesc:a1f2320f9cd68d7e2f36b9391e1985114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for factor: operand or parenthesized expression. <br /></td></tr>
<tr class="separator:a1f2320f9cd68d7e2f36b9391e1985114"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8225e346a4d9836f243f27248f0ae10" id="r_ad8225e346a4d9836f243f27248f0ae10"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a4e0b057e7eaed5779b4f8237fe44d27d">functionID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad8225e346a4d9836f243f27248f0ae10">function</a></td></tr>
<tr class="memdesc:ad8225e346a4d9836f243f27248f0ae10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for mathematical functions. <br /></td></tr>
<tr class="separator:ad8225e346a4d9836f243f27248f0ae10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9c949b7c46217af215bcd7f9304269" id="r_a0c9c949b7c46217af215bcd7f9304269"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#ad2a2bdfc2f71f3b1571bc83955bdb5a8">powerID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0c9c949b7c46217af215bcd7f9304269">power</a></td></tr>
<tr class="memdesc:a0c9c949b7c46217af215bcd7f9304269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for power function POW(base, exponent) <br /></td></tr>
<tr class="separator:a0c9c949b7c46217af215bcd7f9304269"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed189930731376e44ecccaa0b72e0625" id="r_aed189930731376e44ecccaa0b72e0625"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a0d55c6a93782ed2937bea215d2bca356">mapID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aed189930731376e44ecccaa0b72e0625">map</a></td></tr>
<tr class="memdesc:aed189930731376e44ecccaa0b72e0625"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for map reference MAP#. <br /></td></tr>
<tr class="separator:aed189930731376e44ecccaa0b72e0625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5e2356be0727837655cf32b5530d1fd" id="r_ad5e2356be0727837655cf32b5530d1fd"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a0fdb4986845cfd80d77076c5039b9d1e">parameterID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad5e2356be0727837655cf32b5530d1fd">parameter</a></td></tr>
<tr class="memdesc:ad5e2356be0727837655cf32b5530d1fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for parameter reference PAR# or -PAR#. <br /></td></tr>
<tr class="separator:ad5e2356be0727837655cf32b5530d1fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40e7c2c2ee6c6a0e8e73d91688001790" id="r_a40e7c2c2ee6c6a0e8e73d91688001790"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#ac99b017445e35ee2578941d72bce62d0">funLabelID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a40e7c2c2ee6c6a0e8e73d91688001790">fun_label</a></td></tr>
<tr class="memdesc:a40e7c2c2ee6c6a0e8e73d91688001790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for function label FUN#. <br /></td></tr>
<tr class="separator:a40e7c2c2ee6c6a0e8e73d91688001790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91b8d3f9a740203c04d89c49a6625d6d" id="r_a91b8d3f9a740203c04d89c49a6625d6d"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a25f943eb7546c324fe1e5ffb3a8a514e">constTempID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a91b8d3f9a740203c04d89c49a6625d6d">const_temp</a></td></tr>
<tr class="memdesc:a91b8d3f9a740203c04d89c49a6625d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for temperature constant T# or -T#. <br /></td></tr>
<tr class="separator:a91b8d3f9a740203c04d89c49a6625d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85182123b2947365ae7861c911649510" id="r_a85182123b2947365ae7861c911649510"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a98e07bd983833240f83bb407c1cae595">constEnergyID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a85182123b2947365ae7861c911649510">const_energy</a></td></tr>
<tr class="memdesc:a85182123b2947365ae7861c911649510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for energy constant EN or -EN. <br /></td></tr>
<tr class="separator:a85182123b2947365ae7861c911649510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8c4bace43a02f160c3bd31573819491" id="r_ae8c4bace43a02f160c3bd31573819491"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#ac2d3072123bc5ff3f0a18b53b6071b79">constFieldID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae8c4bace43a02f160c3bd31573819491">const_field</a></td></tr>
<tr class="memdesc:ae8c4bace43a02f160c3bd31573819491"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for field constant B or -B. <br /></td></tr>
<tr class="separator:ae8c4bace43a02f160c3bd31573819491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ce7069a02b9e1090eb7f2ed0ce2b748" id="r_a7ce7069a02b9e1090eb7f2ed0ce2b748"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a1daa8696a81b0b42f9b73edc1e75b6b2">constGammaMuID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7ce7069a02b9e1090eb7f2ed0ce2b748">const_gamma_mu</a></td></tr>
<tr class="memdesc:a7ce7069a02b9e1090eb7f2ed0ce2b748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for muon gyromagnetic ratio constant. <br /></td></tr>
<tr class="separator:a7ce7069a02b9e1090eb7f2ed0ce2b748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afae997d685966dc9cf7b4a14919f2a9a" id="r_afae997d685966dc9cf7b4a14919f2a9a"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a4cb09c78cb62024c2fbb60df51d53229">constPiID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afae997d685966dc9cf7b4a14919f2a9a">const_pi</a></td></tr>
<tr class="memdesc:afae997d685966dc9cf7b4a14919f2a9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for PI constant. <br /></td></tr>
<tr class="separator:afae997d685966dc9cf7b4a14919f2a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58bc50d29b7d6c9594c5156491534189" id="r_a58bc50d29b7d6c9594c5156491534189"><td class="memItemLeft" align="right" valign="top">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#aab36bee3ff2144b8da0102289353806b">realID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a58bc50d29b7d6c9594c5156491534189">real</a></td></tr>
<tr class="memdesc:a58bc50d29b7d6c9594c5156491534189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule for real number literals. <br /></td></tr>
<tr class="separator:a58bc50d29b7d6c9594c5156491534189"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename ScannerT&gt;<br />
struct PFunctionGrammar::definition&lt; ScannerT &gt;</div><p>Inner template structure defining the grammar rules. </p>
<p>This template structure contains the actual grammar rule definitions using Boost.Spirit syntax. It defines how the parser should recognize and build an abstract syntax tree (AST) for function expressions.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">ScannerT</td><td>Scanner type used by Boost.Spirit for parsing </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00116">116</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a50e0c525ee129ccf29aec9d646562e5f" name="a50e0c525ee129ccf29aec9d646562e5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50e0c525ee129ccf29aec9d646562e5f">&#9670;&#160;</a></span>definition()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::definition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structPFunctionGrammar.html">PFunctionGrammar</a> const &amp;</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that defines all grammar rules. </p>
<p>Sets up the complete grammar hierarchy for parsing function expressions:</p><ul>
<li>Terminals: real numbers, constants (PI, GAMMA_MU, B, EN, T), parameters (PAR), maps (MAP)</li>
<li>Functions: trigonometric (cos, sin, tan), hyperbolic (cosh, sinh, tanh), inverse trigonometric (acos, asin, atan), inverse hyperbolic (acosh, asinh, atanh), logarithmic (log, ln), exponential (exp), square root (sqrt), power (pow)</li>
<li>Operators: addition (+), subtraction (-), multiplication (*), division (/)</li>
<li>Expressions: Hierarchical structure following operator precedence</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">self</td><td>Reference to the enclosing <a class="el" href="structPFunctionGrammar.html" title="EBNF-like grammar definition for parsing function entries in msr-file FUNCTION blocks.">PFunctionGrammar</a> (unused but required by Boost.Spirit) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00132">132</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">References <a class="el" href="PFunctionGrammar_8h_source.html#l00222">assignment</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00232">const_energy</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00233">const_field</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00234">const_gamma_mu</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00235">const_pi</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00231">const_temp</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00223">expression</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00225">factor</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00230">fun_label</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00226">function</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00228">map</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00229">parameter</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00227">power</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00236">real</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00224">term</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2002f323a98f126f48546593ecd9f638" name="a2002f323a98f126f48546593ecd9f638"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2002f323a98f126f48546593ecd9f638">&#9670;&#160;</a></span>start()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">rule&lt; ScannerT, parser_context&lt;&gt;, parser_tag&lt; <a class="el" href="structPFunctionGrammar.html#a38c30e4067af880ee38ac40318956943">assignmentID</a> &gt; &gt; const &amp; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::start </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the starting rule for the grammar. </p>
<p>The parser begins by matching the assignment rule, which represents a complete function definition (e.g., FUN1 = PAR1 * cos(PAR2 * PI)).</p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the assignment rule as the grammar entry point </dd></dl>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00248">248</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">References <a class="el" href="PFunctionGrammar_8h_source.html#l00222">assignment</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a26676aac6b24ff4ab38894159aaaa014" name="a26676aac6b24ff4ab38894159aaaa014"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26676aac6b24ff4ab38894159aaaa014">&#9670;&#160;</a></span>assignment</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a38c30e4067af880ee38ac40318956943">assignmentID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::assignment</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for assignment: FUN# = expression. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00222">222</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00248">start()</a>.</p>
</div>
</div>
<a id="a85182123b2947365ae7861c911649510" name="a85182123b2947365ae7861c911649510"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85182123b2947365ae7861c911649510">&#9670;&#160;</a></span>const_energy</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a98e07bd983833240f83bb407c1cae595">constEnergyID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::const_energy</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for energy constant EN or -EN. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00232">232</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="ae8c4bace43a02f160c3bd31573819491" name="ae8c4bace43a02f160c3bd31573819491"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8c4bace43a02f160c3bd31573819491">&#9670;&#160;</a></span>const_field</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#ac2d3072123bc5ff3f0a18b53b6071b79">constFieldID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::const_field</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for field constant B or -B. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00233">233</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a7ce7069a02b9e1090eb7f2ed0ce2b748" name="a7ce7069a02b9e1090eb7f2ed0ce2b748"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ce7069a02b9e1090eb7f2ed0ce2b748">&#9670;&#160;</a></span>const_gamma_mu</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a1daa8696a81b0b42f9b73edc1e75b6b2">constGammaMuID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::const_gamma_mu</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for muon gyromagnetic ratio constant. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00234">234</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="afae997d685966dc9cf7b4a14919f2a9a" name="afae997d685966dc9cf7b4a14919f2a9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afae997d685966dc9cf7b4a14919f2a9a">&#9670;&#160;</a></span>const_pi</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a4cb09c78cb62024c2fbb60df51d53229">constPiID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::const_pi</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for PI constant. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00235">235</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a91b8d3f9a740203c04d89c49a6625d6d" name="a91b8d3f9a740203c04d89c49a6625d6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91b8d3f9a740203c04d89c49a6625d6d">&#9670;&#160;</a></span>const_temp</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a25f943eb7546c324fe1e5ffb3a8a514e">constTempID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::const_temp</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for temperature constant T# or -T#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00231">231</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="ad769d49bc1e8b4a25606cf3853383ba5" name="ad769d49bc1e8b4a25606cf3853383ba5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad769d49bc1e8b4a25606cf3853383ba5">&#9670;&#160;</a></span>expression</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a75a6c2e2105e91357d84d55b1fc4700c">expressionID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::expression</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for expression: term { ('+' | '-') term }. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00223">223</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a1f2320f9cd68d7e2f36b9391e1985114" name="a1f2320f9cd68d7e2f36b9391e1985114"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f2320f9cd68d7e2f36b9391e1985114">&#9670;&#160;</a></span>factor</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a99e329cd08605fb958302177cc6ab0b8">factorID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::factor</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for factor: operand or parenthesized expression. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00225">225</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a40e7c2c2ee6c6a0e8e73d91688001790" name="a40e7c2c2ee6c6a0e8e73d91688001790"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40e7c2c2ee6c6a0e8e73d91688001790">&#9670;&#160;</a></span>fun_label</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#ac99b017445e35ee2578941d72bce62d0">funLabelID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::fun_label</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for function label FUN#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00230">230</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="ad8225e346a4d9836f243f27248f0ae10" name="ad8225e346a4d9836f243f27248f0ae10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8225e346a4d9836f243f27248f0ae10">&#9670;&#160;</a></span>function</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a4e0b057e7eaed5779b4f8237fe44d27d">functionID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::function</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for mathematical functions. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00226">226</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="aed189930731376e44ecccaa0b72e0625" name="aed189930731376e44ecccaa0b72e0625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed189930731376e44ecccaa0b72e0625">&#9670;&#160;</a></span>map</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a0d55c6a93782ed2937bea215d2bca356">mapID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::map</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for map reference MAP#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00228">228</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="ad5e2356be0727837655cf32b5530d1fd" name="ad5e2356be0727837655cf32b5530d1fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5e2356be0727837655cf32b5530d1fd">&#9670;&#160;</a></span>parameter</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a0fdb4986845cfd80d77076c5039b9d1e">parameterID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::parameter</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for parameter reference PAR# or -PAR#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00229">229</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a0c9c949b7c46217af215bcd7f9304269" name="a0c9c949b7c46217af215bcd7f9304269"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c9c949b7c46217af215bcd7f9304269">&#9670;&#160;</a></span>power</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#ad2a2bdfc2f71f3b1571bc83955bdb5a8">powerID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::power</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for power function POW(base, exponent) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00227">227</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a58bc50d29b7d6c9594c5156491534189" name="a58bc50d29b7d6c9594c5156491534189"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58bc50d29b7d6c9594c5156491534189">&#9670;&#160;</a></span>real</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#aab36bee3ff2144b8da0102289353806b">realID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::real</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for real number literals. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00236">236</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<a id="a71dd0e20b7461be60aadb8d58409482e" name="a71dd0e20b7461be60aadb8d58409482e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71dd0e20b7461be60aadb8d58409482e">&#9670;&#160;</a></span>term</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ScannerT&gt; </div>
<table class="memname">
<tr>
<td class="memname">rule&lt;ScannerT, parser_context&lt;&gt;, parser_tag&lt;<a class="el" href="structPFunctionGrammar.html#a04ad9c99ef510c880c809cebecd9043d">termID</a>&gt; &gt; <a class="el" href="structPFunctionGrammar_1_1definition.html">PFunctionGrammar::definition</a>&lt; ScannerT &gt;::term</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rule for term: factor { ('*' | '/') factor }. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00224">224</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFunctionGrammar_8h_source.html#l00132">definition()</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>/workspace/LMU/musrfit/src/include/<a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="structPFunctionGrammar.html">PFunctionGrammar</a></li><li class="navelem"><a class="el" href="structPFunctionGrammar_1_1definition.html">definition</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>