chigraph  master
Systems programming language written for beginners in LLVM
FunctionValidator.hpp
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #ifndef CHI_FUNCTION_VALIDATOR_HPP
7 #define CHI_FUNCTION_VALIDATOR_HPP
8 
9 #include "chi/Fwd.hpp"
10 
11 namespace chi {
12 
17 
22 Result validateFunction(const GraphFunction& func);
23 
27 Result validateFunctionConnectionsAreTwoWay(const GraphFunction& func);
28 
32 Result validateFunctionNodeInputs(const GraphFunction& func);
33 
37 Result validateFunctionExecOutputs(const GraphFunction& func);
38 
42 Result validateFunctionEntryType(const GraphFunction& func);
43 
47 Result validateFunctionExitTypes(const GraphFunction& func);
48 
52 Result validateFunctionMainSignature(const GraphFunction& func);
53 
55 } // namespace chi
56 
57 #endif // CHI_FUNCTION_VALIDATOR_HPP
Forward declares all the chigraph data types.
Result validateFunctionExecOutputs(const GraphFunction &func)
Make sure nodes have an output connection.
Result validateFunctionEntryType(const GraphFunction &func)
Make sure the function entry type aligns with the function type.
Result validateFunctionConnectionsAreTwoWay(const GraphFunction &func)
Make sure that connections connect back and that they have the same types.
Result validateFunction(const GraphFunction &func)
Validate that a function is compilable.
Result validateFunctionNodeInputs(const GraphFunction &func)
Make sure that nodes are called before their outputs are used.
Result validateFunctionMainSignature(const GraphFunction &func)
Make sure it's a valid signautre for a main function.
Result validateFunctionExitTypes(const GraphFunction &func)
Make sure the function exit types align with the function type.
The namespace where chigraph lives.