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 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... | |
static bool | isDecimalDigit (const juce_wchar c) noexcept |
static bool | isHexDigit (const juce_wchar c) noexcept |
static bool | isIdentifierBody (const juce_wchar c) noexcept |
static bool | isIdentifierStart (const juce_wchar c) noexcept |
static bool | isOctalDigit (const juce_wchar c) noexcept |
static bool | isReservedKeyword (String::CharPointerType token, const int tokenLength) noexcept |
template<typename Iterator > | |
static bool | parseDecimalLiteral (Iterator &source) noexcept |
template<typename Iterator > | |
static bool | parseFloatLiteral (Iterator &source) noexcept |
template<typename Iterator > | |
static bool | parseHexLiteral (Iterator &source) noexcept |
template<typename Iterator > | |
static int | parseIdentifier (Iterator &source) noexcept |
template<typename Iterator > | |
static int | parseNumber (Iterator &source) |
template<typename Iterator > | |
static bool | parseOctalLiteral (Iterator &source) noexcept |
template<typename Iterator > | |
static int | readNextToken (Iterator &source) |
template<typename Iterator > | |
static void | skipComment (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 bool | skipNumberSuffix (Iterator &source) |
template<typename Iterator > | |
static void | skipPreprocessorLine (Iterator &source) noexcept |
template<typename Iterator > | |
static void | skipQuotedString (Iterator &source) noexcept |
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... | |
Class containing some basic functions for simple tokenising of C++ code.
@tags{GUI}
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!
References juce::gl::s, juce::MemoryOutputStream::toString(), and writeEscapeChars().
|
inlinestaticnoexcept |
References juce::gl::c.
Referenced by parseDecimalLiteral(), and parseFloatLiteral().
|
inlinestaticnoexcept |
References juce::gl::c.
Referenced by parseHexLiteral().
|
inlinestaticnoexcept |
References juce::gl::c, and juce::CharacterFunctions::isLetterOrDigit().
Referenced by parseIdentifier().
|
inlinestaticnoexcept |
References juce::gl::c, and juce::CharacterFunctions::isLetter().
Referenced by readNextToken().
|
inlinestaticnoexcept |
References juce::gl::c.
Referenced by parseOctalLiteral().
|
inlinestaticnoexcept |
Referenced by parseIdentifier().
|
inlinestaticnoexcept |
References isDecimalDigit(), skipNumberSuffix(), and juce::gl::source.
Referenced by parseNumber().
|
inlinestaticnoexcept |
References juce::gl::c, isDecimalDigit(), and juce::gl::source.
Referenced by parseNumber().
|
inlinestaticnoexcept |
References juce::gl::c, isHexDigit(), skipNumberSuffix(), and juce::gl::source.
Referenced by parseNumber().
|
inlinestaticnoexcept |
|
inlinestatic |
|
inlinestaticnoexcept |
References isOctalDigit(), skipNumberSuffix(), and juce::gl::source.
Referenced by parseNumber().
|
inlinestatic |
References isIdentifierStart(), parseIdentifier(), parseNumber(), juce::gl::result, skipComment(), skipIfNextCharMatches(), skipPreprocessorLine(), skipQuotedString(), juce::gl::source, juce::CPlusPlusCodeTokeniser::tokenType_bracket, juce::CPlusPlusCodeTokeniser::tokenType_comment, juce::CPlusPlusCodeTokeniser::tokenType_error, juce::CPlusPlusCodeTokeniser::tokenType_operator, juce::CPlusPlusCodeTokeniser::tokenType_preprocessor, juce::CPlusPlusCodeTokeniser::tokenType_punctuation, and juce::CPlusPlusCodeTokeniser::tokenType_string.
|
inlinestaticnoexcept |
References juce::gl::c, and juce::gl::source.
Referenced by readNextToken().
|
inlinestaticnoexcept |
References juce::gl::c, and juce::gl::source.
Referenced by readNextToken().
|
inlinestaticnoexcept |
References juce::gl::c, and juce::gl::source.
|
inlinestatic |
References juce::gl::c, juce::CharacterFunctions::isLetterOrDigit(), and juce::gl::source.
Referenced by parseDecimalLiteral(), parseHexLiteral(), and parseOctalLiteral().
|
inlinestaticnoexcept |
References juce::gl::c, skipQuotedString(), and juce::gl::source.
Referenced by readNextToken().
|
inlinestaticnoexcept |
References juce::gl::c, and juce::gl::source.
Referenced by readNextToken(), and skipPreprocessorLine().
|
inlinestatic |
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.
References juce::gl::c, juce::CharacterFunctions::getHexDigitValue(), JUCE_FALLTHROUGH, juce::newLine, and juce::String::toHexString().
Referenced by addEscapeChars().