12#ifndef SYSTEMVERILOGEXPRESSIONPARSER_H
13#define SYSTEMVERILOGEXPRESSIONPARSER_H
17#include "KactusAPI/KactusAPIGlobal.h"
47 QString
parseExpression(QStringView expression,
bool* validExpression =
nullptr)
const override;
94 virtual bool isSymbol(QStringView expression)
const;
140 virtual QString
solveUnary(QStringView operation, QString
const& term)
const;
152 static QVector<QStringView> convertToRPN(QString& expression);
162 QString solveRPN(QVector<QStringView> rpn,
bool* validExpression)
const;
171 bool isStringLiteral(QStringView expression)
const noexcept;
180 bool isLiteral(QStringView expression)
const;
189 bool isBinaryOperator(QStringView token)
const;
198 bool isTernaryOperator(QStringView token)
const;
209 QString solveTernary(QStringView condition, QString
const& trueCase, QString
const& falseCase)
const;
221 QString solveBinary(QStringView operation, QString
const& leftTerm, QString
const& rightTerm)
const;
230 QString solveClog2(QString
const& value)
const;
239 QString solveSqrt(QString
const& value)
const;
248 static int precisionOf(QStringView term)
noexcept;
257 static int baseOf(QStringView constantNumber);
Interface for expression parsers.
QString parseConstant(QStringView token) const
QString parseExpression(QStringView expression, bool *validExpression=nullptr) const override
virtual bool isArrayExpression(QStringView expression) const noexcept
SystemVerilogExpressionParser & operator=(SystemVerilogExpressionParser const &rhs)=delete
virtual bool isUnaryOperator(QStringView token) const
virtual int getBaseForSymbol(QStringView symbol) const
virtual QString findSymbolValue(QStringView symbol) const
SystemVerilogExpressionParser(SystemVerilogExpressionParser const &rhs)=delete
static unsigned int operatorPrecedence(QStringView oper)
bool isPlainValue(QStringView expression) const override
virtual QString solveUnary(QStringView operation, QString const &term) const
int baseForExpression(QStringView expression) const override
~SystemVerilogExpressionParser() override=default
The destructor.
SystemVerilogExpressionParser()=default
The constructor.
virtual bool isSymbol(QStringView expression) const