VapourSynth-llvmexpr
Loading...
Searching...
No Matches
LibraryBase.hpp
Go to the documentation of this file.
1
19
20
#ifndef LLVMEXPR_FRONTEND_INFIX2POSTFIX_STDLIB_LIBRARYBASE_HPP
21
#define LLVMEXPR_FRONTEND_INFIX2POSTFIX_STDLIB_LIBRARYBASE_HPP
22
23
#include <concepts>
24
#include <cstdint>
25
#include <string_view>
26
27
namespace
infix2postfix::stdlib
{
28
29
enum class
ExportMode
: std::uint8_t {
All
,
Expr
,
SingleExpr
};
30
31
struct
ExportedFunction
{
32
std::string_view
name
;
33
int
param_count
;
34
ExportMode
mode
=
ExportMode::All
;
35
// NOLINTNEXTLINE(readability-redundant-string-init)
36
std::string_view
internal_name_override
=
""
;
37
};
38
39
template
<
typename
T>
40
concept
IsLibrary
=
requires
{
41
{ T::NAME } -> std::convertible_to<std::string_view>;
42
{ T::CODE } -> std::convertible_to<std::string_view>;
43
typename
T::dependencies;
44
{ T::EXPORTS };
45
};
46
47
}
// namespace infix2postfix::stdlib
48
49
#endif
// LLVMEXPR_FRONTEND_INFIX2POSTFIX_STDLIB_LIBRARYBASE_HPP
infix2postfix::stdlib::IsLibrary
Definition
LibraryBase.hpp:40
infix2postfix::stdlib
Definition
Algorithms.hpp:29
infix2postfix::stdlib::ExportMode
ExportMode
Definition
LibraryBase.hpp:29
infix2postfix::stdlib::ExportMode::All
@ All
Definition
LibraryBase.hpp:29
infix2postfix::stdlib::ExportMode::SingleExpr
@ SingleExpr
Definition
LibraryBase.hpp:29
infix2postfix::Expr
Definition
AST.hpp:239
infix2postfix::stdlib::ExportedFunction
Definition
LibraryBase.hpp:31
infix2postfix::stdlib::ExportedFunction::name
std::string_view name
Definition
LibraryBase.hpp:32
infix2postfix::stdlib::ExportedFunction::mode
ExportMode mode
Definition
LibraryBase.hpp:34
infix2postfix::stdlib::ExportedFunction::param_count
int param_count
User-visible name.
Definition
LibraryBase.hpp:33
infix2postfix::stdlib::ExportedFunction::internal_name_override
std::string_view internal_name_override
Definition
LibraryBase.hpp:36
llvmexpr
frontend
infix2postfix
stdlib
LibraryBase.hpp
Generated by
1.16.0