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)
153
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
154
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
158
if (IsNodeOrNodeList(field.
Type
))
163
if (IsSeparatedNodeList(field.
Type
) ||
164
IsNodeList(field.
Type
))
166
WriteLine($"public abstract {(IsNew(field) ? "new " : "")}CoreSyntax.{field.
Type
} {field.Name} {{ get; }}");
180
WriteLine($"public abstract {(IsNew(field) ? "new " : "")}{field.
Type
} {field.Name} {{ get; }}");
192
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
193
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
203
WriteLine($"internal readonly {field.
Type
} {CamelCase(field.Name)};");
248
if (IsNodeList(field.
Type
))
250
var type = $"CoreSyntax.{field.
Type
}";
253
else if (IsSeparatedNodeList(field.
Type
))
255
var type = $"CoreSyntax.{field.
Type
}";
258
else if (field.
Type
== "SyntaxNodeOrTokenList")
272
WriteLine($"public {OverrideOrNewModifier(field)}{field.
Type
} {field.Name} => this.{CamelCase(field.Name)};");
327
Write($", {field.
Type
} {CamelCase(field.Name)}");
343
if (IsAnyList(field.
Type
) || IsOptional(field))
424
f.
Type
== "SyntaxNodeOrTokenList" ? "CoreSyntax.SyntaxList<CSharpSyntaxNode>" :
425
f.
Type
== "SyntaxTokenList" ? "CoreSyntax.SyntaxList<SyntaxToken>" :
426
IsNodeList(f.
Type
) ? "CoreSyntax." + f.
Type
:
427
IsSeparatedNodeList(f.
Type
) ? "CoreSyntax." + f.
Type
:
428
f.
Type
;
439
if (IsDerivedOrListOfDerived("SyntaxNode", field.
Type
) || IsDerivedOrListOfDerived("SyntaxToken", field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
481
var nodeFields = node.Fields.Where(nd => IsNodeOrNodeList(nd.
Type
)).ToList();
498
if (IsAnyList(f.
Type
))
500
else if (IsNode(f.
Type
))
501
return $"({f.
Type
})Visit(node.{f.Name})";
552
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
553
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
580
if (!IsAnyList(field.
Type
) && !IsOptional(field))
584
if (field.
Type
== "SyntaxToken" && field.Kinds != null && field.Kinds.Count > 0)
696
var type = f.
Type
switch
699
_ when IsSeparatedNodeList(f.
Type
) || IsNodeList(f.
Type
) => $"CoreSyntax.{f.
Type
}",
712
f.
Type
== "SyntaxList<SyntaxToken>" || IsAnyList(f.
Type
)
732
? an.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList()
734
? nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList()
752
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
757
if (IsNodeOrNodeList(field.
Type
))
768
if (IsAnyList(field.
Type
))
770
var argType = GetElementType(field.
Type
);
782
if (IsAnyList(referencedNodeField.
Type
))
784
var argType = GetElementType(referencedNodeField.
Type
);
801
WriteLine($"{"public"} abstract {(IsNew(field) ? "new " : "")}{field.
Type
} {field.Name} {{ get; }}");
820
if (IsAnyList(baseField.
Type
))
822
var argType = GetElementType(baseField.
Type
);
834
if (IsAnyList(referencedNodeField.
Type
))
836
var argType = GetElementType(referencedNodeField.
Type
);
867
var valueFields = nd.Fields.Where(n => !IsNodeOrNodeList(n.
Type
)).ToList();
868
var nodeFields = nd.Fields.Where(n => IsNodeOrNodeList(n.
Type
)).ToList();
872
if (field.
Type
is not "SyntaxToken"
875
if (IsSeparatedNodeList(field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
912
if (field.
Type
== "SyntaxToken")
933
else if (field.
Type
== "SyntaxList<SyntaxToken>")
952
if (IsNodeList(field.
Type
))
954
WriteLine($" => new {field.
Type
}(GetRed(ref this.{CamelCase(field.Name)}, {i}));");
956
else if (IsSeparatedNodeList(field.
Type
))
964
WriteLine($"return red != null ? new {field.
Type
}(red, {GetChildIndex(i)}) : default;");
968
else if (field.
Type
== "SyntaxNodeOrTokenList")
992
WriteLine($"{"public"} {OverrideOrNewModifier(field)}{field.
Type
} {field.Name} => ((InternalSyntax.{node.Name})this.Green).{field.Name};");
1001
.Where(t => t.field.
Type
is not "SyntaxToken" and not "SyntaxList<SyntaxToken>");
1047
.Where(t => t.field.
Type
is not "SyntaxToken" and not "SyntaxList<SyntaxToken>");
1089
if (field.
Type
== "SyntaxList<SyntaxToken>")
1092
if (IsOptional(field) && IsNode(field.
Type
) && field.
Type
!= "SyntaxToken")
1093
return field.
Type
+ "?";
1095
return field.
Type
;
1157
if (IsDerivedOrListOfDerived("SyntaxNode", field.
Type
) || IsDerivedOrListOfDerived("SyntaxToken", field.
Type
) || field.
Type
== "SyntaxNodeOrTokenList")
1202
if (baseField.
Type
!= "SyntaxToken" && IsOptional(baseField) && !IsOptional(field))
1254
if (IsAnyList(field.
Type
))
1272
if (IsAnyList(referencedNodeField.
Type
))
1289
Node referencedNode = GetNode(field.
Type
);
1300
var argType = GetElementType(field.
Type
);
1308
var baseArgType = GetElementType(baseField.
Type
);
1320
var argType = GetElementType(referencedNodeField.
Type
);
1379
if (IsNodeOrNodeList(f.
Type
))
1381
if (IsAnyList(f.
Type
))
1383
else if (f.
Type
== "SyntaxToken")
1428
return field.
Type
== "SyntaxToken"
1435
var referencedNode = GetNode(field.
Type
);
1441
return (!IsOptional(field) && !IsAnyList(field.
Type
) && !CanBeAutoCreated(node, field)) || IsValueField(field);
1446
return !IsNodeOrNodeList(field.
Type
);
1475
if (IsOptional(field) || CanBeAutoCreated(nd, field) || IsAnyList(field.
Type
))
1520
if (field.
Type
== "SyntaxToken")
1548
else if (!IsAnyList(field.
Type
) && !IsOptional(field))
1559
if (f.
Type
== "SyntaxToken")
1567
else if (f.
Type
== "SyntaxList<SyntaxToken>")
1569
else if (IsNodeList(f.
Type
))
1570
return $"{CamelCase(f.Name)}.Node.ToGreenList<Syntax.InternalSyntax.{GetElementType(f.
Type
)}>()";
1571
else if (IsSeparatedNodeList(f.
Type
))
1572
return $"{CamelCase(f.Name)}.Node.ToGreenSeparatedList<Syntax.InternalSyntax.{GetElementType(f.
Type
)}>()";
1573
else if (f.
Type
== "SyntaxNodeOrTokenList")
1576
return $"{CamelCase(f.Name)} == null ? null : (Syntax.InternalSyntax.{f.
Type
}){CamelCase(f.Name)}.Green";
1578
return $"(Syntax.InternalSyntax.{f.
Type
}){CamelCase(f.Name)}.Green";
1596
if (field.
Type
== "SyntaxList<SyntaxToken>")
1598
if (IsOptional(field) && IsNode(field.
Type
) && field.
Type
!= "SyntaxToken")
1599
return field.
Type
+ "?";
1600
return field.
Type
;
1607
if (IsOptional(field) || IsAnyList(field.
Type
))
1612
else if (field.
Type
== "SyntaxToken")
1626
var referencedNode = GetNode(field.
Type
);
1636
if (field.
Type
== "SyntaxToken" && CanBeAutoCreated(nd, field) && field.Kinds.Count > 1)
1701
int listCount = nd.Fields.Count(f => IsAnyNodeList(f.
Type
) && !IsAttributeOrModifiersList(f));
1704
return nd.Fields.First(f => IsAnyNodeList(f.
Type
) && !IsAttributeOrModifiersList(f));
1709
int nodeCount = nd.Fields.Count(f => IsNode(f.
Type
) && f.
Type
!= "SyntaxToken");
1712
return nd.Fields.First(f => IsNode(f.
Type
) && f.
Type
!= "SyntaxToken");
1787
if (IsNode(f.
Type
) && !IsOptional(f) && f.
Type
!= "SyntaxToken")
1812
if (IsOptional(f) || IsAnyList(f.
Type
))
1837
return field.
Type
== "SyntaxToken" && field.Kinds != null && field.Kinds.Count == 1 && field.Kinds[0].Name == "IdentifierToken";
1842
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
))