Loading...
Searching...
No Matches
juce::CppTokeniserFunctions Struct Reference

Detailed Description

Class containing some basic functions for simple tokenising of C++ code.

Classes

struct  StringIterator
 A class that can be passed to the CppTokeniserFunctions functions in order to parse a String. More...

Static Public Member Functions

static bool isIdentifierStart (const juce_wchar c) noexcept
static bool isIdentifierBody (const juce_wchar c) noexcept
static bool isReservedKeyword (String::CharPointerType token, const int tokenLength) noexcept
template<typename Iterator>
static int parseIdentifier (Iterator &source) noexcept
template<typename Iterator>
static bool skipNumberSuffix (Iterator &source)
static bool isHexDigit (const juce_wchar c) noexcept
template<typename Iterator>
static bool parseHexLiteral (Iterator &source) noexcept
static bool isOctalDigit (const juce_wchar c) noexcept
template<typename Iterator>
static bool parseOctalLiteral (Iterator &source) noexcept
static bool isDecimalDigit (const juce_wchar c) noexcept
template<typename Iterator>
static bool parseDecimalLiteral (Iterator &source) noexcept
template<typename Iterator>
static bool parseFloatLiteral (Iterator &source) noexcept
template<typename Iterator>
static int parseNumber (Iterator &source)
template<typename Iterator>
static void skipQuotedString (Iterator &source) noexcept
template<typename Iterator>
static void skipComment (Iterator &source) noexcept
template<typename Iterator>
static void skipPreprocessorLine (Iterator &source) noexcept
template<typename Iterator>
static void skipIfNextCharMatches (Iterator &source, const juce_wchar c) noexcept
template<typename Iterator>
static void skipIfNextCharMatches (Iterator &source, const juce_wchar c1, const juce_wchar c2) noexcept
template<typename Iterator>
static int readNextToken (Iterator &source)
static void writeEscapeChars (OutputStream &out, const char *utf8, const int numBytesToRead, const int maxCharsOnLine, const bool breakAtNewLines, const bool replaceSingleQuotes, const bool allowStringBreaks)
 Takes a UTF8 string and writes it to a stream using standard C++ escape sequences for any non-ascii bytes.
static String addEscapeChars (const String &s)
 Takes a string and returns a version of it where standard C++ escape sequences have been used to replace any non-ascii bytes.

Member Functions

◆ isIdentifierStart()

bool juce::CppTokeniserFunctions::isIdentifierStart ( const juce_wchar c)
staticnoexcept

◆ isIdentifierBody()

bool juce::CppTokeniserFunctions::isIdentifierBody ( const juce_wchar c)
staticnoexcept

◆ isReservedKeyword()

bool juce::CppTokeniserFunctions::isReservedKeyword ( String::CharPointerType token,
const int tokenLength )
staticnoexcept

Referenced by parseIdentifier().

◆ parseIdentifier()

template<typename Iterator>
int juce::CppTokeniserFunctions::parseIdentifier ( Iterator & source)
staticnoexcept

◆ skipNumberSuffix()

template<typename Iterator>
bool juce::CppTokeniserFunctions::skipNumberSuffix ( Iterator & source)
static

◆ isHexDigit()

bool juce::CppTokeniserFunctions::isHexDigit ( const juce_wchar c)
staticnoexcept

Referenced by parseHexLiteral().

◆ parseHexLiteral()

template<typename Iterator>
bool juce::CppTokeniserFunctions::parseHexLiteral ( Iterator & source)
staticnoexcept

References isHexDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ isOctalDigit()

bool juce::CppTokeniserFunctions::isOctalDigit ( const juce_wchar c)
staticnoexcept

Referenced by parseOctalLiteral().

◆ parseOctalLiteral()

template<typename Iterator>
bool juce::CppTokeniserFunctions::parseOctalLiteral ( Iterator & source)
staticnoexcept

References isOctalDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ isDecimalDigit()

bool juce::CppTokeniserFunctions::isDecimalDigit ( const juce_wchar c)
staticnoexcept

◆ parseDecimalLiteral()

template<typename Iterator>
bool juce::CppTokeniserFunctions::parseDecimalLiteral ( Iterator & source)
staticnoexcept

References isDecimalDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ parseFloatLiteral()

template<typename Iterator>
bool juce::CppTokeniserFunctions::parseFloatLiteral ( Iterator & source)
staticnoexcept

References isDecimalDigit().

Referenced by parseNumber().

◆ parseNumber()

◆ skipQuotedString()

template<typename Iterator>
void juce::CppTokeniserFunctions::skipQuotedString ( Iterator & source)
staticnoexcept

◆ skipComment()

template<typename Iterator>
void juce::CppTokeniserFunctions::skipComment ( Iterator & source)
staticnoexcept

Referenced by readNextToken().

◆ skipPreprocessorLine()

template<typename Iterator>
void juce::CppTokeniserFunctions::skipPreprocessorLine ( Iterator & source)
staticnoexcept

◆ skipIfNextCharMatches() [1/2]

template<typename Iterator>
void juce::CppTokeniserFunctions::skipIfNextCharMatches ( Iterator & source,
const juce_wchar c )
staticnoexcept

Referenced by readNextToken().

◆ skipIfNextCharMatches() [2/2]

template<typename Iterator>
void juce::CppTokeniserFunctions::skipIfNextCharMatches ( Iterator & source,
const juce_wchar c1,
const juce_wchar c2 )
staticnoexcept

◆ readNextToken()

◆ writeEscapeChars()

void juce::CppTokeniserFunctions::writeEscapeChars ( OutputStream & out,
const char * utf8,
const int numBytesToRead,
const int maxCharsOnLine,
const bool breakAtNewLines,
const bool replaceSingleQuotes,
const bool allowStringBreaks )
static

Takes a UTF8 string and writes it to a stream using standard C++ escape sequences for any non-ascii bytes.

Although not strictly a tokenising function, this is still a function that often comes in handy when working with C++ code!

Note that addEscapeChars() is easier to use than this function if you're working with Strings.

See also
addEscapeChars

References juce::CharacterFunctions::getHexDigitValue(), juce::newLine, and juce::String::toHexString().

Referenced by addEscapeChars().

◆ addEscapeChars()

String juce::CppTokeniserFunctions::addEscapeChars ( const String & s)
static

Takes a string and returns a version of it where standard C++ escape sequences have been used to replace any non-ascii bytes.

Although not strictly a tokenising function, this is still a function that often comes in handy when working with C++ code!

See also
writeEscapeChars

References juce::String::toRawUTF8(), juce::MemoryOutputStream::toString(), and writeEscapeChars().

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram