Ipelib

Public Member Functions | List of all members
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.

## Member Function Documentation

## ◆ token()

String Lex::token | ( |  | ) |

Return NextToken, but without extracting it.

References nextToken().

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.

References eos(), mark(), skipWhitespace(), and ipe::String::substr().

Referenced by getDouble(), getFixed(), getHexNumber(), getInt(), ipe::Shape::load(), ipe::ImlParser::parsePage(), and token().

## ◆ getInt()

int Lex::getInt | ( |  | ) |

Extract integer token (skipping whitespace).

References nextToken(), and ipe::String::z().

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

## ◆ getHexByte()

int Lex::getHexByte | ( |  | ) |

Extract byte in hex (skipping whitespace).

References eos(), and skipWhitespace().

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

## ◆ getFixed()

Fixed Lex::getFixed | ( |  | ) |

Extract Fixed token (skipping whitespace).

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

## ◆ getHexNumber()

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

Extract hexadecimal token (skipping whitespace).

References nextToken(), and ipe::String::z().

## ◆ getDouble()

double Lex::getDouble | ( |  | ) |

Extract double token (skipping whitespace).

References nextToken(), and ipe::Platform::toDouble().

Referenced by ipe::Painter::dashStyle(), 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 eos().

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

## ◆ 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.

Referenced by nextToken().

## ◆ 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::Painter::dashStyle(), ipe::PdfString::decode(), getHexByte(), ipe::Shape::load(), nextToken(), ipe::ImlParser::parseBitmap(), ipe::ImlParser::parsePage(), ipe::ImlParser::parseStyle(), and skipWhitespace().

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

- ipebase.h
- ipebase.cpp