LeviLamina
Loading...
Searching...
No Matches
ExpressionNode.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/platform/brstd/bitset.h"
8#include "mc/platform/brstd/function_ref.h"
9#include "mc/util/MolangCompileResult.h"
10#include "mc/util/molang/ExpressionOp.h"
11
12// auto generated forward declare list
13// clang-format off
14class HashedString;
15class RenderParams;
16struct MolangEvalParams;
18struct MolangScriptArg;
19namespace Json { class Value; }
20namespace Molang::details { class Program; }
21namespace Molang::details { struct MolangProgramBuildState; }
22// clang-format on
23
24namespace Molang::details {
25
27public:
28 // member variables
29 // NOLINTBEGIN
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
40
41public:
42 // member functions
43 // NOLINTBEGIN
45
47
48 MCNAPI bool _buildTree(::brstd::bitset<78, uint64> const& usedTokenFlags, ::MolangVersion molangVersion);
49
50 MCNAPI bool _checkAllOperationsAreValid() const;
51
52 MCNAPI bool _optimize(::MolangVersion version, ::RenderParams& outRenderParams, int recursionDepth);
53
54 MCNAPI bool _processBinaryExpressions(::brstd::function_ref<bool(::ExpressionOp)> predicate);
55
57
58 MCNAPI bool _readNextToken(char const*& expression, ::MolangParseConfig const& parseConfig);
59
60 MCNAPI bool _validate(::MolangVersion version, bool inLoop, int inAssignmentLHSDepth) const;
61
62 MCNAPI bool _validateChildrenAreNumerical(::MolangVersion version) const;
63
64 MCNAPI bool areAllChildrenEqual() const;
65
66 MCNAPI void clear();
67
68 MCNAPI bool findClosingOp(uint64& i, ::ExpressionOp endOp) const;
69
70 MCNAPI uint64 getTreeHash(bool sideEffectsReturnZero) const;
71
72 MCNAPI bool getTreeString(::std::string& dest, bool sideEffectsReturnZero) const;
73
74 MCNAPI bool hasMadd() const;
75
76 MCNAPI bool isValid() const;
77
78 MCNAPI ::nonstd::expected<::Molang::details::Program, ::MolangCompileResult> link(::MolangVersion version);
79
80 MCNAPI void moveConstantChildToValueIfFloatOrHashType(int firstConstChildIndex);
81
82 MCNAPI ::Molang::details::ExpressionNode& operator=(::Molang::details::ExpressionNode&&);
83
84 MCNAPI ::Molang::details::ExpressionNode& operator=(::Molang::details::ExpressionNode const&);
85
86 MCNAPI ::Molang::details::ExpressionNode& operator=(float value);
87
88 MCNAPI bool operator==(::Molang::details::ExpressionNode const& rhs) const;
89
91
92 MCNAPI bool parse(
93 ::std::string_view inputExpression,
94 ::MolangParseConfig const& config,
95 ::brstd::bitset<78, uint64>& usedTokenFlags
96 );
97
98 MCNAPI bool
99 parse(::Json::Value const& value, ::MolangParseConfig const& config, ::brstd::bitset<78, uint64>& usedTokenFlags);
100
101 MCNAPI bool processArrays();
102
103 MCNAPI bool processBinaryExpression(::ExpressionOp op);
104
105 MCNAPI bool processMathFuncs();
106
108
110
112
113 MCNAPI bool processSections();
114
115 MCNAPI bool processSemicolons();
116
117 MCNAPI bool processUnaryExpression(::ExpressionOp op);
118
119 MCNAPI void replaceArrayVariables(::std::unordered_map<::HashedString, ::Molang::details::ExpressionNode>& dataMap);
120
121 MCNAPI void validateArrayVariables() const;
122
124 // NOLINTEND
125
126public:
127 // static functions
128 // NOLINTBEGIN
129 MCNAPI static ::MolangCompileResult _buildProgram(
132 ::MolangVersion molangVersion
133 );
134
135 MCNAPI static ::MolangScriptArg* _getOrCreateReferencedMemberVariableScriptArg(
136 ::MolangEvalParams& state,
137 ::Molang::details::ExpressionNode const& memberAccessorNode
138 );
139
140 MCNAPI static ::std::optional<::MolangScriptArg>
141 _getQueryFunctionAccessor(::std::string const& functionName, ::MolangParseConfig const& parseConfig);
142
143 MCNAPI static ::MolangScriptArg const* _getReferencedMemberVariableScriptArg(
144 ::MolangEvalParams& state,
145 ::Molang::details::ExpressionNode const& memberAccessorNode
146 );
147
149 ::MolangEvalParams& state,
150 ::Molang::details::ExpressionNode const& memberAccessorNode,
151 ::MolangScriptArg const& value
152 );
153
154 MCNAPI static char const* getOpFriendlyName(::ExpressionOp op);
155 // NOLINTEND
156
157public:
158 // constructor thunks
159 // NOLINTBEGIN
161
163 // NOLINTEND
164
165public:
166 // destructor thunk
167 // NOLINTBEGIN
168 MCNAPI void $dtor();
169 // NOLINTEND
170};
171
172} // namespace Molang::details
Definition HashedString.h:5
Definition Value.h:16
Definition ExpressionNode.h:26
MCAPI ExpressionNode(::Molang::details::ExpressionNode &&)
MCAPI bool _processTernaryAndConditionalExpressions()
MCAPI::Molang::details::ExpressionNode & operator=(::Molang::details::ExpressionNode const &)
MCAPI ExpressionNode(::Molang::details::ExpressionNode const &)
MCAPI bool getTreeString(::std::string &dest, bool sideEffectsReturnZero) const
MCAPI ::nonstd::expected<::Molang::details::Program, ::MolangCompileResult > link(::MolangVersion version)
MCAPI bool _buildTree(::brstd::bitset< 78, uint64 > const &usedTokenFlags, ::MolangVersion molangVersion)
MCAPI void * $ctor(::Molang::details::ExpressionNode const &)
MCAPI void * $ctor(::Molang::details::ExpressionNode &&)
static MCAPI ::MolangScriptArg const * _getReferencedMemberVariableScriptArg(::MolangEvalParams &state, ::Molang::details::ExpressionNode const &memberAccessorNode)
MCAPI::Molang::details::ExpressionNode & operator=(::Molang::details::ExpressionNode &&)
MCAPI bool _checkAllOperationsAreValid() const
static MCAPI ::std::optional<::MolangScriptArg > _getQueryFunctionAccessor(::std::string const &functionName, ::MolangParseConfig const &parseConfig)
MCAPI bool _readNextToken(char const *&expression, ::MolangParseConfig const &parseConfig)
MCAPI bool areAllChildrenEqual() const
MCAPI bool _optimize(::MolangVersion version, ::RenderParams &outRenderParams, int recursionDepth)
MCAPI bool _processBinaryExpressions(::brstd::function_ref< bool(::ExpressionOp)> predicate)
static MCAPI void _writeScriptArgToMemberAccessedVariable(::MolangEvalParams &state, ::Molang::details::ExpressionNode const &memberAccessorNode, ::MolangScriptArg const &value)
MCAPI uint64 getTreeHash(bool sideEffectsReturnZero) const
MCAPI void validateArrayVariables() const
MCAPI bool operator==(::Molang::details::ExpressionNode const &rhs) const
static MCAPI ::MolangScriptArg * _getOrCreateReferencedMemberVariableScriptArg(::MolangEvalParams &state, ::Molang::details::ExpressionNode const &memberAccessorNode)
MCAPI bool processNegativesAndLogicalNots()
MCAPI void moveConstantChildToValueIfFloatOrHashType(int firstConstChildIndex)
MCAPI bool _validateChildrenAreNumerical(::MolangVersion version) const
static MCAPI ::MolangCompileResult _buildProgram(::Molang::details::MolangProgramBuildState &buildState, ::Molang::details::ExpressionNode const *node, ::MolangVersion molangVersion)
MCAPI bool processUnaryExpression(::ExpressionOp op)
MCAPI bool parse(::Json::Value const &value, ::MolangParseConfig const &config, ::brstd::bitset< 78, uint64 > &usedTokenFlags)
MCAPI::Molang::details::ExpressionNode & operator=(float value)
MCAPI bool _validate(::MolangVersion version, bool inLoop, int inAssignmentLHSDepth) const
static MCAPI char const * getOpFriendlyName(::ExpressionOp op)
MCAPI bool processBinaryExpression(::ExpressionOp op)
MCAPI bool findClosingOp(uint64 &i, ::ExpressionOp endOp) const
MCAPI bool parse(::std::string_view inputExpression, ::MolangParseConfig const &config, ::brstd::bitset< 78, uint64 > &usedTokenFlags)
MCAPI void replaceArrayVariables(::std::unordered_map<::HashedString, ::Molang::details::ExpressionNode > &dataMap)
Definition RenderParams.h:30
Definition bitset.h:8
Definition function_ref.h:60
Definition MolangEvalParams.h:18
Definition MolangParseConfig.h:14
Definition MolangScriptArg.h:33
Definition MolangProgramBuildState.h:12
Definition Alias.h:14