104 alib::hash_string_ignore_case <character>,
114 alib::hash_string_ignore_case <character>,
Tokens token
The actual token type.
ALIB_DLL String getUnaryOp()
HashSet< MonoAllocator, String, alib::hash_string_ignore_case< character >, alib::equal_to_string_ignore_case< character > > unaryOperators
Compiler & compiler
The compiler that this parser works for.
AST * parseSubscript(AST *function)
ASTLiteral::NFHint tokLiteralHint
The actual token type.
ALIB_DLL String getBinaryOp()
double tokFloat
Float value of token (if applicable).
virtual ALIB_DLL detail::AST * Parse(const String &exprString, NumberFormat *nf) override
BitSet< 256 > syntaxTokens
String expression
The given expression to parse.
integer tokPosition
The position of the token in expression.
String tokString
String value of token (if applicable).
StdVectorMA< AST * > * ASTs
integer tokInteger
Integer value of token (if applicable).
ParserImpl(Compiler &compiler, MonoAllocator &allocator)
BitSet< 256 > operatorChars
virtual ~ParserImpl() override
Virtual destructor.
@ Identifier
An identifier.
@ LitFloat
a float literal.
@ SubscriptClose
A closing subscript brace.
@ LitString
a string literal.
@ EOT
End of tokens. (No next token available.)
@ AlphaBinOp
An alphabetic binary operator.
@ BraceClose
A closing brace.
@ BraceOpen
An opening brace.
@ SymbolicOp
A symbolic operator. Can be unary or binary.
@ AlphaUnOp
An alphabetic unary operator.
@ SubscriptOpen
An opening subscript brace.
@ LitInteger
a integer literal.
HashSet< MonoAllocator, String, alib::hash_string_ignore_case< character >, alib::equal_to_string_ignore_case< character > > binaryOperators
void NextToken()
This is the "scanner" or "lexer" method.
Substring scanner
The rest of expression.
MonoAllocator & compileTimeAllocator
NumberFormat * numberFormat
Used for scanning literals. Provided to this class with each parse request.
containers::HashSet< TAllocator, T, THash, TEqual, THashCaching, TRecycling > HashSet
Type alias in namespace alib. See type definition alib::containers::HashSet.
std::vector< T, StdMA< T > > StdVectorMA
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
strings::TNumberFormat< character > NumberFormat
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
lang::TBitSet< int, TEnd, TBegin > BitSet
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
strings::TSubstring< character > Substring
Type alias in namespace alib.
This detail class constitutes an abstract base class for expression parsers.