Files
musrfit/doc/technical/html/namespacemusrfit_1_1grammar.html
T
2026-07-31 18:47:29 +00:00

662 lines
48 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: musrfit::grammar Namespace 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.10.0</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('namespacemusrfit_1_1grammar.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">musrfit::grammar Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Boost.Spirit X3 grammar definitions for parsing function expressions.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmusrfit_1_1grammar_1_1additive__op__.html">additive_op_</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symbol table for additive operators (+ and -). <a href="structmusrfit_1_1grammar_1_1additive__op__.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmusrfit_1_1grammar_1_1const__tok__.html">const_tok_</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symbol table for named constants. <a href="structmusrfit_1_1grammar_1_1const__tok__.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmusrfit_1_1grammar_1_1fun__tok__.html">fun_tok_</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symbol table for mathematical function names. <a href="structmusrfit_1_1grammar_1_1fun__tok__.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html">multiplicative_op_</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symbol table for multiplicative operators (* and /). <a href="structmusrfit_1_1grammar_1_1multiplicative__op__.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a6ec98dadb7ff29a012855d37fb2c052c" id="r_a6ec98dadb7ff29a012855d37fb2c052c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmusrfit_1_1grammar_1_1additive__op__.html">additive_op_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6ec98dadb7ff29a012855d37fb2c052c">additive_op</a></td></tr>
<tr class="memdesc:a6ec98dadb7ff29a012855d37fb2c052c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global instance of additive operator symbol table. <br /></td></tr>
<tr class="separator:a6ec98dadb7ff29a012855d37fb2c052c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a128eaba4dd8ec7d0ef390706612402e7" id="r_a128eaba4dd8ec7d0ef390706612402e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html">multiplicative_op_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a128eaba4dd8ec7d0ef390706612402e7">multiplicative_op</a></td></tr>
<tr class="memdesc:a128eaba4dd8ec7d0ef390706612402e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global instance of multiplicative operator symbol table. <br /></td></tr>
<tr class="separator:a128eaba4dd8ec7d0ef390706612402e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10c2b5e23b1eec8be38882f7bfceab99" id="r_a10c2b5e23b1eec8be38882f7bfceab99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmusrfit_1_1grammar_1_1fun__tok__.html">fun_tok_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a10c2b5e23b1eec8be38882f7bfceab99">fun_tok</a></td></tr>
<tr class="memdesc:a10c2b5e23b1eec8be38882f7bfceab99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global instance of function name symbol table. <br /></td></tr>
<tr class="separator:a10c2b5e23b1eec8be38882f7bfceab99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add09a0dc76b217ce5ef743c5f287f663" id="r_add09a0dc76b217ce5ef743c5f287f663"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmusrfit_1_1grammar_1_1const__tok__.html">const_tok_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#add09a0dc76b217ce5ef743c5f287f663">const_tok</a></td></tr>
<tr class="memdesc:add09a0dc76b217ce5ef743c5f287f663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global instance of constant name symbol table. <br /></td></tr>
<tr class="separator:add09a0dc76b217ce5ef743c5f287f663"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73dc56e5176492df440c5b8aaaa943b4" id="r_a73dc56e5176492df440c5b8aaaa943b4"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class assignment, ast::assignment &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a73dc56e5176492df440c5b8aaaa943b4">assignment</a> = &quot;assignment&quot;</td></tr>
<tr class="memdesc:a73dc56e5176492df440c5b8aaaa943b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Top-level rule: FUN# = expression. <br /></td></tr>
<tr class="separator:a73dc56e5176492df440c5b8aaaa943b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad05a136058c97109382fd1eb12cb754f" id="r_ad05a136058c97109382fd1eb12cb754f"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class expression, ast::expression &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad05a136058c97109382fd1eb12cb754f">expression</a> = &quot;expression&quot;</td></tr>
<tr class="memdesc:ad05a136058c97109382fd1eb12cb754f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expression with addition/subtraction (lowest precedence) <br /></td></tr>
<tr class="separator:ad05a136058c97109382fd1eb12cb754f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a484e24dd215d6a820da00af12a6f716f" id="r_a484e24dd215d6a820da00af12a6f716f"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class term, ast::expression &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a484e24dd215d6a820da00af12a6f716f">term</a> = &quot;term&quot;</td></tr>
<tr class="memdesc:a484e24dd215d6a820da00af12a6f716f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Term with multiplication/division (higher precedence) <br /></td></tr>
<tr class="separator:a484e24dd215d6a820da00af12a6f716f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6867450459ac38a7cc9fe49e631d7f" id="r_abd6867450459ac38a7cc9fe49e631d7f"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class factor, ast::operand &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abd6867450459ac38a7cc9fe49e631d7f">factor</a> = &quot;factor&quot;</td></tr>
<tr class="memdesc:abd6867450459ac38a7cc9fe49e631d7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factor: literal, constant, parameter, function, or parenthesized expression (highest precedence) <br /></td></tr>
<tr class="separator:abd6867450459ac38a7cc9fe49e631d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe5e4701b1f4dab1309a32d898dbb2db" id="r_abe5e4701b1f4dab1309a32d898dbb2db"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class constant, ast::constant &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe5e4701b1f4dab1309a32d898dbb2db">constant</a> = &quot;constant&quot;</td></tr>
<tr class="memdesc:abe5e4701b1f4dab1309a32d898dbb2db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant: PI, GAMMA_MU, B, EN, or T#. <br /></td></tr>
<tr class="separator:abe5e4701b1f4dab1309a32d898dbb2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3868a98f843039e101720b05986ae7f8" id="r_a3868a98f843039e101720b05986ae7f8"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class parameter, ast::parameter &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3868a98f843039e101720b05986ae7f8">parameter</a> = &quot;parameter&quot;</td></tr>
<tr class="memdesc:a3868a98f843039e101720b05986ae7f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameter reference: PAR# or -PAR#. <br /></td></tr>
<tr class="separator:a3868a98f843039e101720b05986ae7f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a724dff9af4b292b88699e1ca713c3715" id="r_a724dff9af4b292b88699e1ca713c3715"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class map_ref, ast::map_ref &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a724dff9af4b292b88699e1ca713c3715">map</a> = &quot;map&quot;</td></tr>
<tr class="memdesc:a724dff9af4b292b88699e1ca713c3715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map reference: MAP# or -MAP#. <br /></td></tr>
<tr class="separator:a724dff9af4b292b88699e1ca713c3715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52474f586db8a544fceb42ef27dacd19" id="r_a52474f586db8a544fceb42ef27dacd19"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class function_call, ast::function_call &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a52474f586db8a544fceb42ef27dacd19">function</a> = &quot;function&quot;</td></tr>
<tr class="memdesc:a52474f586db8a544fceb42ef27dacd19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function call: FUNC(expression) <br /></td></tr>
<tr class="separator:a52474f586db8a544fceb42ef27dacd19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af898d0d1af392a246084d962ab4ad5e2" id="r_af898d0d1af392a246084d962ab4ad5e2"><td class="memItemLeft" align="right" valign="top">x3::rule&lt; class power_call, ast::power_call &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af898d0d1af392a246084d962ab4ad5e2">power</a> = &quot;power&quot;</td></tr>
<tr class="memdesc:af898d0d1af392a246084d962ab4ad5e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Power operation: POW(base, exponent) <br /></td></tr>
<tr class="separator:af898d0d1af392a246084d962ab4ad5e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a004a9e720e323c4d9fe84f47860012ca" id="r_a004a9e720e323c4d9fe84f47860012ca"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a004a9e720e323c4d9fe84f47860012ca">assignment_def</a></td></tr>
<tr class="memdesc:a004a9e720e323c4d9fe84f47860012ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment rule: FUN# = expression. <br /></td></tr>
<tr class="separator:a004a9e720e323c4d9fe84f47860012ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3667a52188ff1e1450bdd6fba6ba13d8" id="r_a3667a52188ff1e1450bdd6fba6ba13d8"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3667a52188ff1e1450bdd6fba6ba13d8">expression_def</a></td></tr>
<tr class="memdesc:a3667a52188ff1e1450bdd6fba6ba13d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expression rule: term ((+|-) term)*. <br /></td></tr>
<tr class="separator:a3667a52188ff1e1450bdd6fba6ba13d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a966d453a3bc18914cbc5c3ea2bc2eaa8" id="r_a966d453a3bc18914cbc5c3ea2bc2eaa8"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a966d453a3bc18914cbc5c3ea2bc2eaa8">term_def</a></td></tr>
<tr class="memdesc:a966d453a3bc18914cbc5c3ea2bc2eaa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Term rule: factor ((*|/) factor)*. <br /></td></tr>
<tr class="separator:a966d453a3bc18914cbc5c3ea2bc2eaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fb19d90f97b08c2567ba3b0d0e466ab" id="r_a5fb19d90f97b08c2567ba3b0d0e466ab"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5fb19d90f97b08c2567ba3b0d0e466ab">factor_def</a></td></tr>
<tr class="memdesc:a5fb19d90f97b08c2567ba3b0d0e466ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factor rule: the atomic elements of expressions. <br /></td></tr>
<tr class="separator:a5fb19d90f97b08c2567ba3b0d0e466ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a669d35f59b1f04db285cb21bd96e95c3" id="r_a669d35f59b1f04db285cb21bd96e95c3"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a669d35f59b1f04db285cb21bd96e95c3">constant_def</a></td></tr>
<tr class="memdesc:a669d35f59b1f04db285cb21bd96e95c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant rule: PI | GAMMA_MU | B | -B | EN | -EN | T# | -T#. <br /></td></tr>
<tr class="separator:a669d35f59b1f04db285cb21bd96e95c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99570603e86376d6e731f13838497963" id="r_a99570603e86376d6e731f13838497963"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a99570603e86376d6e731f13838497963">parameter_def</a></td></tr>
<tr class="memdesc:a99570603e86376d6e731f13838497963"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameter rule: PAR# | -PAR#. <br /></td></tr>
<tr class="separator:a99570603e86376d6e731f13838497963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2a4a9f75dc4c630b806bf7b83b38d88" id="r_ab2a4a9f75dc4c630b806bf7b83b38d88"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab2a4a9f75dc4c630b806bf7b83b38d88">map_def</a></td></tr>
<tr class="memdesc:ab2a4a9f75dc4c630b806bf7b83b38d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map rule: MAP# | -MAP#. <br /></td></tr>
<tr class="separator:ab2a4a9f75dc4c630b806bf7b83b38d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c7af99c7b0d207b27fa6d8e00e8d387" id="r_a5c7af99c7b0d207b27fa6d8e00e8d387"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5c7af99c7b0d207b27fa6d8e00e8d387">function_def</a></td></tr>
<tr class="memdesc:a5c7af99c7b0d207b27fa6d8e00e8d387"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function rule: FUNC(expression) <br /></td></tr>
<tr class="separator:a5c7af99c7b0d207b27fa6d8e00e8d387"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c8cc1dfd8568f925b5c5fed59219d4" id="r_ac6c8cc1dfd8568f925b5c5fed59219d4"><td class="memItemLeft" align="right" valign="top">auto const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac6c8cc1dfd8568f925b5c5fed59219d4">power_def</a></td></tr>
<tr class="memdesc:ac6c8cc1dfd8568f925b5c5fed59219d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Power rule: POW(base, exponent) <br /></td></tr>
<tr class="separator:ac6c8cc1dfd8568f925b5c5fed59219d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Boost.Spirit X3 grammar definitions for parsing function expressions. </p>
<p>This namespace contains the complete grammar for parsing msr-file FUNCTION block entries. The grammar supports arithmetic expressions with operator precedence, mathematical functions, constants, and parameter/map references.</p>
<p>The grammar is header-only for maximum portability and uses X3's modern attribute propagation system to automatically build the AST during parsing. </p>
</div><h2 class="groupheader">Variable Documentation</h2>
<a id="a6ec98dadb7ff29a012855d37fb2c052c" name="a6ec98dadb7ff29a012855d37fb2c052c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ec98dadb7ff29a012855d37fb2c052c">&#9670;&#160;</a></span>additive_op</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmusrfit_1_1grammar_1_1additive__op__.html">additive_op_</a> musrfit::grammar::additive_op</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>Global instance of additive operator symbol table. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00084">84</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a73dc56e5176492df440c5b8aaaa943b4" name="a73dc56e5176492df440c5b8aaaa943b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73dc56e5176492df440c5b8aaaa943b4">&#9670;&#160;</a></span>assignment</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class assignment, ast::assignment&gt; const musrfit::grammar::assignment = &quot;assignment&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Top-level rule: FUN# = expression. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00156">156</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#l00322">musrfit::function_grammar()</a>.</p>
</div>
</div>
<a id="a004a9e720e323c4d9fe84f47860012ca" name="a004a9e720e323c4d9fe84f47860012ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a004a9e720e323c4d9fe84f47860012ca">&#9670;&#160;</a></span>assignment_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::assignment_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> lit(<span class="stringliteral">&quot;FUN&quot;</span>) &gt;&gt; int_ &gt;&gt; <span class="charliteral">&#39;=&#39;</span> &gt;&gt; <a class="code hl_variable" href="#ad05a136058c97109382fd1eb12cb754f">expression</a></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_ad05a136058c97109382fd1eb12cb754f"><div class="ttname"><a href="#ad05a136058c97109382fd1eb12cb754f">musrfit::grammar::expression</a></div><div class="ttdeci">x3::rule&lt; class expression, ast::expression &gt; const expression</div><div class="ttdoc">Expression with addition/subtraction (lowest precedence)</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00159">PFunctionGrammar.h:159</a></div></div>
</div><!-- fragment -->
<p>Assignment rule: FUN# = expression. </p>
<p>Parses a function assignment statement, extracting the function number and the expression to evaluate. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00192">192</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="add09a0dc76b217ce5ef743c5f287f663" name="add09a0dc76b217ce5ef743c5f287f663"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add09a0dc76b217ce5ef743c5f287f663">&#9670;&#160;</a></span>const_tok</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmusrfit_1_1grammar_1_1const__tok__.html">const_tok_</a> musrfit::grammar::const_tok</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>Global instance of constant name symbol table. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00149">149</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="abe5e4701b1f4dab1309a32d898dbb2db" name="abe5e4701b1f4dab1309a32d898dbb2db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe5e4701b1f4dab1309a32d898dbb2db">&#9670;&#160;</a></span>constant</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class constant, ast::constant&gt; const musrfit::grammar::constant = &quot;constant&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Constant: PI, GAMMA_MU, B, EN, or T#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00168">168</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a669d35f59b1f04db285cb21bd96e95c3" name="a669d35f59b1f04db285cb21bd96e95c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a669d35f59b1f04db285cb21bd96e95c3">&#9670;&#160;</a></span>constant_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::constant_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> (<a class="code hl_variable" href="#add09a0dc76b217ce5ef743c5f287f663">const_tok</a> &gt;&gt; attr(<span class="keyword">false</span>) &gt;&gt; attr(0))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;B&quot;</span>) &gt;&gt; attr(ast::constant::field) &gt;&gt; attr(<span class="keyword">false</span>) &gt;&gt; attr(0))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;-B&quot;</span>) &gt;&gt; attr(ast::constant::field) &gt;&gt; attr(<span class="keyword">true</span>) &gt;&gt; attr(0))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;EN&quot;</span>) &gt;&gt; attr(ast::constant::energy) &gt;&gt; attr(<span class="keyword">false</span>) &gt;&gt; attr(0))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;-EN&quot;</span>) &gt;&gt; attr(ast::constant::energy) &gt;&gt; attr(<span class="keyword">true</span>) &gt;&gt; attr(0))</div>
<div class="line"> | (lit(<span class="charliteral">&#39;T&#39;</span>) &gt;&gt; attr(ast::constant::temp) &gt;&gt; attr(<span class="keyword">false</span>) &gt;&gt; int_)</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;-T&quot;</span>) &gt;&gt; attr(ast::constant::temp) &gt;&gt; attr(<span class="keyword">true</span>) &gt;&gt; int_)</div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_add09a0dc76b217ce5ef743c5f287f663"><div class="ttname"><a href="#add09a0dc76b217ce5ef743c5f287f663">musrfit::grammar::const_tok</a></div><div class="ttdeci">const_tok_ const_tok</div><div class="ttdoc">Global instance of constant name symbol table.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00149">PFunctionGrammar.h:149</a></div></div>
</div><!-- fragment -->
<p>Constant rule: PI | GAMMA_MU | B | -B | EN | -EN | T# | -T#. </p>
<p>Parses symbolic constants, optionally with negation. Temperature constants include an index number (T0, T1, T2, etc.). </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>
</div>
</div>
<a id="ad05a136058c97109382fd1eb12cb754f" name="ad05a136058c97109382fd1eb12cb754f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad05a136058c97109382fd1eb12cb754f">&#9670;&#160;</a></span>expression</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class expression, ast::expression&gt; const musrfit::grammar::expression = &quot;expression&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Expression with addition/subtraction (lowest precedence) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00159">159</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a3667a52188ff1e1450bdd6fba6ba13d8" name="a3667a52188ff1e1450bdd6fba6ba13d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3667a52188ff1e1450bdd6fba6ba13d8">&#9670;&#160;</a></span>expression_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::expression_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_variable" href="#a484e24dd215d6a820da00af12a6f716f">term</a> &gt;&gt; *(<a class="code hl_variable" href="#a6ec98dadb7ff29a012855d37fb2c052c">additive_op</a> &gt;&gt; <a class="code hl_variable" href="#a484e24dd215d6a820da00af12a6f716f">term</a>)</div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a484e24dd215d6a820da00af12a6f716f"><div class="ttname"><a href="#a484e24dd215d6a820da00af12a6f716f">musrfit::grammar::term</a></div><div class="ttdeci">x3::rule&lt; class term, ast::expression &gt; const term</div><div class="ttdoc">Term with multiplication/division (higher precedence)</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00162">PFunctionGrammar.h:162</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a6ec98dadb7ff29a012855d37fb2c052c"><div class="ttname"><a href="#a6ec98dadb7ff29a012855d37fb2c052c">musrfit::grammar::additive_op</a></div><div class="ttdeci">additive_op_ additive_op</div><div class="ttdoc">Global instance of additive operator symbol table.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00084">PFunctionGrammar.h:84</a></div></div>
</div><!-- fragment -->
<p>Expression rule: term ((+|-) term)*. </p>
<p>Handles addition and subtraction with left-associative evaluation. Lower precedence than multiplication/division. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00201">201</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="abd6867450459ac38a7cc9fe49e631d7f" name="abd6867450459ac38a7cc9fe49e631d7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd6867450459ac38a7cc9fe49e631d7f">&#9670;&#160;</a></span>factor</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class factor, ast::operand&gt; const musrfit::grammar::factor = &quot;factor&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Factor: literal, constant, parameter, function, or parenthesized expression (highest precedence) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00165">165</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a5fb19d90f97b08c2567ba3b0d0e466ab" name="a5fb19d90f97b08c2567ba3b0d0e466ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fb19d90f97b08c2567ba3b0d0e466ab">&#9670;&#160;</a></span>factor_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::factor_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> double_</div>
<div class="line"> | <a class="code hl_variable" href="#abe5e4701b1f4dab1309a32d898dbb2db">constant</a></div>
<div class="line"> | <a class="code hl_variable" href="#a3868a98f843039e101720b05986ae7f8">parameter</a></div>
<div class="line"> | <a class="code hl_variable" href="#a724dff9af4b292b88699e1ca713c3715">map</a></div>
<div class="line"> | <a class="code hl_variable" href="#a52474f586db8a544fceb42ef27dacd19">function</a></div>
<div class="line"> | <a class="code hl_variable" href="#af898d0d1af392a246084d962ab4ad5e2">power</a></div>
<div class="line"> | (<span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span>)</div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a3868a98f843039e101720b05986ae7f8"><div class="ttname"><a href="#a3868a98f843039e101720b05986ae7f8">musrfit::grammar::parameter</a></div><div class="ttdeci">x3::rule&lt; class parameter, ast::parameter &gt; const parameter</div><div class="ttdoc">Parameter reference: PAR# or -PAR#.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00171">PFunctionGrammar.h:171</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a52474f586db8a544fceb42ef27dacd19"><div class="ttname"><a href="#a52474f586db8a544fceb42ef27dacd19">musrfit::grammar::function</a></div><div class="ttdeci">x3::rule&lt; class function_call, ast::function_call &gt; const function</div><div class="ttdoc">Function call: FUNC(expression)</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00177">PFunctionGrammar.h:177</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a724dff9af4b292b88699e1ca713c3715"><div class="ttname"><a href="#a724dff9af4b292b88699e1ca713c3715">musrfit::grammar::map</a></div><div class="ttdeci">x3::rule&lt; class map_ref, ast::map_ref &gt; const map</div><div class="ttdoc">Map reference: MAP# or -MAP#.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00174">PFunctionGrammar.h:174</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_abe5e4701b1f4dab1309a32d898dbb2db"><div class="ttname"><a href="#abe5e4701b1f4dab1309a32d898dbb2db">musrfit::grammar::constant</a></div><div class="ttdeci">x3::rule&lt; class constant, ast::constant &gt; const constant</div><div class="ttdoc">Constant: PI, GAMMA_MU, B, EN, or T#.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00168">PFunctionGrammar.h:168</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_af898d0d1af392a246084d962ab4ad5e2"><div class="ttname"><a href="#af898d0d1af392a246084d962ab4ad5e2">musrfit::grammar::power</a></div><div class="ttdeci">x3::rule&lt; class power_call, ast::power_call &gt; const power</div><div class="ttdoc">Power operation: POW(base, exponent)</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00180">PFunctionGrammar.h:180</a></div></div>
</div><!-- fragment -->
<p>Factor rule: the atomic elements of expressions. </p>
<p>Matches numeric literals, constants, parameters, maps, function calls, power operations, or parenthesized sub-expressions. Parentheses allow overriding operator precedence. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00220">220</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a10c2b5e23b1eec8be38882f7bfceab99" name="a10c2b5e23b1eec8be38882f7bfceab99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10c2b5e23b1eec8be38882f7bfceab99">&#9670;&#160;</a></span>fun_tok</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmusrfit_1_1grammar_1_1fun__tok__.html">fun_tok_</a> musrfit::grammar::fun_tok</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>Global instance of function name symbol table. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00133">133</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a52474f586db8a544fceb42ef27dacd19" name="a52474f586db8a544fceb42ef27dacd19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52474f586db8a544fceb42ef27dacd19">&#9670;&#160;</a></span>function</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class function_call, ast::function_call&gt; const musrfit::grammar::function = &quot;function&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Function call: FUNC(expression) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00177">177</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a5c7af99c7b0d207b27fa6d8e00e8d387" name="a5c7af99c7b0d207b27fa6d8e00e8d387"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c7af99c7b0d207b27fa6d8e00e8d387">&#9670;&#160;</a></span>function_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::function_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_variable" href="#a10c2b5e23b1eec8be38882f7bfceab99">fun_tok</a> &gt;&gt; <span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a10c2b5e23b1eec8be38882f7bfceab99"><div class="ttname"><a href="#a10c2b5e23b1eec8be38882f7bfceab99">musrfit::grammar::fun_tok</a></div><div class="ttdeci">fun_tok_ fun_tok</div><div class="ttdoc">Global instance of function name symbol table.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00133">PFunctionGrammar.h:133</a></div></div>
</div><!-- fragment -->
<p>Function rule: FUNC(expression) </p>
<p>Parses mathematical function calls. The function name is matched by fun_tok and the argument is a full expression. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00271">271</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a724dff9af4b292b88699e1ca713c3715" name="a724dff9af4b292b88699e1ca713c3715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a724dff9af4b292b88699e1ca713c3715">&#9670;&#160;</a></span>map</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class map_ref, ast::map_ref&gt; const musrfit::grammar::map = &quot;map&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Map reference: MAP# or -MAP#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00174">174</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="ab2a4a9f75dc4c630b806bf7b83b38d88" name="ab2a4a9f75dc4c630b806bf7b83b38d88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2a4a9f75dc4c630b806bf7b83b38d88">&#9670;&#160;</a></span>map_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::map_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> (lexeme[lit(<span class="stringliteral">&quot;-MAP&quot;</span>) &gt;&gt; int_] &gt;&gt; attr(<span class="keyword">true</span>))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;MAP&quot;</span>) &gt;&gt; int_ &gt;&gt; attr(<span class="keyword">false</span>))</div>
</div><!-- fragment -->
<p>Map rule: MAP# | -MAP#. </p>
<p>Parses map references for indirect parameter lookup with 1-based indexing. The lexeme directive for -MAP# ensures the minus sign is part of the token. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00261">261</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a128eaba4dd8ec7d0ef390706612402e7" name="a128eaba4dd8ec7d0ef390706612402e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a128eaba4dd8ec7d0ef390706612402e7">&#9670;&#160;</a></span>multiplicative_op</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html">multiplicative_op_</a> musrfit::grammar::multiplicative_op</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>Global instance of multiplicative operator symbol table. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00100">100</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a3868a98f843039e101720b05986ae7f8" name="a3868a98f843039e101720b05986ae7f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3868a98f843039e101720b05986ae7f8">&#9670;&#160;</a></span>parameter</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class parameter, ast::parameter&gt; const musrfit::grammar::parameter = &quot;parameter&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Parameter reference: PAR# or -PAR#. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00171">171</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a99570603e86376d6e731f13838497963" name="a99570603e86376d6e731f13838497963"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99570603e86376d6e731f13838497963">&#9670;&#160;</a></span>parameter_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::parameter_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> (lexeme[lit(<span class="stringliteral">&quot;-PAR&quot;</span>) &gt;&gt; int_] &gt;&gt; attr(<span class="keyword">true</span>))</div>
<div class="line"> | (lit(<span class="stringliteral">&quot;PAR&quot;</span>) &gt;&gt; int_ &gt;&gt; attr(<span class="keyword">false</span>))</div>
</div><!-- fragment -->
<p>Parameter rule: PAR# | -PAR#. </p>
<p>Parses parameter references with 1-based indexing. The lexeme directive for -PAR# ensures the minus sign is treated as part of the token, not as a separate operator. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00251">251</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="af898d0d1af392a246084d962ab4ad5e2" name="af898d0d1af392a246084d962ab4ad5e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af898d0d1af392a246084d962ab4ad5e2">&#9670;&#160;</a></span>power</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class power_call, ast::power_call&gt; const musrfit::grammar::power = &quot;power&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Power operation: POW(base, exponent) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00180">180</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="ac6c8cc1dfd8568f925b5c5fed59219d4" name="ac6c8cc1dfd8568f925b5c5fed59219d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6c8cc1dfd8568f925b5c5fed59219d4">&#9670;&#160;</a></span>power_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::power_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> lit(<span class="stringliteral">&quot;POW&quot;</span>) &gt;&gt; <span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;,&#39;</span> &gt;&gt; <a class="code hl_variable" href="#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span></div>
</div><!-- fragment -->
<p>Power rule: POW(base, exponent) </p>
<p>Parses power operations with two expression arguments separated by comma. Both base and exponent can be arbitrary expressions. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00280">280</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a484e24dd215d6a820da00af12a6f716f" name="a484e24dd215d6a820da00af12a6f716f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a484e24dd215d6a820da00af12a6f716f">&#9670;&#160;</a></span>term</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">x3::rule&lt;class term, ast::expression&gt; const musrfit::grammar::term = &quot;term&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Term with multiplication/division (higher precedence) </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00162">162</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
<a id="a966d453a3bc18914cbc5c3ea2bc2eaa8" name="a966d453a3bc18914cbc5c3ea2bc2eaa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a966d453a3bc18914cbc5c3ea2bc2eaa8">&#9670;&#160;</a></span>term_def</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto const musrfit::grammar::term_def</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_variable" href="#abd6867450459ac38a7cc9fe49e631d7f">factor</a> &gt;&gt; *(<a class="code hl_variable" href="#a128eaba4dd8ec7d0ef390706612402e7">multiplicative_op</a> &gt;&gt; <a class="code hl_variable" href="#abd6867450459ac38a7cc9fe49e631d7f">factor</a>)</div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a128eaba4dd8ec7d0ef390706612402e7"><div class="ttname"><a href="#a128eaba4dd8ec7d0ef390706612402e7">musrfit::grammar::multiplicative_op</a></div><div class="ttdeci">multiplicative_op_ multiplicative_op</div><div class="ttdoc">Global instance of multiplicative operator symbol table.</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00100">PFunctionGrammar.h:100</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_abd6867450459ac38a7cc9fe49e631d7f"><div class="ttname"><a href="#abd6867450459ac38a7cc9fe49e631d7f">musrfit::grammar::factor</a></div><div class="ttdeci">x3::rule&lt; class factor, ast::operand &gt; const factor</div><div class="ttdoc">Factor: literal, constant, parameter, function, or parenthesized expression (highest precedence)</div><div class="ttdef"><b>Definition</b> <a href="PFunctionGrammar_8h_source.html#l00165">PFunctionGrammar.h:165</a></div></div>
</div><!-- fragment -->
<p>Term rule: factor ((*|/) factor)*. </p>
<p>Handles multiplication and division with left-associative evaluation. Higher precedence than addition/subtraction. </p>
<p class="definition">Definition at line <a class="el" href="PFunctionGrammar_8h_source.html#l00210">210</a> of file <a class="el" href="PFunctionGrammar_8h_source.html">PFunctionGrammar.h</a>.</p>
</div>
</div>
</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="namespacemusrfit.html">musrfit</a></li><li class="navelem"><a class="el" href="namespacemusrfit_1_1grammar.html">grammar</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>