Main Page Class Hierarchy Compound List File List Compound Members File Members

# symbol_marker Class Reference

List of all members.

## 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)

## Constructor & Destructor Documentation

symbol_marker::symbol_marker ( | )`[inline]`

| Definition at line 83 of file cmt_symbol.cxx.
    00084   {
    00085     ptr = cmt_string::npos;
    00086     pattern = 0;
    00087     intro = 0;
    00088   }

symbol_marker::symbol_marker ( | int a_ptr,
| char a_pattern,
| int a_intro )`[inline]`

| Definition at line 90 of file cmt_symbol.cxx.
    00091   {
    00092     ptr = a_ptr;
    00093     pattern = a_pattern;
    00094     intro = a_intro;
    00095   }

symbol_marker::symbol_marker ( | const symbol_marker & other )`[inline]`

| Definition at line 97 of file cmt_symbol.cxx.
    00098   {
    00099     ptr = other.ptr;
    00100     pattern = other.pattern;
    00101     intro = other.intro;
    00102   }

## Member Function Documentation

symbol_marker & symbol_marker::get_lowest ( | symbol_marker markers[],
| int last )`[inline, static]`

| 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   }

void symbol_marker::set ( | int a_ptr,
| char a_pattern,
| int a_intro )`[inline]`

| 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   }

## Member Data Documentation

int symbol_marker::intro

| Definition at line 162 of file cmt_symbol.cxx.

char symbol_marker::pattern

| Definition at line 161 of file cmt_symbol.cxx.

int symbol_marker::ptr

| Definition at line 160 of file cmt_symbol.cxx.

The documentation for this class was generated from the following file:

- cmt_symbol.cxx