166 references to Type
CSharpSyntaxGenerator (166)
AbstractFileWriter.cs (3)
142
return field.
Type
!= "SyntaxToken" && !IsAnyList(field.
Type
) && !IsOverride(field) && !IsNew(field);
148
return getNullableAwareType(field.
Type
, optionalOrLazy: IsOptional(field) || !green, green);
Grammar\GrammarGenerator.cs (7)
329
=> field.
Type
== "bool" ? new Production("") :
330
field.
Type
== "CSharpSyntaxNode" ? RuleReference(field.Kinds.Single().Name + "Syntax") :
331
field.
Type
.StartsWith("SeparatedSyntaxList") ? HandleSeparatedList(field, field.
Type
[("SeparatedSyntaxList".Length + 1)..^1]) :
332
field.
Type
.StartsWith("SyntaxList") ? HandleList(field, field.
Type
[("SyntaxList".Length + 1)..^1]) :
333
field.IsToken ? HandleTokenField(field) : RuleReference(field.
Type
);
Model\Field.cs (1)
74
public bool IsToken =>
Type
== "SyntaxToken";
SignatureWriter.cs (6)
70
if (IsNodeOrNodeList(field.
Type
))
72
_writer.WriteLine(" public abstract {0}{1} {2} {{ get; }}", "", field.
Type
, field.Name);
85
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
86
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
91
_writer.WriteLine(" public {0}{1}{2} {3} {{ get; }}", "", "", field.
Type
, field.Name);
97
_writer.WriteLine(" public {0}{1}{2} {3} {{ get; }}", "", "", field.
Type
, field.Name);
SourceWriter.cs (124)
186
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
187
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
191
if (IsNodeOrNodeList(field.
Type
))
196
if (IsSeparatedNodeList(field.
Type
) ||
197
IsNodeList(field.
Type
))
199
WriteLine($"public abstract {(IsNew(field) ? "new " : "")}CoreSyntax.{field.
Type
} {field.Name} {{ get; }}");
213
WriteLine($"public abstract {(IsNew(field) ? "new " : "")}{field.
Type
} {field.Name} {{ get; }}");
225
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
226
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
236
WriteLine($"internal readonly {field.
Type
} {CamelCase(field.Name)};");
281
if (IsNodeList(field.
Type
))
283
var type = $"CoreSyntax.{field.
Type
}";
286
else if (IsSeparatedNodeList(field.
Type
))
288
var type = $"CoreSyntax.{field.
Type
}";
291
else if (field.
Type
== "SyntaxNodeOrTokenList")
305
WriteLine($"public {OverrideOrNewModifier(field)}{field.
Type
} {field.Name} => this.{CamelCase(field.Name)};");
360
Write($", {field.
Type
} {CamelCase(field.Name)}");
376
if (IsAnyList(field.
Type
) || IsOptional(field))
457
f.
Type
== "SyntaxNodeOrTokenList" ? "CoreSyntax.SyntaxList<CSharpSyntaxNode>" :
458
f.
Type
== "SyntaxTokenList" ? "CoreSyntax.SyntaxList<SyntaxToken>" :
459
IsNodeList(f.
Type
) ? "CoreSyntax." + f.
Type
:
460
IsSeparatedNodeList(f.
Type
) ? "CoreSyntax." + f.
Type
:
461
f.
Type
;
472
if (IsDerivedOrListOfDerived("SyntaxNode", field.
Type
) || IsDerivedOrListOfDerived("SyntaxToken", field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
514
var nodeFields = node.Fields.Where(nd => IsNodeOrNodeList(nd.
Type
)).ToList();
531
if (IsAnyList(f.
Type
))
533
else if (IsNode(f.
Type
))
534
return $"({f.
Type
})Visit(node.{f.Name})";
585
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
586
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
613
if (!IsAnyList(field.
Type
) && !IsOptional(field))
617
if (field.
Type
== "SyntaxToken" && field.Kinds != null && field.Kinds.Count > 0)
729
var type = f.
Type
switch
732
_ when IsSeparatedNodeList(f.
Type
) || IsNodeList(f.
Type
) => $"CoreSyntax.{f.
Type
}",
745
f.
Type
== "SyntaxList<SyntaxToken>" || IsAnyList(f.
Type
)
765
? an.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList()
767
? nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList()
785
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
790
if (IsNodeOrNodeList(field.
Type
))
801
if (IsAnyList(field.
Type
))
803
var argType = GetElementType(field.
Type
);
815
if (IsAnyList(referencedNodeField.
Type
))
817
var argType = GetElementType(referencedNodeField.
Type
);
834
WriteLine($"{"public"} abstract {(IsNew(field) ? "new " : "")}{field.
Type
} {field.Name} {{ get; }}");
853
if (IsAnyList(baseField.
Type
))
855
var argType = GetElementType(baseField.
Type
);
867
if (IsAnyList(referencedNodeField.
Type
))
869
var argType = GetElementType(referencedNodeField.
Type
);
900
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
901
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
905
if (field.
Type
is not "SyntaxToken"
908
if (IsSeparatedNodeList(field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
945
if (field.
Type
== "SyntaxToken")
966
else if (field.
Type
== "SyntaxList<SyntaxToken>")
985
if (IsNodeList(field.
Type
))
987
WriteLine($" => new {field.
Type
}(GetRed(ref this.{CamelCase(field.Name)}, {i}));");
989
else if (IsSeparatedNodeList(field.
Type
))
997
WriteLine($"return red != null ? new {field.
Type
}(red, {GetChildIndex(i)}) : default;");
1001
else if (field.
Type
== "SyntaxNodeOrTokenList")
1025
WriteLine($"{"public"} {OverrideOrNewModifier(field)}{field.
Type
} {field.Name} => ((InternalSyntax.{node.Name})this.Green).{field.Name};");
1034
.Where(t => t.field.
Type
is not "SyntaxToken" and not "SyntaxList<SyntaxToken>");
1080
.Where(t => t.field.
Type
is not "SyntaxToken" and not "SyntaxList<SyntaxToken>");
1122
if (field.
Type
== "SyntaxList<SyntaxToken>")
1125
if (IsOptional(field) && IsNode(field.
Type
) && field.
Type
!= "SyntaxToken")
1126
return field.
Type
+ "?";
1128
return field.
Type
;
1191
if (IsDerivedOrListOfDerived("SyntaxNode", field.
Type
) || IsDerivedOrListOfDerived("SyntaxToken", field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
1236
if (baseField.
Type
!= "SyntaxToken" && IsOptional(baseField) && !IsOptional(field))
1288
if (IsAnyList(field.
Type
))
1306
if (IsAnyList(referencedNodeField.
Type
))
1323
Node referencedNode = GetNode(field.
Type
);
1334
var argType = GetElementType(field.
Type
);
1342
var baseArgType = GetElementType(baseField.
Type
);
1354
var argType = GetElementType(referencedNodeField.
Type
);
1413
if (IsNodeOrNodeList(f.
Type
))
1415
if (IsAnyList(f.
Type
))
1417
else if (f.
Type
== "SyntaxToken")
1462
return field.
Type
== "SyntaxToken"
1469
var referencedNode = GetNode(field.
Type
);
1475
return (!IsOptional(field) && !IsAnyList(field.
Type
) && !CanBeAutoCreated(node, field)) || IsValueField(field);
1480
return !IsNodeOrNodeList(field.
Type
);
1509
if (IsOptional(field) || CanBeAutoCreated(nd, field) || IsAnyList(field.
Type
))
1554
if (field.
Type
== "SyntaxToken")
1582
else if (!IsAnyList(field.
Type
) && !IsOptional(field))
1593
if (f.
Type
== "SyntaxToken")
1601
else if (f.
Type
== "SyntaxList<SyntaxToken>")
1603
else if (IsNodeList(f.
Type
))
1604
return $"{CamelCase(f.Name)}.Node.ToGreenList<Syntax.InternalSyntax.{GetElementType(f.
Type
)}>()";
1605
else if (IsSeparatedNodeList(f.
Type
))
1606
return $"{CamelCase(f.Name)}.Node.ToGreenSeparatedList<Syntax.InternalSyntax.{GetElementType(f.
Type
)}>()";
1607
else if (f.
Type
== "SyntaxNodeOrTokenList")
1610
return $"{CamelCase(f.Name)} == null ? null : (Syntax.InternalSyntax.{f.
Type
}){CamelCase(f.Name)}.Green";
1612
return $"(Syntax.InternalSyntax.{f.
Type
}){CamelCase(f.Name)}.Green";
1630
if (field.
Type
== "SyntaxList<SyntaxToken>")
1632
if (IsOptional(field) && IsNode(field.
Type
) && field.
Type
!= "SyntaxToken")
1633
return field.
Type
+ "?";
1634
return field.
Type
;
1641
if (IsOptional(field) || IsAnyList(field.
Type
))
1646
else if (field.
Type
== "SyntaxToken")
1660
var referencedNode = GetNode(field.
Type
);
1670
if (field.
Type
== "SyntaxToken" && CanBeAutoCreated(nd, field) && field.Kinds.Count > 1)
1735
int listCount = nd.Fields.Count(f => IsAnyNodeList(f.
Type
) && !IsAttributeOrModifiersList(f));
1738
return nd.Fields.First(f => IsAnyNodeList(f.
Type
) && !IsAttributeOrModifiersList(f));
1743
int nodeCount = nd.Fields.Count(f => IsNode(f.
Type
) && f.
Type
!= "SyntaxToken");
1746
return nd.Fields.First(f => IsNode(f.
Type
) && f.
Type
!= "SyntaxToken");
1821
if (IsNode(f.
Type
) && !IsOptional(f) && f.
Type
!= "SyntaxToken")
1846
if (IsOptional(f) || IsAnyList(f.
Type
))
1871
return field.
Type
== "SyntaxToken" && field.Kinds != null && field.Kinds.Count == 1 && field.Kinds[0].Name == "IdentifierToken";
1876
return field.
Type
== "IdentifierNameSyntax";
TestWriter.cs (24)
97
var valueFields = node.Fields.Where(n => !IsNodeOrNodeList(n.
Type
));
98
var nodeFields = node.Fields.Where(n => IsNodeOrNodeList(n.
Type
));
135
Write($"default({field.
Type
})");
138
else if (IsAnyList(field.
Type
))
143
typeName = internalNamespace + field.
Type
.Replace("<", "<" + csharpNamespace);
147
typeName = (field.
Type
== "SyntaxList<SyntaxToken>") ? "SyntaxTokenList" : field.
Type
;
151
else if (field.
Type
== "SyntaxToken")
177
else if (field.
Type
== "CSharpSyntaxNode")
184
var type = field.
Type
;
206
Write($"new {field.
Type
}()");
229
var valueFields = node.Fields.Where(n => !IsNodeOrNodeList(n.
Type
));
230
var nodeFields = node.Fields.Where(n => IsNodeOrNodeList(n.
Type
));
249
if (!isGreen && field.
Type
== "SyntaxToken")
258
else if (field.
Type
== "SyntaxToken")
272
if (field.
Type
== "SyntaxToken")
277
field.
Type
== "SyntaxTokenList" ||
278
field.
Type
.StartsWith("SyntaxList<") ||
279
field.
Type
.StartsWith("SeparatedSyntaxList<"))
297
WriteLine($"Assert.Equal(new {field.
Type
}(), node.{field.Name});");
339
var valueFields = node.Fields.Where(n => !IsNodeOrNodeList(n.
Type
));
340
var nodeFields = node.Fields.Where(n => IsNodeOrNodeList(n.
Type
));
367
var valueFields = node.Fields.Where(n => !IsNodeOrNodeList(n.
Type
));
368
var nodeFields = node.Fields.Where(n => IsNodeOrNodeList(n.
Type
));
TreeFlattening.cs (1)
36
if (makeOptional && !AbstractFileWriter.IsAnyNodeList(field.
Type
))