Public Methods | |
symbol_marker () | |
symbol_marker (int a_ptr, char a_pattern, int a_intro) | |
symbol_marker (const symbol_marker& other) | |
void | set (int a_ptr, char a_pattern, int a_intro) |
Public Attributes | |
int | ptr |
char | pattern |
int | intro |
Static Public Methods | |
symbol_marker& | get_lowest (symbol_marker markers[], int last) |
|
Definition at line 83 of file cmt_symbol.cxx. 00084 { 00085 ptr = cmt_string::npos; 00086 pattern = 0; 00087 intro = 0; 00088 } |
|
Definition at line 90 of file cmt_symbol.cxx. 00091 { 00092 ptr = a_ptr; 00093 pattern = a_pattern; 00094 intro = a_intro; 00095 } |
|
Definition at line 97 of file cmt_symbol.cxx. 00098 { 00099 ptr = other.ptr; 00100 pattern = other.pattern; 00101 intro = other.intro; 00102 } |
|
Definition at line 111 of file cmt_symbol.cxx. Referenced by Symbol::resolve_macro_value(), resolve_value(), resolve_value_for_macros(), and suppress_OS_delimiters(). 00112 { 00113 static symbol_marker result; 00114 00115 // discards trailing npos 00116 while ((last >= 0) && (markers[last].ptr == cmt_string::npos)) last--; 00117 00118 if (last < 0) return (result); 00119 00120 int i; 00121 00122 // since we've passed the previous test, 00123 // at least one entry (last) is not npos. 00124 // Now discards other npos by moving them to the end 00125 00126 for (i = 0; i <= last; i++) 00127 { 00128 if (markers[i].ptr == cmt_string::npos) 00129 { 00130 markers[i] = markers[last]; 00131 last--; 00132 if (last < 0) break; 00133 } 00134 } 00135 00136 if (last < 0) return (result); 00137 00138 // now all entries in [0, last] are not npos 00139 // let's sort the lowest one in [0] 00140 00141 for (i = 1; i <= last;) 00142 { 00143 if (markers[0].ptr > markers[i].ptr) 00144 { 00145 symbol_marker temp = markers[0]; 00146 markers[0] = markers[i]; 00147 markers[i] = temp; 00148 i = 1; 00149 } 00150 else 00151 { 00152 i++; 00153 if (i > last) break; 00154 } 00155 } 00156 00157 return (markers[0]); 00158 } |
|
Definition at line 104 of file cmt_symbol.cxx. Referenced by Symbol::resolve_macro_value(), resolve_value(), resolve_value_for_macros(), and suppress_OS_delimiters(). 00105 { 00106 ptr = a_ptr; 00107 pattern = a_pattern; 00108 intro = a_intro; 00109 } |
|
Definition at line 162 of file cmt_symbol.cxx. |
|
Definition at line 161 of file cmt_symbol.cxx. |
|
Definition at line 160 of file cmt_symbol.cxx. |