LeviLamina
Loading...
Searching...
No Matches
IComplexExpression.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/molang/MolangVersion.h"
7#include "mc/util/molang/ExpressionOp.h"
8
9// auto generated forward declare list
10// clang-format off
11class HashedString;
12class RenderParams;
13struct MolangScriptArg;
14namespace Json { class Value; }
15namespace Molang::details { class ExpressionNode; }
16namespace Molang::details { class SourceTree; }
17// clang-format on
18
19namespace Molang::details {
20
22public:
23 // virtual functions
24 // NOLINTBEGIN
25 virtual ~IComplexExpression() = default;
26
27 virtual ::std::unique_ptr<::Molang::details::IComplexExpression> clone() const = 0;
28
29 virtual ::MolangScriptArg const& evalGeneric(::RenderParams&) const = 0;
30
31 virtual bool isInitialized() const = 0;
32
33 virtual ::Json::Value toJson() const = 0;
34
35 virtual ::std::string getExpressionString() const = 0;
36
37 virtual ::MolangVersion getMolangVersion() const = 0;
38
39 virtual void replaceArrayVariables(::std::unordered_map<::HashedString, ::Molang::details::ExpressionNode>&) = 0;
40
41 virtual void validateArrayVariables() const = 0;
42
43 virtual bool isValid() const = 0;
44
45 virtual bool isConstantValue() const = 0;
46
47 virtual bool hasVariableAssignments() const = 0;
48
49 virtual ::ExpressionOp getOp() const = 0;
50
51 virtual bool needsToCompile() const = 0;
52
53 virtual ::std::optional<::MolangScriptArg> getValueIfConstant() const = 0;
54
55 virtual ::Molang::details::SourceTree* getSource() = 0;
56 // NOLINTEND
57
58public:
59 // virtual function thunks
60 // NOLINTBEGIN
61
62 // NOLINTEND
63};
64
65} // namespace Molang::details
Definition HashedString.h:5
Definition Value.h:16
Definition ExpressionNode.h:28
Definition IComplexExpression.h:21
Definition SourceTree.h:16
Definition RenderParams.h:30
Definition MolangScriptArg.h:33