-
Notifications
You must be signed in to change notification settings - Fork 0
/
AstRestructure_8h_source.html
204 lines (204 loc) · 25.3 KB
/
AstRestructure_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<!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.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ROSE: AstRestructure.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>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link rel="search" href="search_opensearch.php?v=opensearch.xml" type="application/opensearchdescription+xml" title="ROSE"/>
<link href="roseDoxygen.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">ROSE<span id="projectnumber"> 0.11.145.141</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @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&dn=expat.txt MIT */
$(function() {
initMenu('',true,true,'search.html','Search');
$(document).ready(function() {
if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }
});
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_ab44dd72236d16e0efa23643a9299efc.html">midend</a></li><li class="navelem"><a class="el" href="dir_72a02784c4a3f4825949a085ba8b7f58.html">astProcessing</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">AstRestructure.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Author: Markus Schordan</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// $Id: AstRestructure.h,v 1.2 2006/04/24 00:21:32 dquinlan Exp $</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef ASTRESTRUCTURE_H</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#define ASTRESTRUCTURE_H</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "roseInternal.h"</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">//#include "sage3.h"</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "rewrite.h"</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <set></span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <utility></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="preprocessor">#if 0</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// This has been moved to the unparser...</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">class </span>AstUnparseAttribute : <span class="keyword">public</span> <a class="code hl_class" href="classAstAttribute.html">AstAttribute</a></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// DQ (7/19/2008): I think we should not reuse the PreprocessingInfo::RelativePositionType</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// since it does not make sense to "replace" an IR node with a comment or CPP directive, I think.</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// typedef PreprocessingInfo::RelativePositionType RelativeLocation;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">enum</span> <a class="code hl_function" href="namespacestringify_1_1AstUnparseAttribute.html#aeae4f04c461ddae7d9c79b3690739acc">RelativePositionType</a></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> defaultValue = 0, <span class="comment">// let the zero value be an error value</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> undef = 1, <span class="comment">// Position of the directive is only going to be defined</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// when the preprocessing object is copied into the AST,</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// it remains undefined before that</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> before = 2, <span class="comment">// Directive goes before the correponding code segment</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> after = 3, <span class="comment">// Directive goes after the correponding code segment</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> inside = 4, <span class="comment">// Directive goes inside the correponding code segment (as in between "{" and "}" of an empty basic block)</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// DQ (7/19/2008): Added additional fields so that we could use this enum type in the AstUnparseAttribute</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> replace = 5, <span class="comment">// Support for replacing the IR node in the unparsing of any associated subtree</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> before_syntax = 6, <span class="comment">// We still have to specify the syntax</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> after_syntax = 7 <span class="comment">// We still have to specify the syntax</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> };</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_function" href="namespacestringify_1_1AstUnparseAttribute.html#aeae4f04c461ddae7d9c79b3690739acc">RelativePositionType</a> location;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::string unparseReplacement;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> std::vector< std::pair<std::string,RelativePositionType> > stringList;</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> AstUnparseAttribute(std::string s, RelativePositionType inputlocation )</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> : location(inputlocation), unparseReplacement(s)</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="comment">// Add the string location pair to the list.</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> stringList.push_back(std::pair<std::string,RelativePositionType>(s,inputlocation));</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="classAstAttribute.html#a5b2bceb4c2df9f3681cf4452880b5493">toString</a>() { <span class="keywordflow">return</span> unparseReplacement; }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> };</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">/*</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">class RestructureInhType : public AST_Rewrite::InheritedAttribute {</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">public:</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"> RestructureInhType(SgNode* n)</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> : AST_Rewrite::InheritedAttribute(n) {}</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> RestructureInhType(const RestructureInhType & X )</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"> : AST_Rewrite::InheritedAttribute(X) {}</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> RestructureInhType ( const RestructureInhType& X, SgNode* astNode )</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> : AST_Rewrite::InheritedAttribute (X,astNode) {};</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> RestructureInhType &</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> RestructureInhType::operator= ( const RestructureInhType & X ) {</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> // Call the base class operator=</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> AST_Rewrite::InheritedAttribute::operator=(X);</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> return *this;</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> }</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">};</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"></span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">class RestructureSynType : public AST_Rewrite::SynthesizedAttribute {</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">public:</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> RestructureSynType() {}</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> RestructureSynType(SgNode* n):AST_Rewrite::SynthesizedAttribute (n) {}</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">};</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">*/</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</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="classAstRestructure.html"> 76</a></span><span class="keyword">class </span><a class="code hl_class" href="classAstRestructure.html">AstRestructure</a> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_class" href="classAstRestructure.html">AstRestructure</a>(<a class="code hl_class" href="classSgProject.html">SgProject</a>*) {}</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_class" href="classAstRestructure.html">AstRestructure</a>(<a class="code hl_class" href="classSgProject.html">SgProject</a>*, std::string <span class="comment">/*incheader*/</span>) {}</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// replaces the AST with astNode as root node with the AST representing string s</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">void</span> immediateReplace(<a class="code hl_class" href="classSgStatement.html">SgStatement</a>* astNode,std::string s);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// attaches a string s to the AST such that when 'unparse' or</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// unparseToString or unparseToCompleteString is called, the string</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// 's' is unparsed instead of the subtree with node 'astNode' as</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// root. This function allows to replace parts of expressions!</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> <span class="keywordtype">void</span> unparserReplace(<a class="code hl_class" href="classSgExpression.html">SgExpression</a>* astNode, std::string s); </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// this replace is delayed until unlock of node astNode is called.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> delayedReplace(<a class="code hl_class" href="classSgNode.html">SgNode</a>* astNode,std::string s);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">void</span> lock(<a class="code hl_class" href="classSgNode.html">SgNode</a>* astNode); <span class="comment">// used by abstract parser </span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span> unlock(<a class="code hl_class" href="classSgNode.html">SgNode</a>* astNode); <span class="comment">// used by abstract parser</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor">#if 0 </span><span class="comment">// [Robb Matzke 2021-03-17]: unused</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_class" href="classSgProject.html">SgProject</a>* sageProject;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_class" href="classSgNode.html">SgNode</a>* targetNode;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> std::string sourceFragment;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> std::string includeHeaders; <span class="comment">// will become obsolete with new rewrite system</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">typedef</span> std::set<SgNode*> Lock;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> Lock lockedNodes;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">typedef</span> std::map<SgNode*,std::string> Schedule;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">typedef</span> Schedule::value_type SchedulePair;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> Schedule scheduledReplacements;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Functions required by the AST Rewrite Tree Traversal mechanism</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> RestructureInhType</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> evaluateRewriteInheritedAttribute (SgNode* astNode,</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> RestructureInhType inheritedValue );</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"> RestructureSynType</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> evaluateRewriteSynthesizedAttribute (SgNode* astNode,</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> RestructureInhType inheritedValue,</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> SubTreeSynthesizedAttributes attributeList );</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> */</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>};</div>
</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassAstAttribute_html"><div class="ttname"><a href="classAstAttribute.html">AstAttribute</a></div><div class="ttdoc">Base class for all IR node attribute values.</div><div class="ttdef"><b>Definition</b> <a href="AstAttributeMechanism_8h_source.html#l00036">AstAttributeMechanism.h:36</a></div></div>
<div class="ttc" id="aclassAstAttribute_html_a5b2bceb4c2df9f3681cf4452880b5493"><div class="ttname"><a href="classAstAttribute.html#a5b2bceb4c2df9f3681cf4452880b5493">AstAttribute::toString</a></div><div class="ttdeci">virtual std::string toString()</div><div class="ttdoc">Convert an attribute to a string.</div></div>
<div class="ttc" id="aclassAstRestructure_html"><div class="ttname"><a href="classAstRestructure.html">AstRestructure</a></div><div class="ttdef"><b>Definition</b> <a href="AstRestructure_8h_source.html#l00076">AstRestructure.h:77</a></div></div>
<div class="ttc" id="aclassSgExpression_html"><div class="ttname"><a href="classSgExpression.html">SgExpression</a></div><div class="ttdoc">This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...</div><div class="ttdef"><b>Definition</b> <a href="Cxx__Grammar_8h_source.html#l474495">Cxx_Grammar.h:474496</a></div></div>
<div class="ttc" id="aclassSgNode_html"><div class="ttname"><a href="classSgNode.html">SgNode</a></div><div class="ttdoc">This class represents the base class for all IR nodes within Sage III.</div><div class="ttdef"><b>Definition</b> <a href="Cxx__Grammar_8h_source.html#l00119">Cxx_Grammar.h:120</a></div></div>
<div class="ttc" id="aclassSgProject_html"><div class="ttname"><a href="classSgProject.html">SgProject</a></div><div class="ttdoc">This class represents a source project, with a list of SgFile objects and global information about th...</div><div class="ttdef"><b>Definition</b> <a href="Cxx__Grammar_8h_source.html#l39186">Cxx_Grammar.h:39187</a></div></div>
<div class="ttc" id="aclassSgStatement_html"><div class="ttname"><a href="classSgStatement.html">SgStatement</a></div><div class="ttdoc">This class represents the notion of a statement.</div><div class="ttdef"><b>Definition</b> <a href="Cxx__Grammar_8h_source.html#l224723">Cxx_Grammar.h:224724</a></div></div>
<div class="ttc" id="anamespacestringify_1_1AstUnparseAttribute_html_aeae4f04c461ddae7d9c79b3690739acc"><div class="ttname"><a href="namespacestringify_1_1AstUnparseAttribute.html#aeae4f04c461ddae7d9c79b3690739acc">stringify::AstUnparseAttribute::RelativePositionType</a></div><div class="ttdeci">const char * RelativePositionType(int64_t)</div><div class="ttdoc">Convert AstUnparseAttribute::RelativePositionType enum constant to a string.</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 2 2024 00:08:22 for ROSE by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>