26 lines
653 B
C++
26 lines
653 B
C++
#ifndef SAQUT_AST_LITERAL
|
||
#define SAQUT_AST_LITERAL
|
||
|
||
#include "parser/ast_node.hpp"
|
||
|
||
class LiteralNode : public ExpressionNode {
|
||
public:
|
||
Token* lexerToken = nullptr;
|
||
ParserToken parserToken;
|
||
|
||
LiteralType literalType = LiteralType::INTEGER;
|
||
int literalBase = 10;
|
||
bool isFloatValue = false;
|
||
|
||
// Sabit katlama (constant folding) tarafından üretilen sentetik literal.
|
||
// parserToken.token yerine bu değer kullanılır.
|
||
bool hasDirectValue = false;
|
||
int directIntValue = 0;
|
||
|
||
LiteralNode();
|
||
void log(int indent = 0) override;
|
||
std::string toJson(int depth = 0) override;
|
||
};
|
||
|
||
#endif
|