Log base class.
Definition Log.hpp:19
Definition Scanner.hpp:29
bool scanSource(const SourceCodePtr &source)
const String & getComment() const
Definition Scanner.hpp:80
virtual ~Scanner()=default
TokenPtr nextToken(bool scanComments, bool scanWhiteSpaces)
void ignoreWhiteSpaces(bool includeNewLines=true)
TokenPtr scanNumber(bool startWithPeriod=false)
virtual TokenPtr scanToken()=0
TokenPtr scanWhiteSpaces(bool includeNewLines=true)
TokenPtr scanCharLiteral()
TokenPtr nextTokenScan(bool scanComments, bool scanWhiteSpaces)
Log * mLog
Definition Scanner.hpp:34
SourcePosition mNextStartPos
Definition Scanner.hpp:36
TokenPtr mPrevToken
Definition Scanner.hpp:38
void pushTokenString(const TokenPtrString &tokenString)
void errorUnexpectedEos()
bool isNewLine() const
Definition Scanner.hpp:129
const SourcePosition & getPosition() const
Definition Scanner.hpp:71
Vector< TokenPtrString::ConstIterator > mTokenStringItStack
Definition Scanner.hpp:40
SourceCode * getSource() const
Definition Scanner.hpp:74
TokenPtr scanStringLiteral()
String mComment
Definition Scanner.hpp:43
TokenPtr scanVarArg(String &spell)
unsigned char uChr() const
Definition Scanner.hpp:138
TokenPtr getActiveToken() const
bool mCommentFirstLine
Definition Scanner.hpp:45
UInt32 mCommentStartPos
Definition Scanner.hpp:44
virtual TokenPtr next()=0
TokenPtr mActiveToken
Definition Scanner.hpp:37
Scanner(Log *log=nullptr)
const SourceCodePtr & getSharedSource() const
Definition Scanner.hpp:77
void appendComment(const String &s)
void errorUnexpected(char expectedChar)
char mChr
Definition Scanner.hpp:32
TokenPtr make(const Token::Types &type, bool takeChr=false)
void appendMultiLineComment(const String &s)
bool is(const char chr) const
Definition Scanner.hpp:132
TokenPtr make(const Token::Types &type, String &spell, const SourcePosition &pos, bool takeChr=false)
TokenPtr make(const Token::Types &type, String &spell, bool takeChr=false)
TokenPtr scanNumberOrDot()
TokenPtr scanCommentBlock(bool scanComments)
SourceCodePtr mSource
Definition Scanner.hpp:31
void ignore(const UniqueFunction< bool(char) const > &pred)
bool scanDigitSequence(String &spell)
void error(const String &msg)
TokenPtr scanCommentLine(bool scanComments)
char chr() const
Definition Scanner.hpp:135
TokenPtr getPreviousToken() const
TokenPtrString::ConstIterator getTopTokenStringIterator() const
Definition SourceCode.hpp:24
Definition SourcePosition.hpp:30
Types
Definition Token.hpp:24
SPtr< SourceCode > SourceCodePtr
Definition SourceCode.hpp:66
SPtr< Token > TokenPtr
Definition Token.hpp:174
SPtr< Scanner > ScannerPtr
Definition Scanner.hpp:147
std::shared_ptr< T > SPtr
SPtr is a smart pointer that retains shared ownership of an object through a pointer.
Definition SmartPtr.hpp:37
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
std::uint32_t UInt32
Definition DataTypes.hpp:23
FunctionBase< true, false, fu2::capacity_default, true, false, Signatures... > UniqueFunction
An owning non copyable function wrapper for arbitrary callable types.
Definition Function.hpp:59
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25