ipe::Lex Class Reference
Ipe Base

`#include <ipebase.h>`

## Public Member Functions

| Lex (String str)
String | token ()
String | nextToken ()
int | getInt ()
int | getHexByte ()
Fixed | getFixed ()
unsigned long int | getHexNumber ()
double | getDouble ()
char | getChar ()
void | skipWhitespace ()
Lex & | operator>> (int &i)
Lex & | operator>> (double &d)
Lex & | operator>> (Fixed &d)
void | mark ()
void | fromMark ()
bool | eos () const

## Detailed Description

Lexical analyser. Seeded with a string.

## Constructor & Destructor Documentation

## Lex()

Lex::Lex | ( | String | str | ) |

explicit

Construct lexical analyzer from a string.

Referenced by ipe::Fixed::operator<<().

## Member Function Documentation

## token()

String Lex::token | ( |  | ) |

Return NextToken, but without extracting it.

Referenced by ipe::Shape::load().

## nextToken()

String Lex::nextToken | ( |  | ) |

Extract next token.

Skips any whitespace before the token. Returns empty string if end of string is reached.

Referenced by ipe::Shape::load(), and ipe::ImlParser::parsePage().

## getInt()

int Lex::getInt | ( |  | ) |

Extract integer token (skipping whitespace).

References ipe::String::z().

Referenced by ipe::Bitmap::Bitmap(), ipe::Document::findPage(), ipe::Page::findView(), ipe::ImlParser::parseBitmap(), ipe::ImlParser::parseObject(), and ipe::ImlParser::parseStyle().

## getHexByte()

int Lex::getHexByte | ( |  | ) |

Extract byte in hex (skipping whitespace).

Referenced by ipe::Bitmap::Bitmap(), and ipe::PdfString::decode().

## getFixed()

Fixed Lex::getFixed | ( |  | ) |

Extract Fixed token (skipping whitespace).

References ipe::Fixed::fromInternal(), ipe::String::size(), ipe::String::substr(), and ipe::String::z().

## getHexNumber()

unsigned long int Lex::getHexNumber | ( |  | ) |

Extract hexadecimal token (skipping whitespace).

References ipe::String::z().

Referenced by ipe::Bitmap::Bitmap().

## getDouble()

double Lex::getDouble | ( |  | ) |

Extract double token (skipping whitespace).

References ipe::Platform::toDouble().

Referenced by ipe::ImlParser::parseStyle(), and ipe::Text::Text().

## getChar()

char ipe::Lex::getChar | ( |  | ) |

inline

Extract next character (not skipping anything).

## skipWhitespace()

void Lex::skipWhitespace | ( |  | ) |

Skip over whitespace.

References ipe::Buffer::Buffer(), and ipe::String::size().

Referenced by ipe::Shape::load(), ipe::ImlParser::parseBitmap(), and ipe::ImlParser::parsePage().

## operator>>() [1/3]

Lex& ipe::Lex::operator>> | ( | int & | i | ) |

inline

Operator syntax for getInt().

## operator>>() [2/3]

Lex& ipe::Lex::operator>> | ( | double & | d | ) |

inline

Operator syntax for getDouble().

## operator>>() [3/3]

Lex& ipe::Lex::operator>> | ( | Fixed & | d | ) |

inline

Operator syntax for getFixed().

## mark()

void ipe::Lex::mark | ( |  | ) |

inline

Mark the current position.

## fromMark()

void ipe::Lex::fromMark | ( |  | ) |

inline

Reset reader to the marked position.

## eos()

bool ipe::Lex::eos | ( |  | ) | const

inline

Return true if at end of string (not even whitespace left).

Referenced by ipe::Color::Color(), ipe::PdfString::decode(), ipe::Shape::load(), ipe::ImlParser::parseBitmap(), and ipe::ImlParser::parsePage().

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

- ipebase.h
- ipebase.cpp