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

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

#include <juce_CPlusPlusCodeTokeniserFunctions.h>

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.
 

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

◆ 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()

◆ 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:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram