VapourSynth-llvmexpr
Loading...
Searching...
No Matches
Builtins.hpp
Go to the documentation of this file.
1
19
20#ifndef LLVMEXPR_FRONTEND_INFIX2POSTFIX_BUILTINS_HPP
21#define LLVMEXPR_FRONTEND_INFIX2POSTFIX_BUILTINS_HPP
22
23#include "AST.hpp"
24#include "CodeGenerator.hpp"
25#include "types.hpp"
26
27#include <functional>
28#include <map>
29#include <optional>
30#include <string>
31#include <vector>
32
33namespace infix2postfix {
34
35struct CallExpr; // Forward declaration
36
38 std::string name;
39 int arity;
40 std::optional<Mode> mode_restriction;
41 std::vector<Type> param_types;
42 std::function<PostfixBuilder(CodeGenerator*, const CallExpr&)>
43 special_handler = nullptr;
44 bool returns_value = true;
45};
46
47const std::map<std::string, std::vector<BuiltinFunction>>&
49
50} // namespace infix2postfix
51
52#endif // LLVMEXPR_FRONTEND_INFIX2POSTFIX_BUILTINS_HPP
const std::map< std::string, std::vector< BuiltinFunction > > & get_builtin_functions()
Definition Builtins.cpp:400
std::vector< Type > param_types
Definition Builtins.hpp:41
std::optional< Mode > mode_restriction
Definition Builtins.hpp:40
std::function< PostfixBuilder(CodeGenerator *, const CallExpr &)> special_handler
Definition Builtins.hpp:43