Files
musrfit/PFunctionGrammar_8h_source.html
Gitea Actions 7039af84d2 Deploy site
2026-03-15 08:59:40 +00:00

331 lines
56 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: /workspace/LMU/musrfit/src/include/PFunctionGrammar.h Source File</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('PFunctionGrammar_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PFunctionGrammar.h</div></div>
</div><!--header-->
<div class="contents">
<a href="PFunctionGrammar_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"></span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> PFunctionGrammar.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> Author: Andreas Suter</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> e-mail: andreas.suter@psi.ch</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"></span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> Header-only grammar for parsing function entries in msr-file FUNCTION blocks.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> This version uses Boost.Spirit X3 in header-only mode for maximum compatibility.</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"></span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * Copyright (C) 2007-2026 by Andreas Suter *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * andreas.suter@psi.ch *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * This program is free software; you can redistribute it and/or modify *</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * it under the terms of the GNU General Public License as published by *</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * (at your option) any later version. *</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * This program is distributed in the hope that it will be useful, *</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * GNU General Public License for more details. *</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * You should have received a copy of the GNU General Public License *</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * along with this program; if not, write to the *</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * Free Software Foundation, Inc., *</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> ***************************************************************************/</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifndef _PFUNCTIONGRAMMAR_H_</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#define _PFUNCTIONGRAMMAR_H_</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">// Check Boost version - require 1.61+ for Spirit X3</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include &lt;boost/version.hpp&gt;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#if BOOST_VERSION &lt; 106100</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"># error &quot;Boost version 1.61.0 or higher is required for Spirit X3. Please upgrade Boost.&quot;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#include &quot;PFunctionAst.h&quot;</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#include &lt;boost/spirit/home/x3.hpp&gt;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">namespace </span>x3 = boost::spirit::x3;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemusrfit.html">musrfit</a> { <span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemusrfit_1_1grammar.html">grammar</a></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">using </span>x3::int_;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">using </span>x3::double_;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">using </span>x3::lit;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">using </span>x3::lexeme;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">using </span>x3::attr;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Symbol tables - using inline to avoid multiple definition errors</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span></div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="};">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1additive__op__.html"> 76</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmusrfit_1_1grammar_1_1additive__op__.html#a193edf7ae72c25a48b83719326b4173d">additive_op_</a> : x3::symbols&lt;ast::optoken&gt;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> {</div>
<div class="foldopen" id="foldopen00078" data-start="{" data-end="}">
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1additive__op__.html#a193edf7ae72c25a48b83719326b4173d"> 78</a></span> <a class="code hl_function" href="structmusrfit_1_1grammar_1_1additive__op__.html#a193edf7ae72c25a48b83719326b4173d">additive_op_</a>()</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> add(<span class="stringliteral">&quot;+&quot;</span>, ast::op_plus)(<span class="stringliteral">&quot;-&quot;</span>, ast::op_minus);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> };</div>
</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a6ec98dadb7ff29a012855d37fb2c052c"> 84</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structmusrfit_1_1grammar_1_1additive__op__.html">additive_op_</a> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a6ec98dadb7ff29a012855d37fb2c052c">additive_op</a>; </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span></div>
<div class="foldopen" id="foldopen00092" data-start="{" data-end="};">
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html"> 92</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html#ac3a79c260d472d62b326f368c305bc10">multiplicative_op_</a> : x3::symbols&lt;ast::optoken&gt;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> {</div>
<div class="foldopen" id="foldopen00094" data-start="{" data-end="}">
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html#ac3a79c260d472d62b326f368c305bc10"> 94</a></span> <a class="code hl_function" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html#ac3a79c260d472d62b326f368c305bc10">multiplicative_op_</a>()</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> add(<span class="stringliteral">&quot;*&quot;</span>, ast::op_times)(<span class="stringliteral">&quot;/&quot;</span>, ast::op_divide);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> };</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a128eaba4dd8ec7d0ef390706612402e7"> 100</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structmusrfit_1_1grammar_1_1multiplicative__op__.html">multiplicative_op_</a> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a128eaba4dd8ec7d0ef390706612402e7">multiplicative_op</a>; </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span></div>
<div class="foldopen" id="foldopen00109" data-start="{" data-end="};">
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1fun__tok__.html"> 109</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmusrfit_1_1grammar_1_1fun__tok__.html#a18453afbfdd1f946cdb24b46ba811ddd">fun_tok_</a> : x3::symbols&lt;ast::funid&gt;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> {</div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="}">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1fun__tok__.html#a18453afbfdd1f946cdb24b46ba811ddd"> 111</a></span> <a class="code hl_function" href="structmusrfit_1_1grammar_1_1fun__tok__.html#a18453afbfdd1f946cdb24b46ba811ddd">fun_tok_</a>()</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> add</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> (<span class="stringliteral">&quot;COS&quot;</span>, ast::fun_cos)</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> (<span class="stringliteral">&quot;SIN&quot;</span>, ast::fun_sin)</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> (<span class="stringliteral">&quot;TAN&quot;</span>, ast::fun_tan)</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> (<span class="stringliteral">&quot;COSH&quot;</span>, ast::fun_cosh)</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> (<span class="stringliteral">&quot;SINH&quot;</span>, ast::fun_sinh)</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> (<span class="stringliteral">&quot;TANH&quot;</span>, ast::fun_tanh)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> (<span class="stringliteral">&quot;ACOS&quot;</span>, ast::fun_acos)</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> (<span class="stringliteral">&quot;ASIN&quot;</span>, ast::fun_asin)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> (<span class="stringliteral">&quot;ATAN&quot;</span>, ast::fun_atan)</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> (<span class="stringliteral">&quot;ACOSH&quot;</span>, ast::fun_acosh)</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> (<span class="stringliteral">&quot;ASINH&quot;</span>, ast::fun_asinh)</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> (<span class="stringliteral">&quot;ATANH&quot;</span>, ast::fun_atanh)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> (<span class="stringliteral">&quot;LOG&quot;</span>, ast::fun_log)</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> (<span class="stringliteral">&quot;LN&quot;</span>, ast::fun_ln)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> (<span class="stringliteral">&quot;EXP&quot;</span>, ast::fun_exp)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> (<span class="stringliteral">&quot;SQRT&quot;</span>, ast::fun_sqrt);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div>
</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> };</div>
</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a10c2b5e23b1eec8be38882f7bfceab99"> 133</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structmusrfit_1_1grammar_1_1fun__tok__.html">fun_tok_</a> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a10c2b5e23b1eec8be38882f7bfceab99">fun_tok</a>; </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span></div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="};">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1const__tok__.html"> 141</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmusrfit_1_1grammar_1_1const__tok__.html#a425254cee56e18889037b0dc1bcf4bd3">const_tok_</a> : x3::symbols&lt;ast::constant::type&gt;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="foldopen" id="foldopen00143" data-start="{" data-end="}">
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="structmusrfit_1_1grammar_1_1const__tok__.html#a425254cee56e18889037b0dc1bcf4bd3"> 143</a></span> <a class="code hl_function" href="structmusrfit_1_1grammar_1_1const__tok__.html#a425254cee56e18889037b0dc1bcf4bd3">const_tok_</a>()</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> add(<span class="stringliteral">&quot;PI&quot;</span>, ast::constant::pi)(<span class="stringliteral">&quot;GAMMA_MU&quot;</span>, ast::constant::gamma_mu);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> };</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#add09a0dc76b217ce5ef743c5f287f663"> 149</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structmusrfit_1_1grammar_1_1const__tok__.html">const_tok_</a> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#add09a0dc76b217ce5ef743c5f287f663">const_tok</a>; </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// Grammar Rules - Forward Declarations</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a73dc56e5176492df440c5b8aaaa943b4"> 156</a></span> x3::rule&lt;class assignment, ast::assignment&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a73dc56e5176492df440c5b8aaaa943b4">assignment</a> = <span class="stringliteral">&quot;assignment&quot;</span>;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f"> 159</a></span> x3::rule&lt;class expression, ast::expression&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a> = <span class="stringliteral">&quot;expression&quot;</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a484e24dd215d6a820da00af12a6f716f"> 162</a></span> x3::rule&lt;class term, ast::expression&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a484e24dd215d6a820da00af12a6f716f">term</a> = <span class="stringliteral">&quot;term&quot;</span>;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#abd6867450459ac38a7cc9fe49e631d7f"> 165</a></span> x3::rule&lt;class factor, ast::operand&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abd6867450459ac38a7cc9fe49e631d7f">factor</a> = <span class="stringliteral">&quot;factor&quot;</span>;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#abe5e4701b1f4dab1309a32d898dbb2db"> 168</a></span> x3::rule&lt;class constant, ast::constant&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abe5e4701b1f4dab1309a32d898dbb2db">constant</a> = <span class="stringliteral">&quot;constant&quot;</span>;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a3868a98f843039e101720b05986ae7f8"> 171</a></span> x3::rule&lt;class parameter, ast::parameter&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a3868a98f843039e101720b05986ae7f8">parameter</a> = <span class="stringliteral">&quot;parameter&quot;</span>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a724dff9af4b292b88699e1ca713c3715"> 174</a></span> x3::rule&lt;class map_ref, ast::map_ref&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a724dff9af4b292b88699e1ca713c3715">map</a> = <span class="stringliteral">&quot;map&quot;</span>;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a52474f586db8a544fceb42ef27dacd19"> 177</a></span> x3::rule&lt;class function_call, ast::function_call&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a52474f586db8a544fceb42ef27dacd19">function</a> = <span class="stringliteral">&quot;function&quot;</span>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#af898d0d1af392a246084d962ab4ad5e2"> 180</a></span> x3::rule&lt;class power_call, ast::power_call&gt; <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#af898d0d1af392a246084d962ab4ad5e2">power</a> = <span class="stringliteral">&quot;power&quot;</span>;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// Grammar Rule Definitions</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a004a9e720e323c4d9fe84f47860012ca"> 192</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a004a9e720e323c4d9fe84f47860012ca">assignment_def</a> =</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> 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="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a>;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a3667a52188ff1e1450bdd6fba6ba13d8"> 201</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a3667a52188ff1e1450bdd6fba6ba13d8">expression_def</a> =</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a484e24dd215d6a820da00af12a6f716f">term</a> &gt;&gt; *(<a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a6ec98dadb7ff29a012855d37fb2c052c">additive_op</a> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a484e24dd215d6a820da00af12a6f716f">term</a>);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a966d453a3bc18914cbc5c3ea2bc2eaa8"> 210</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a966d453a3bc18914cbc5c3ea2bc2eaa8">term_def</a> =</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abd6867450459ac38a7cc9fe49e631d7f">factor</a> &gt;&gt; *(<a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a128eaba4dd8ec7d0ef390706612402e7">multiplicative_op</a> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abd6867450459ac38a7cc9fe49e631d7f">factor</a>);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a5fb19d90f97b08c2567ba3b0d0e466ab"> 220</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a5fb19d90f97b08c2567ba3b0d0e466ab">factor_def</a> =</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> double_</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> | <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abe5e4701b1f4dab1309a32d898dbb2db">constant</a></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> | <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a3868a98f843039e101720b05986ae7f8">parameter</a></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> | <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a724dff9af4b292b88699e1ca713c3715">map</a></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> | <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a52474f586db8a544fceb42ef27dacd19">function</a></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> | <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#af898d0d1af392a246084d962ab4ad5e2">power</a></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> | (<span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span>);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a669d35f59b1f04db285cb21bd96e95c3"> 235</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a669d35f59b1f04db285cb21bd96e95c3">constant_def</a> =</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> (<a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#add09a0dc76b217ce5ef743c5f287f663">const_tok</a> &gt;&gt; attr(<span class="keyword">false</span>) &gt;&gt; attr(0))</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> | (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"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> | (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"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> | (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"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> | (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"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> | (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"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> | (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="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a99570603e86376d6e731f13838497963"> 251</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a99570603e86376d6e731f13838497963">parameter_def</a> =</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> (lexeme[lit(<span class="stringliteral">&quot;-PAR&quot;</span>) &gt;&gt; int_] &gt;&gt; attr(<span class="keyword">true</span>))</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> | (lit(<span class="stringliteral">&quot;PAR&quot;</span>) &gt;&gt; int_ &gt;&gt; attr(<span class="keyword">false</span>));</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#ab2a4a9f75dc4c630b806bf7b83b38d88"> 261</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ab2a4a9f75dc4c630b806bf7b83b38d88">map_def</a> =</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> (lexeme[lit(<span class="stringliteral">&quot;-MAP&quot;</span>) &gt;&gt; int_] &gt;&gt; attr(<span class="keyword">true</span>))</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> | (lit(<span class="stringliteral">&quot;MAP&quot;</span>) &gt;&gt; int_ &gt;&gt; attr(<span class="keyword">false</span>));</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#a5c7af99c7b0d207b27fa6d8e00e8d387"> 271</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a5c7af99c7b0d207b27fa6d8e00e8d387">function_def</a> =</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a10c2b5e23b1eec8be38882f7bfceab99">fun_tok</a> &gt;&gt; <span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span>;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="namespacemusrfit_1_1grammar.html#ac6c8cc1dfd8568f925b5c5fed59219d4"> 280</a></span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ac6c8cc1dfd8568f925b5c5fed59219d4">power_def</a> =</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> lit(<span class="stringliteral">&quot;POW&quot;</span>) &gt;&gt; <span class="charliteral">&#39;(&#39;</span> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;,&#39;</span> &gt;&gt; <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a> &gt;&gt; <span class="charliteral">&#39;)&#39;</span>;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> BOOST_SPIRIT_DEFINE(</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a73dc56e5176492df440c5b8aaaa943b4">assignment</a>,</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#ad05a136058c97109382fd1eb12cb754f">expression</a>,</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a484e24dd215d6a820da00af12a6f716f">term</a>,</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abd6867450459ac38a7cc9fe49e631d7f">factor</a>,</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#abe5e4701b1f4dab1309a32d898dbb2db">constant</a>,</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a3868a98f843039e101720b05986ae7f8">parameter</a>,</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a724dff9af4b292b88699e1ca713c3715">map</a>,</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a52474f586db8a544fceb42ef27dacd19">function</a>,</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#af898d0d1af392a246084d962ab4ad5e2">power</a></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> )</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span>}}</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemusrfit.html">musrfit</a> {</div>
<div class="foldopen" id="foldopen00322" data-start="{" data-end="}">
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"><a class="line" href="namespacemusrfit.html#afbc128df07f815e520ef1ce4efd123f4"> 322</a></span> <span class="keyword">inline</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; <a class="code hl_function" href="namespacemusrfit.html#afbc128df07f815e520ef1ce4efd123f4">function_grammar</a>()</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> {</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="namespacemusrfit_1_1grammar.html#a73dc56e5176492df440c5b8aaaa943b4">grammar::assignment</a>;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> }</div>
</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span>}</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor">#endif </span><span class="comment">// _PFUNCTIONGRAMMAR_H_</span></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html">musrfit::grammar</a></div><div class="ttdoc">Boost.Spirit X3 grammar definitions for parsing function expressions.</div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a004a9e720e323c4d9fe84f47860012ca"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a004a9e720e323c4d9fe84f47860012ca">musrfit::grammar::assignment_def</a></div><div class="ttdeci">auto const assignment_def</div><div class="ttdoc">Assignment rule: FUN# = expression.</div><div class="ttdef"><b>Definition</b> <a href="#l00192">PFunctionGrammar.h:192</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a10c2b5e23b1eec8be38882f7bfceab99"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00133">PFunctionGrammar.h:133</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a128eaba4dd8ec7d0ef390706612402e7"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00100">PFunctionGrammar.h:100</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a3667a52188ff1e1450bdd6fba6ba13d8"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a3667a52188ff1e1450bdd6fba6ba13d8">musrfit::grammar::expression_def</a></div><div class="ttdeci">auto const expression_def</div><div class="ttdoc">Expression rule: term ((+|-) term)*.</div><div class="ttdef"><b>Definition</b> <a href="#l00201">PFunctionGrammar.h:201</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a3868a98f843039e101720b05986ae7f8"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00171">PFunctionGrammar.h:171</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a484e24dd215d6a820da00af12a6f716f"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00162">PFunctionGrammar.h:162</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a52474f586db8a544fceb42ef27dacd19"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00177">PFunctionGrammar.h:177</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a5c7af99c7b0d207b27fa6d8e00e8d387"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a5c7af99c7b0d207b27fa6d8e00e8d387">musrfit::grammar::function_def</a></div><div class="ttdeci">auto const function_def</div><div class="ttdoc">Function rule: FUNC(expression)</div><div class="ttdef"><b>Definition</b> <a href="#l00271">PFunctionGrammar.h:271</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a5fb19d90f97b08c2567ba3b0d0e466ab"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a5fb19d90f97b08c2567ba3b0d0e466ab">musrfit::grammar::factor_def</a></div><div class="ttdeci">auto const factor_def</div><div class="ttdoc">Factor rule: the atomic elements of expressions.</div><div class="ttdef"><b>Definition</b> <a href="#l00220">PFunctionGrammar.h:220</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a669d35f59b1f04db285cb21bd96e95c3"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a669d35f59b1f04db285cb21bd96e95c3">musrfit::grammar::constant_def</a></div><div class="ttdeci">auto const constant_def</div><div class="ttdoc">Constant rule: PI | GAMMA_MU | B | -B | EN | -EN | T# | -T#.</div><div class="ttdef"><b>Definition</b> <a href="#l00235">PFunctionGrammar.h:235</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a6ec98dadb7ff29a012855d37fb2c052c"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00084">PFunctionGrammar.h:84</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a724dff9af4b292b88699e1ca713c3715"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00174">PFunctionGrammar.h:174</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a73dc56e5176492df440c5b8aaaa943b4"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a73dc56e5176492df440c5b8aaaa943b4">musrfit::grammar::assignment</a></div><div class="ttdeci">x3::rule&lt; class assignment, ast::assignment &gt; const assignment</div><div class="ttdoc">Top-level rule: FUN# = expression.</div><div class="ttdef"><b>Definition</b> <a href="#l00156">PFunctionGrammar.h:156</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a966d453a3bc18914cbc5c3ea2bc2eaa8"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a966d453a3bc18914cbc5c3ea2bc2eaa8">musrfit::grammar::term_def</a></div><div class="ttdeci">auto const term_def</div><div class="ttdoc">Term rule: factor ((*|/) factor)*.</div><div class="ttdef"><b>Definition</b> <a href="#l00210">PFunctionGrammar.h:210</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_a99570603e86376d6e731f13838497963"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#a99570603e86376d6e731f13838497963">musrfit::grammar::parameter_def</a></div><div class="ttdeci">auto const parameter_def</div><div class="ttdoc">Parameter rule: PAR# | -PAR#.</div><div class="ttdef"><b>Definition</b> <a href="#l00251">PFunctionGrammar.h:251</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_ab2a4a9f75dc4c630b806bf7b83b38d88"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#ab2a4a9f75dc4c630b806bf7b83b38d88">musrfit::grammar::map_def</a></div><div class="ttdeci">auto const map_def</div><div class="ttdoc">Map rule: MAP# | -MAP#.</div><div class="ttdef"><b>Definition</b> <a href="#l00261">PFunctionGrammar.h:261</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_abd6867450459ac38a7cc9fe49e631d7f"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00165">PFunctionGrammar.h:165</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_abe5e4701b1f4dab1309a32d898dbb2db"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00168">PFunctionGrammar.h:168</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_ac6c8cc1dfd8568f925b5c5fed59219d4"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#ac6c8cc1dfd8568f925b5c5fed59219d4">musrfit::grammar::power_def</a></div><div class="ttdeci">auto const power_def</div><div class="ttdoc">Power rule: POW(base, exponent)</div><div class="ttdef"><b>Definition</b> <a href="#l00280">PFunctionGrammar.h:280</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_ad05a136058c97109382fd1eb12cb754f"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00159">PFunctionGrammar.h:159</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_add09a0dc76b217ce5ef743c5f287f663"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00149">PFunctionGrammar.h:149</a></div></div>
<div class="ttc" id="anamespacemusrfit_1_1grammar_html_af898d0d1af392a246084d962ab4ad5e2"><div class="ttname"><a href="namespacemusrfit_1_1grammar.html#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="#l00180">PFunctionGrammar.h:180</a></div></div>
<div class="ttc" id="anamespacemusrfit_html"><div class="ttname"><a href="namespacemusrfit.html">musrfit</a></div><div class="ttdoc">Top-level namespace for musrfit components.</div></div>
<div class="ttc" id="anamespacemusrfit_html_afbc128df07f815e520ef1ce4efd123f4"><div class="ttname"><a href="namespacemusrfit.html#afbc128df07f815e520ef1ce4efd123f4">musrfit::function_grammar</a></div><div class="ttdeci">auto const &amp; function_grammar()</div><div class="ttdoc">Provides access to the top-level grammar rule.</div><div class="ttdef"><b>Definition</b> <a href="#l00322">PFunctionGrammar.h:322</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1additive__op___html"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1additive__op__.html">musrfit::grammar::additive_op_</a></div><div class="ttdoc">Symbol table for additive operators (+ and -).</div><div class="ttdef"><b>Definition</b> <a href="#l00076">PFunctionGrammar.h:77</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1additive__op___html_a193edf7ae72c25a48b83719326b4173d"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1additive__op__.html#a193edf7ae72c25a48b83719326b4173d">musrfit::grammar::additive_op_::additive_op_</a></div><div class="ttdeci">additive_op_()</div><div class="ttdef"><b>Definition</b> <a href="#l00078">PFunctionGrammar.h:78</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1const__tok___html"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1const__tok__.html">musrfit::grammar::const_tok_</a></div><div class="ttdoc">Symbol table for named constants.</div><div class="ttdef"><b>Definition</b> <a href="#l00141">PFunctionGrammar.h:142</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1const__tok___html_a425254cee56e18889037b0dc1bcf4bd3"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1const__tok__.html#a425254cee56e18889037b0dc1bcf4bd3">musrfit::grammar::const_tok_::const_tok_</a></div><div class="ttdeci">const_tok_()</div><div class="ttdef"><b>Definition</b> <a href="#l00143">PFunctionGrammar.h:143</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1fun__tok___html"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1fun__tok__.html">musrfit::grammar::fun_tok_</a></div><div class="ttdoc">Symbol table for mathematical function names.</div><div class="ttdef"><b>Definition</b> <a href="#l00109">PFunctionGrammar.h:110</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1fun__tok___html_a18453afbfdd1f946cdb24b46ba811ddd"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1fun__tok__.html#a18453afbfdd1f946cdb24b46ba811ddd">musrfit::grammar::fun_tok_::fun_tok_</a></div><div class="ttdeci">fun_tok_()</div><div class="ttdef"><b>Definition</b> <a href="#l00111">PFunctionGrammar.h:111</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1multiplicative__op___html"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1multiplicative__op__.html">musrfit::grammar::multiplicative_op_</a></div><div class="ttdoc">Symbol table for multiplicative operators (* and /).</div><div class="ttdef"><b>Definition</b> <a href="#l00092">PFunctionGrammar.h:93</a></div></div>
<div class="ttc" id="astructmusrfit_1_1grammar_1_1multiplicative__op___html_ac3a79c260d472d62b326f368c305bc10"><div class="ttname"><a href="structmusrfit_1_1grammar_1_1multiplicative__op__.html#ac3a79c260d472d62b326f368c305bc10">musrfit::grammar::multiplicative_op_::multiplicative_op_</a></div><div class="ttdeci">multiplicative_op_()</div><div class="ttdef"><b>Definition</b> <a href="#l00094">PFunctionGrammar.h:94</a></div></div>
</div><!-- fragment --></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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="PFunctionGrammar_8h.html">PFunctionGrammar.h</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>