Ogre::CPreprocessor::Token Class Reference

A input token. More...

List of all members.

## Public Types

enum | Kind { TK_EOS, TK_ERROR, TK_WHITESPACE, TK_NEWLINE, TK_LINECONT, TK_NUMBER, TK_KEYWORD, TK_PUNCTUATION, TK_DIRECTIVE, TK_STRING, TK_COMMENT, TK_LINECOMMENT, TK_TEXT, TK_EOS, TK_ERROR, TK_WHITESPACE, TK_NEWLINE, TK_LINECONT, TK_NUMBER, TK_KEYWORD, TK_PUNCTUATION, TK_DIRECTIVE, TK_STRING, TK_COMMENT, TK_LINECOMMENT, TK_TEXT }
enum | Kind { TK_EOS, TK_ERROR, TK_WHITESPACE, TK_NEWLINE, TK_LINECONT, TK_NUMBER, TK_KEYWORD, TK_PUNCTUATION, TK_DIRECTIVE, TK_STRING, TK_COMMENT, TK_LINECOMMENT, TK_TEXT, TK_EOS, TK_ERROR, TK_WHITESPACE, TK_NEWLINE, TK_LINECONT, TK_NUMBER, TK_KEYWORD, TK_PUNCTUATION, TK_DIRECTIVE, TK_STRING, TK_COMMENT, TK_LINECOMMENT, TK_TEXT }

## Public Member Functions

| Token ()
| Token (Kind iType)
| Token (Kind iType, const char *iString, size_t iLength)
| Token (const Token &iOther)
| ~Token ()
Token & | operator= (const Token &iOther)
| Assignment operator.
void | Append (const char *iString, size_t iLength)
| Append a string to this token.
void | Append (const Token &iOther)
| Append a token to this token.
void | AppendNL (int iCount)
| Append given number of newlines to this token.
int | CountNL ()
| Count number of newlines in this token.
bool | GetValue (long &oValue) const
| Get the numeric value of the token.
void | SetValue (long iValue)
| Set the numeric value of the token.
bool | operator== (const Token &iOther)
| Test two tokens for equality.
| Token ()
| Token (Kind iType)
| Token (Kind iType, const char *iString, size_t iLength)
| Token (const Token &iOther)
| ~Token ()
Token & | operator= (const Token &iOther)
| Assignment operator.
void | Append (const char *iString, size_t iLength)
| Append a string to this token.
void | Append (const Token &iOther)
| Append a token to this token.
void | AppendNL (int iCount)
| Append given number of newlines to this token.
int | CountNL ()
| Count number of newlines in this token.
bool | GetValue (long &oValue) const
| Get the numeric value of the token.
void | SetValue (long iValue)
| Set the numeric value of the token.
bool | operator== (const Token &iOther)
| Test two tokens for equality.

## Public Attributes

Kind | Type
| Token type.
size_t | Allocated
| True if string was allocated (and must be freed)
union {
const char * String
| A pointer somewhere into the input buffer.
char * Buffer
| A memory-allocated string.
}; |
size_t | Length
| Token length in bytes.
union {
const char * String
| A pointer somewhere into the input buffer.
char * Buffer
| A memory-allocated string.
}; |

## Detailed Description

A input token.

For performance reasons most tokens will point to portions of the input stream, so no unneeded memory allocation is done. However, in some cases we must allocate different memory for token storage, in this case this is signalled by setting the Allocated member to non-zero in which case the destructor will know that it must free memory on object destruction.

Again for performance reasons we use malloc/realloc/free here because C++-style new[] lacks the realloc() counterpart.

Definition at line 76 of file OgreGLSLPreprocessor.h.

## Member Enumeration Documentation

enum Ogre::CPreprocessor::Token::Kind

Enumerator:

  TK_EOS |
  TK_ERROR |
  TK_WHITESPACE |
  TK_NEWLINE |
  TK_LINECONT |
  TK_NUMBER |
  TK_KEYWORD |
  TK_PUNCTUATION |
  TK_DIRECTIVE |
  TK_STRING |
  TK_COMMENT |
  TK_LINECOMMENT |
  TK_TEXT |
  TK_EOS |
  TK_ERROR |
  TK_WHITESPACE |
  TK_NEWLINE |
  TK_LINECONT |
  TK_NUMBER |
  TK_KEYWORD |
  TK_PUNCTUATION |
  TK_DIRECTIVE |
  TK_STRING |
  TK_COMMENT |
  TK_LINECOMMENT |
  TK_TEXT |

Definition at line 79 of file OgreGLSLPreprocessor.h.

enum Ogre::CPreprocessor::Token::Kind

Enumerator:

  TK_EOS |
  TK_ERROR |
  TK_WHITESPACE |
  TK_NEWLINE |
  TK_LINECONT |
  TK_NUMBER |
  TK_KEYWORD |
  TK_PUNCTUATION |
  TK_DIRECTIVE |
  TK_STRING |
  TK_COMMENT |
  TK_LINECOMMENT |
  TK_TEXT |
  TK_EOS |
  TK_ERROR |
  TK_WHITESPACE |
  TK_NEWLINE |
  TK_LINECONT |
  TK_NUMBER |
  TK_KEYWORD |
  TK_PUNCTUATION |
  TK_DIRECTIVE |
  TK_STRING |
  TK_COMMENT |
  TK_LINECOMMENT |
  TK_TEXT |

Definition at line 79 of file OgreGLSLESPreprocessor.h.

## Constructor & Destructor Documentation

Ogre::CPreprocessor::Token::Token | ( |  | ) |

Definition at line 110 of file OgreGLSLPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | Kind | iType | ) |

Definition at line 113 of file OgreGLSLPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | Kind | iType,
|  | const char * | iString,
|  | size_t | iLength
| ) |  |

Definition at line 116 of file OgreGLSLPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | const Token & | iOther | ) |

Definition at line 120 of file OgreGLSLPreprocessor.h.

References Allocated, Length, String, and Type.

Ogre::CPreprocessor::Token::~Token | ( |  | ) |

Definition at line 129 of file OgreGLSLPreprocessor.h.

References Allocated, and Buffer.

Ogre::CPreprocessor::Token::Token | ( |  | ) |

Definition at line 110 of file OgreGLSLESPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | Kind | iType | ) |

Definition at line 113 of file OgreGLSLESPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | Kind | iType,
|  | const char * | iString,
|  | size_t | iLength
| ) |  |

Definition at line 116 of file OgreGLSLESPreprocessor.h.

Ogre::CPreprocessor::Token::Token | ( | const Token & | iOther | ) |

Definition at line 120 of file OgreGLSLESPreprocessor.h.

References Allocated, Length, and Type.

Ogre::CPreprocessor::Token::~Token | ( |  | ) |

Definition at line 129 of file OgreGLSLESPreprocessor.h.

References Allocated, and Buffer.

## Member Function Documentation

void Ogre::CPreprocessor::Token::Append | ( | const char * | iString,
|  | size_t | iLength
| ) |  |

Append a string to this token.

void Ogre::CPreprocessor::Token::Append | ( | const char * | iString,
|  | size_t | iLength
| ) |  |

Append a string to this token.

void Ogre::CPreprocessor::Token::Append | ( | const Token & | iOther | ) |

Append a token to this token.

void Ogre::CPreprocessor::Token::Append | ( | const Token & | iOther | ) |

Append a token to this token.

void Ogre::CPreprocessor::Token::AppendNL | ( | int | iCount | ) |

Append given number of newlines to this token.

void Ogre::CPreprocessor::Token::AppendNL | ( | int | iCount | ) |

Append given number of newlines to this token.

int Ogre::CPreprocessor::Token::CountNL | ( |  | ) |

Count number of newlines in this token.

int Ogre::CPreprocessor::Token::CountNL | ( |  | ) |

Count number of newlines in this token.

bool Ogre::CPreprocessor::Token::GetValue | ( | long & | oValue | ) | const

Get the numeric value of the token.

bool Ogre::CPreprocessor::Token::GetValue | ( | long & | oValue | ) | const

Get the numeric value of the token.

Token& Ogre::CPreprocessor::Token::operator= | ( | const Token & | iOther | ) |

Assignment operator.

Definition at line 133 of file OgreGLSLPreprocessor.h.

References Allocated, Buffer, Length, String, and Type.

Token& Ogre::CPreprocessor::Token::operator= | ( | const Token & | iOther | ) |

Assignment operator.

Definition at line 133 of file OgreGLSLESPreprocessor.h.

References Allocated, Buffer, Length, and Type.

bool Ogre::CPreprocessor::Token::operator== | ( | const Token & | iOther | ) |

Test two tokens for equality.

Definition at line 163 of file OgreGLSLESPreprocessor.h.

References Length.

bool Ogre::CPreprocessor::Token::operator== | ( | const Token & | iOther | ) |

Test two tokens for equality.

Definition at line 163 of file OgreGLSLPreprocessor.h.

References Length, and String.

void Ogre::CPreprocessor::Token::SetValue | ( | long | iValue | ) |

Set the numeric value of the token.

void Ogre::CPreprocessor::Token::SetValue | ( | long | iValue | ) |

Set the numeric value of the token.

## Member Data Documentation

union { ... }

union { ... }

size_t Ogre::CPreprocessor::Token::Allocated `[mutable]`

True if string was allocated (and must be freed)

Definition at line 99 of file OgreGLSLPreprocessor.h.

Referenced by operator=(), Token(), and ~Token().

char* Ogre::CPreprocessor::Token::Buffer

A memory-allocated string.

Definition at line 105 of file OgreGLSLPreprocessor.h.

Referenced by operator=(), and ~Token().

size_t Ogre::CPreprocessor::Token::Length

Token length in bytes.

Definition at line 108 of file OgreGLSLPreprocessor.h.

Referenced by operator=(), operator==(), and Token().

const char* Ogre::CPreprocessor::Token::String

A pointer somewhere into the input buffer.

Definition at line 103 of file OgreGLSLPreprocessor.h.

Referenced by operator=(), operator==(), and Token().

Kind Ogre::CPreprocessor::Token::Type

Token type.

Definition at line 97 of file OgreGLSLPreprocessor.h.

Referenced by operator=(), and Token().

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

- OgreGLSLPreprocessor.h
- OgreGLSLESPreprocessor.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:55