GCC Code Coverage Report


Directory: ./
File: src/plugin/example.h
Date: 2023-04-27 00:55:30
Exec Total Coverage
Lines: 0 0 -%
Functions: 0 2 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 #ifndef LYTHON_PLUGIN_EXAMPLE_HEADER
2 #define LYTHON_PLUGIN_EXAMPLE_HEADER
3
4 #include "plugin/plugin.h"
5
6
7 struct ExampleVisitor: public lython::VisitorPlugin {
8 public:
9 using Super = lython::VisitorPlugin;
10
11 using StmtRet = Super::StmtRet;
12 using ExprRet = Super::ExprRet;
13 using ModRet = Super::ModRet;
14 using PatRet = Super::PatRet;
15
16 ExampleVisitor() {}
17
18 virtual ~ExampleVisitor() {}
19
20 #define TYPE_GEN(rtype) using rtype##_t = Super::rtype##_t;
21
22 #define X(name, _)
23 #define SSECTION(name)
24 #define EXPR(name, fun) TYPE_GEN(name)
25 #define STMT(name, fun) TYPE_GEN(name)
26 #define MOD(name, fun) TYPE_GEN(name)
27 #define MATCH(name, fun) TYPE_GEN(name)
28
29 NODEKIND_ENUM(X, SSECTION, EXPR, STMT, MOD, MATCH)
30
31 #undef X
32 #undef SSECTION
33 #undef EXPR
34 #undef STMT
35 #undef MOD
36 #undef MATCH
37 #undef TYPE_GEN
38
39 #define FUNCTION_GEN(name, fun, ret) ret fun(name##_t* n, int depth) override;
40
41 #define X(name, _)
42 #define SSECTION(name)
43 #define MOD(name, fun) FUNCTION_GEN(name, fun, ModRet)
44 #define EXPR(name, fun) FUNCTION_GEN(name, fun, ExprRet)
45 #define STMT(name, fun) FUNCTION_GEN(name, fun, StmtRet)
46 #define MATCH(name, fun) FUNCTION_GEN(name, fun, PatRet)
47
48 NODEKIND_ENUM(X, SSECTION, EXPR, STMT, MOD, MATCH)
49
50 #undef X
51 #undef SSECTION
52 #undef EXPR
53 #undef STMT
54 #undef MOD
55 #undef MATCH
56
57 #undef FUNCTION_GEN
58 };
59
60
61 #endif
62