7#ifndef PRISM_NODE_TYPE_HPP
8#define PRISM_NODE_TYPE_HPP
10#include "prism/compiler/cplusplus.hpp"
28template <
typename T,
typename =
void>
struct is_node : std::false_type {};
31template <
typename T>
struct is_node<T, std::void_t<decltype(node_type<T>::value)>> : std::true_type {};
The abstract syntax tree.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition ast.h:1076
constexpr bool is_node_v
Whether the given type is one of the node structs declared in ast.h.
Definition node_type.hpp:34
constexpr pm_node_type_t node_type_v
The node type of the given node struct.
Definition node_type.hpp:25
Whether the given type is one of the node structs declared in ast.h.
Definition node_type.hpp:28
Maps a node struct to its node type, as in node_type<pm_call_node_t>::value being PM_CALL_NODE.
Definition node_type.hpp:22