-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathASDL.txt
179 lines (165 loc) · 7.98 KB
/
ASDL.txt
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
IElement
= Element
| ElementCollection
Element
= Expression()
| Program(Block body)
| Parameter(AnnotationCollection annotations, ModifierCollection modifiers, Type type, IdentifierCollection names, IExpression defaultValue, IExpression annotationExpression)
| Modifier(string name)
| GenericParameter(Type type, TypeConstrainCollection constrains, ModifierCollection modifiers)
| GenericArgument(IExpression type, ModifierCollection modifiers, TypeConstrainCollection constrains)
| Comment(string comment)
| Case(IExpression condtion, Block body)
| Argument(IExpression value, Identifier target, ModifierCollection modifiers)
| Annotation(IExpression name, ArgumentCollection arguments)
| TypeConstrain()
| PropertyDefinitionPart(AnnotationCollection annotations, ModifierCollection modifiers, Block body)
| VariableDefinition(AnnotationCollection annotations, ModifierCollection modifiers, Type type, Identifier name, IExpression initialValue, ArgumentCollection arguments, IntegerLiteral bitField, Block body)
| LinqQuery()
| OrderByKey(IExpression expression, bool ascending)
| BinaryOperator(string sign, BinaryOperatorKind kind)
| UnaryOperator(string sign, UnaryOperatorKind kind)
TypeConstrain
= ValueConstrain(Type type)
| SuperConstrain(Type type)
| ReferenceConstrain(Type type)
| ImplementsConstrain(Type type)
| ExtendConstrain(Type type)
| EigenConstrain(Type type)
| ConstructorConstrain(Type type)
ElementCollection
= AnnotationCollection(IList<Annotation> elements)
| ArgumentCollection(IList<Argument> elements)
| CaseCollection(IList <Case> elements)
| CatchCollection(IList <Catch> elements)
| ExpressionCollection(IList<Expression> elements)
| GenericArgumentCollection(IList<GenericArgument> elements)
| GenericParameterCollection(IList<GenericParameter> elements)
| IdentifierCollection(IList<Identifier> elements)
| ModifierCollection(IList<Modifier> elements)
| OrderByKeyCollection(IList<OrderByKey> elements)
| ParameterCollection(IList<Parameter> elements)
| TypeCollection(IList <Type> elements)
| TypeConstrainCollection(IList<TypeConstrain> elements)
Expression
= Call(IExpression target, ArgumentCollection args, GenericArgumentCollection genericArguments, Proc proc)
| Cast(Type type, IExpression createExpression)
| Indexer(IExpression current, ArgumentCollection create)
| KeyValue(IExpression key, IExpression value)
| Label(string name)
| New(IExpression target, ArgumentCollection arguments, GenericArgumentCollection genericArguments, ArrayLiteral initialValues, Block body)
| Property(string delimiter, IExpression owner, IExpression name)
| Slice(IExpression initializer, IExpression condition, IExpression step)
| Switch(IExpression value, CaseCollection cases)
| Catch(TypeCollection types, IExpression assign, Block body, AnnotationCollection annotations, ModifierCollection modifiers)
| If(IExpression condition, Block body, Block falseBody)
| Lambda(Identifier name, ParameterCollection parameters, Block body)
| Proc(ParameterCollection parameters, Block body)
| Try(Block body, CatchCollection catches, Block elseBody, Block finallyBody)
| ConstructorLike<TSelf>(Block body, AnnotationCollection annotations, ModifierCollection modifiers, ParameterCollection parameters, GenericParameterCollection genericParameters, TypeCollection throws)
| DoWhile(IExpression condition, Block body, Block falseBody)
| For(IExpression initializer, IExpression condition, IExpression step, Block body)
| Foreach(IExpression element, IExpression set, Block body, Block elseBody)
| While(IExpression condition, Block body, Block elseBody)
| Fix(IExpression value, Block body)
| Synchronized(IExpression value, Block body)
| Using(ExpressionCollection expressions, Block body)
| With(IExpression value, Block body)
| ComprehensionBase()
| MapComprehension(KeyValue element, ExpressionCollection generator)
| ClassLikeDefinition(AnnotationCollection annotations, ModifierCollection modifiers, IExpression name, GenericParameterCollection genericParameters, TypeConstrainCollection constrains, Block body)
| EventDefinition(AnnotationCollection annotations, ModifierCollection modifiers, Type type, Identifier name, ParameterCollection parameters, PropertyDefinitionPart adder, PropertyDefinitionPart remover)
| FunctionDefinition(AnnotationCollection annotations, ModifierCollection modifiers, Type type, GenericParameterCollection genericParameters, Identifier name, ParameterCollection parameters, TypeCollection throws, Block body, IExpression annotationExpression)
| PropertyDefinition(AnnotationCollection annotations, ModifierCollection modifiers, Type type, Identifier name, ParameterCollection parameters, PropertyDefinitionPart getter, PropertyDefinitionPart setter)
| Identifier(string name)
| Break(IExpression value)
| Continue(IExpression value)
| Goto(Identifier value)
| Redo()
| Retry()
| Return(IExpression value)
| Throw(IExpression value, IExpression data, IExpression trace)
| YieldBreak(IExpression value)
| YieldReturn(IExpression value)
| LinqExpression()
| ArrayLiteral()
| IterableLiteral()
| ListLiteral()
| MapLiteral()
| SetLiteral()
| TupleLiteral()
| Literal()
| Range(IExpression min, IExpression max)
| BinaryExpression(IExpression leftHandSide, BinaryOperator binaryOperator, IExpression rightHandSide)
| TernaryExpression(IExpression condition, IExpression trueExpression, IExpression falseExpression)
| UnaryExpression(IExpression operand, UnaryOperator unaryOperator)
| Alias(IExpression value, IExpression alias)
| Assert(IExpression value, IExpression message)
| Default(Type type)
| Defined(IExpression value)
| Delete(IExpression value)
| Exec(IExpression value)
| Import(IExpression name, string alias, IExpression member, ModifierCollection modifiers)
| Pass(IExpression value)
| Print(IExpression value)
| PrintChevron(IExpression value)
| Sizeof(IExpression expression)
| StringConversion(IExpression value)
| Typeof(IExpression type)
| Type(IExpression basicExpression)
| Block(IList<IUnifiedExpress> elements)
| VariableDefinitionList(IList<VariableDefinition> elements)
ClassLikeDefinition
= AnnotationDefinition()
| ClassDefinition()
| EigenClassDefinition()
| EnumDefinition()
| InterfaceDefinition()
| ModuleDefinition()
| NamespaceDefinition()
| StructDefinition()
| UnionDefinition()
ConstructorLike
= Constructor()
| InstanceInitializer()
| StaticInitializer()
ComprehensionBase
= IterableComprehension(IExpression element, ExpressionCollection generator)
| ListComprehension(IExpression element, ExpressionCollection generator)
| SetComprehension(IExpression element, ExpressionCollection generator)
Identifier
= LabelIdentifier(string name)
| SuperIdentifier(string name)
| ThisIdentifier(string name)
| TypeIdentifier(string name)
| VariableIdentifier(string name)
| VaueIdentifier(string name)
LinqQuery
= FromQuery(VariableIdentifier receiver, IExpression source, Type receiverType)
| GroupByQuery(IExpression element, IExpression key, VariableIdentifier receiver)
| JoinQuery(VariableIdentifier receiver, IExpression joinSource, IExpression firstEqualsKey, IExpression secondEqualsKey)
| LetQuery(VariableIdentifier variable, IExpression expression)
| OrderByQuery(OrderByKeyCollection keys)
| SelectQuery(IExpression expression, VariableIdentifier receiver)
| WhereQuery(IExpression condition)
Literal
= NullLiteral()
| TypedLiteral()
TypedLiteral
= IntegerLiteral(BigInteger value)
| BooleanLiteral(bool value)
| CharLiteral(string value)
| FractionLiteral(double value, FractionLiteralKind kind)
| RegularExpressionLiteral(string value, string options)
| StringLiteral(string value)
| SymbolLiteral(string value)
IntegerLiteral
= BigIntLiteral() | Int16Literal() | Int31Literal() | Int32Literal()
| Int64Literal() | Int8Literal() | UInt16Literal() | UInt31Literal()
| UInt32Literal() | UInt64Literal() | UInt8Literal()
Type
= BasicType()
| WrapType(Type type)
WrapType
= ArrayType() | ConstType() | GenericType() | PointerType()
| ReferenceType() | StructType() | UnionType() | VolatileType()