Vuo
2.3.2
compiler
VuoCompilerModule.hh
Go to the documentation of this file.
1
10
#pragma once
11
12
#include "
VuoCompilerCompatibility.hh
"
13
14
class
VuoCompilerBitcodeParser
;
15
class
VuoModule
;
16
22
class
VuoCompilerModule
23
{
24
private
:
25
VuoModule
*base;
26
bool
builtIn;
27
string
modulePath;
28
29
static
bool
isModule(Module *
module
,
string
moduleKey);
30
31
protected
:
32
struct
json_object
*
moduleDetails
;
33
set<string>
dependencies
;
34
VuoCompilerCompatibility
compatibleTargets
;
35
Module *
module
;
36
VuoCompilerBitcodeParser
*
parser
;
37
38
VuoCompilerModule
(
VuoModule
*base, Module *
module
);
39
40
virtual
void
parse
(
void
);
41
virtual
void
parseMetadata
(
void
);
42
virtual
set<string>
globalsToRename
(
void
);
43
string
nameForGlobal
(
string
genericGlobalVarOrFuncName);
44
static
string
nameForGlobal
(
string
nameBeforeCompilation,
string
moduleKey);
45
static
bool
hasOriginalOrMangledGlobal
(
string
nameBeforeCompilation, Module *
module
,
string
moduleKey);
46
void
renameGlobalVarsAndFuncs
(
void
);
47
48
friend
class
TestVuoCompilerModule;
49
friend
class
TestModules;
50
51
public
:
52
static
VuoCompilerModule
*
newModule
(
const
string
&moduleKey, Module *
module
,
const
string
&modulePath,
const
VuoCompilerCompatibility
&moduleCompatibility);
53
virtual
~VuoCompilerModule
(
void
);
54
55
VuoCompilerCompatibility
parseCompatibility
(
json_object
*o,
string
key);
56
static
Function *
declareFunctionInModule
(Module *
module
, Function *
function
);
57
virtual
set<string>
getDependencies
(
void
);
58
virtual
string
getDependencyName
(
void
);
59
VuoCompilerCompatibility
getCompatibleTargets
(
void
);
60
Module *
getModule
(
void
);
61
VuoModule
*
getPseudoBase
(
void
);
62
bool
isBuiltIn
(
void
);
63
void
setBuiltIn
(
bool
builtIn);
64
string
getModulePath
(
void
);
65
66
private
:
67
#pragma clang diagnostic push
68
#pragma clang diagnostic ignored "-Wunused-private-field"
69
void
*p;
70
#pragma clang diagnostic pop
71
#if VUO_PRO
72
#include "pro/VuoCompilerModule_Pro.hh"
73
#endif
74
};
Generated on Sat Jun 19 2021 10:17:42 for Vuo by
1.9.1