104 alib::hash_string_ignore_case <character>,
114 alib::hash_string_ignore_case <character>,
209 ASTs->emplace_back(ast);
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).
integer tokInteger
Integer value of token (if applicable).
ParserImpl(Compiler &compiler, MonoAllocator &allocator)
BitSet< 256 > operatorChars
virtual ~ParserImpl() override
Virtual destructor.
StdVectorMono< AST * > * ASTs
@ 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, SCAMono< T > > StdVectorMono
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.