Interface describes language lexic.
You can find more information in comments below. Overrided methods can be found in corresponding base class or interface.
class ILexic :public virtual IReleasable
{
public:
virtual bool IsSpace(const wchar_t chr) = 0; // Return whether specified character is space or not
virtual bool IsNewLine(const wchar_t chr) = 0; // Return whether specified character is line feed or not
virtual bool IsIdentifier(const wchar_t chr) = 0; // Return whether specified character is allowed in identifier or not
virtual bool IsIdentifierNotStart(const wchar_t chr) = 0; // Return whether specified character is allowed in identifier but not as start of the one or not
virtual bool IsIdentifierNotAll(const wchar_t chr) = 0; // Return whether specified character is allowed in identifier but not all the characters of the one or not
virtual bool IsIdentifierBoundary(const wchar_t chr) = 0; // Return whether specified character is not a part of identifier
virtual size_t Escape(const size_t index) = 0; // Return index + 2 if character is \ or index otherwise. Used to parse strings having escaped symbols equal to enclosed ones (like ' or "). For example: "Say \"Hello\" to him"
};
Namespace: | nitisa::script |
Include: | Nitisa/Modules/Script/Interfaces/ILexic.h |