ArkScript
A small, lisp-inspired, functional scripting language
ValTableElem.cpp
Go to the documentation of this file.
1
#include <
Ark/Compiler/ValTableElem.hpp
>
2
3
namespace
Ark::internal
4
{
5
ValTableElem::ValTableElem
(
const
Node
& node)
noexcept
6
{
7
if
(node.nodeType() ==
NodeType::Number
)
8
{
9
value = node.number();
10
type =
ValTableElemType::Number
;
11
}
12
else
if
(node.nodeType() ==
NodeType::String
)
13
{
14
value = node.string();
15
type =
ValTableElemType::String
;
16
}
17
}
18
19
ValTableElem::ValTableElem
(
const
double
n) noexcept :
20
value(n),
21
type(
ValTableElemType::Number
)
22
{}
23
24
ValTableElem::ValTableElem
(
const
std::string& str) noexcept :
25
value(str),
26
type(
ValTableElemType::String
)
27
{}
28
29
ValTableElem::ValTableElem
(std::size_t page) noexcept :
30
value(page),
31
type(
ValTableElemType::PageAddr
)
32
{}
33
34
bool
ValTableElem::operator==
(
const
ValTableElem
& A)
const
noexcept
35
{
36
return
A.value == value && A.type == type;
37
}
38
}
ValTableElem.hpp
The basic value type handled by the compiler.
Ark::internal::Node
A node of an Abstract Syntax Tree for ArkScript.
Definition
Node.hpp:32
Ark::internal
Definition
Builtins.hpp:26
Ark::internal::NodeType::String
@ String
Ark::internal::NodeType::Number
@ Number
Ark::internal::ValTableElemType::String
@ String
Ark::internal::ValTableElemType::PageAddr
@ PageAddr
Ark::internal::ValTableElemType::Number
@ Number
Ark::internal::ValTableElem
A Compiler Value class helper to handle multiple types.
Definition
ValTableElem.hpp:37
Ark::internal::ValTableElem::operator==
bool operator==(const ValTableElem &A) const noexcept
Definition
ValTableElem.cpp:34
Ark::internal::ValTableElem::ValTableElem
ValTableElem(const Node &node) noexcept
Definition
ValTableElem.cpp:5
src
arkreactor
Compiler
ValTableElem.cpp
Generated on Thu Mar 19 2026 06:48:16 for ArkScript by
1.12.0