-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathAstNodeType.cs
121 lines (108 loc) · 3.49 KB
/
AstNodeType.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.Text;
namespace Meadow.CoverageReport
{
public enum AstNodeType
{
[AstNodeTypeString("ContractDefinition")]
ContractDefinition,
[AstNodeTypeString("VariableDeclaration")]
VariableDeclaration,
[AstNodeTypeString("EventDefinition")]
EventDefinition,
[AstNodeTypeString("EnumDefinition")]
EnumDefinition,
[AstNodeTypeString("EnumValue")]
EnumValue,
[AstNodeTypeString("FunctionCall")]
FunctionCall,
[AstNodeTypeString("FunctionDefinition")]
FunctionDefinition,
[AstNodeTypeString("ModifierDefinition")]
ModifierDefinition,
[AstNodeTypeString("StructDefinition")]
StructDefinition,
[AstNodeTypeString("IfStatement")]
IfStatement,
[AstNodeTypeString("Conditional")]
Conditional,
[AstNodeTypeString("ElementaryTypeName")]
ElementaryTypeName,
[AstNodeTypeString("Literal")]
Literal,
[AstNodeTypeString("PlaceholderStatement")]
PlaceholderStatement,
[AstNodeTypeString("Assignment")]
Assignment,
[AstNodeTypeString("BinaryOperation")]
BinaryOperation,
[AstNodeTypeString("ExpressionStatement")]
ExpressionStatement,
[AstNodeTypeString("ForStatement")]
ForStatement,
[AstNodeTypeString("IndexAccess")]
IndexAccess,
[AstNodeTypeString("InlineAssembly")]
InlineAssembly,
[AstNodeTypeString("MemberAccess")]
MemberAccess,
[AstNodeTypeString("Return")]
Return,
[AstNodeTypeString("UnaryOperation")]
UnaryOperation,
[AstNodeTypeString("VariableDeclarationStatement")]
VariableDeclarationStatement,
[AstNodeTypeString("SourceUnit")]
SourceUnit,
[AstNodeTypeString("PragmaDirective")]
PragmaDirective,
[AstNodeTypeString("Block")]
Block,
[AstNodeTypeString("ParameterList")]
ParameterList,
[AstNodeTypeString("Identifier")]
Identifier,
[AstNodeTypeString("Throw")]
Throw,
[AstNodeTypeString("Mapping")]
Mapping,
[AstNodeTypeString("ArrayTypeName")]
ArrayTypeName,
[AstNodeTypeString("TupleExpression")]
TupleExpression,
[AstNodeTypeString("EmitStatement")]
EmitStatement,
[AstNodeTypeString("NewExpression")]
NewExpression,
[AstNodeTypeString("ElementaryTypeNameExpression")]
ElementaryTypeNameExpression,
[AstNodeTypeString("ModifierInvocation")]
ModifierInvocation,
[AstNodeTypeString("InheritanceSpecifier")]
InheritanceSpecifier,
[AstNodeTypeString("UserDefinedTypeName")]
UserDefinedTypeName,
[AstNodeTypeString("ImportDirective")]
ImportDirective,
None,
Other
}
[AttributeUsage(AttributeTargets.Field)]
public class AstNodeTypeStringAttribute : System.Attribute
{
#region Properties
/// <summary>
/// Potential node type strings that match to the field we are attributing to.
/// </summary>
public string[] NodeTypeStrings { get; }
#endregion
#region Constructors
public AstNodeTypeStringAttribute(params string[] nodeTypeStrings)
{
// Set our node types
NodeTypeStrings = nodeTypeStrings;
}
#endregion
}
}