JUCE
Classes | Static Public Member Functions | List of all members
CppTokeniserFunctions Struct Reference

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

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. More...
 
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. More...
 

Detailed Description

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

Member Function Documentation

◆ isIdentifierStart()

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

References CharacterFunctions::isLetter().

Referenced by readNextToken().

◆ isIdentifierBody()

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

◆ isReservedKeyword()

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

Referenced by parseIdentifier().

◆ parseIdentifier()

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

◆ skipNumberSuffix()

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

◆ isHexDigit()

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

Referenced by parseHexLiteral().

◆ parseHexLiteral()

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

References isHexDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ isOctalDigit()

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

Referenced by parseOctalLiteral().

◆ parseOctalLiteral()

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

References isOctalDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ isDecimalDigit()

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

◆ parseDecimalLiteral()

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

References isDecimalDigit(), and skipNumberSuffix().

Referenced by parseNumber().

◆ parseFloatLiteral()

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

References isDecimalDigit().

Referenced by parseNumber().

◆ parseNumber()

template<typename Iterator >
static int CppTokeniserFunctions::parseNumber ( Iterator &  source)
static

◆ skipQuotedString()

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

◆ skipComment()

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

Referenced by readNextToken().

◆ skipPreprocessorLine()

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

References skipQuotedString().

Referenced by readNextToken().

◆ skipIfNextCharMatches() [1/2]

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

Referenced by readNextToken().

◆ skipIfNextCharMatches() [2/2]

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

◆ readNextToken()

template<typename Iterator >
static int CppTokeniserFunctions::readNextToken ( Iterator &  source)
static

◆ writeEscapeChars()

static void 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 CharacterFunctions::getHexDigitValue(), JUCE_FALLTHROUGH, newLine, and String::toHexString().

Referenced by addEscapeChars().

◆ addEscapeChars()

static String 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 String::toRawUTF8(), MemoryOutputStream::toString(), and writeEscapeChars().


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