Skip to content

Commit db2c5c8

Browse files
committed
Added missing arithmetic expressions and tokens.
1 parent 27afa95 commit db2c5c8

File tree

2 files changed

+49
-29
lines changed

2 files changed

+49
-29
lines changed

CSharpToJavaScript/CSTOJS.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public StringBuilder GenerateOneFromString(string csstring, List<MetadataReferen
177177

178178
Assembly? assembly = Assembly.GetEntryAssembly();
179179

180-
SyntaxTree? _tree = CSharpSyntaxTree.ParseText(csstring);
180+
SyntaxTree _tree = CSharpSyntaxTree.ParseText(csstring);
181181

182182
if(references != null)
183183
Generate(_tree, assembly, references);
@@ -204,7 +204,7 @@ public async Task GenerateOneFromStringAsync(string csstring, string? filename =
204204

205205
Assembly? assembly = Assembly.GetEntryAssembly();
206206

207-
SyntaxTree? _tree = CSharpSyntaxTree.ParseText(csstring);
207+
SyntaxTree _tree = CSharpSyntaxTree.ParseText(csstring);
208208

209209
if (references != null)
210210
Generate(_tree, assembly, references);
@@ -227,7 +227,7 @@ public async Task GenerateOneFromStringAsync(string csstring, string? filename =
227227
}
228228

229229

230-
private void Generate(SyntaxTree? tree, Assembly? assembly, List<MetadataReference>? refs = null)
230+
private void Generate(SyntaxTree tree, Assembly? assembly, List<MetadataReference>? refs = null)
231231
{
232232
if(_Options.Debug)
233233
{
@@ -510,6 +510,9 @@ private void Generate(SyntaxTree? tree, Assembly? assembly, List<MetadataReferen
510510
bool found = false;
511511
foreach (MetadataReference resultItem in trueReferences)
512512
{
513+
if (item.Display == null)
514+
continue;
515+
513516
if (resultItem.Display == item.Display)
514517
found = true;
515518
}

CSharpToJavaScript/Walker.cs

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,9 @@ public override void VisitToken(SyntaxToken token)
158158
case SyntaxKind.TryKeyword:
159159
case SyntaxKind.ThrowKeyword:
160160
case SyntaxKind.FinallyKeyword:
161-
{
161+
case SyntaxKind.CaretToken:
162+
case SyntaxKind.CharacterLiteralToken:
163+
{
162164
VisitLeadingTrivia(token);
163165

164166
JSSB.Append(token.Text);
@@ -219,31 +221,35 @@ public override void Visit(SyntaxNode? node)
219221
case SyntaxKind.UsingDirective:
220222
return;
221223
case SyntaxKind.FileScopedNamespaceDeclaration:
222-
_NameSpaceStr = (node as FileScopedNamespaceDeclarationSyntax).Name.ToString();
223-
foreach (MemberDeclarationSyntax member in (node as FileScopedNamespaceDeclarationSyntax).Members)
224-
{
225-
Visit(member);
226-
}
227-
if (_Options.Debug)
228224
{
229-
JSSB.Append("/*");
230-
JSSB.Append(node.ToFullString().Replace("*/", ""));
231-
JSSB.Append("*/");
225+
_NameSpaceStr = (node as FileScopedNamespaceDeclarationSyntax).Name.ToString();
226+
foreach (MemberDeclarationSyntax member in (node as FileScopedNamespaceDeclarationSyntax).Members)
227+
{
228+
Visit(member);
229+
}
230+
if (_Options.Debug)
231+
{
232+
JSSB.Append("/*");
233+
JSSB.Append(node.ToFullString().Replace("*/", ""));
234+
JSSB.Append("*/");
235+
}
236+
return;
232237
}
233-
return;
234238
case SyntaxKind.NamespaceDeclaration:
235-
_NameSpaceStr = (node as NamespaceDeclarationSyntax).Name.ToString();
236-
foreach (MemberDeclarationSyntax member in (node as NamespaceDeclarationSyntax).Members)
237239
{
238-
Visit(member);
239-
}
240-
if (_Options.Debug)
241-
{
242-
JSSB.Append("/*");
243-
JSSB.Append(node.ToFullString().Replace("*/", ""));
244-
JSSB.Append("*/");
240+
_NameSpaceStr = (node as NamespaceDeclarationSyntax).Name.ToString();
241+
foreach (MemberDeclarationSyntax member in (node as NamespaceDeclarationSyntax).Members)
242+
{
243+
Visit(member);
244+
}
245+
if (_Options.Debug)
246+
{
247+
JSSB.Append("/*");
248+
JSSB.Append(node.ToFullString().Replace("*/", ""));
249+
JSSB.Append("*/");
250+
}
251+
return;
245252
}
246-
return;
247253
default:
248254
//CSTOJS.Log($"{syntaxKind}");
249255
break;
@@ -653,6 +659,7 @@ public override void VisitExpressionStatement(ExpressionStatementSyntax node)
653659
case SyntaxKind.MultiplyAssignmentExpression:
654660
case SyntaxKind.DivideAssignmentExpression:
655661
case SyntaxKind.AwaitExpression:
662+
case SyntaxKind.ModuloAssignmentExpression:
656663
Visit(asNode);
657664
break;
658665
default:
@@ -710,6 +717,11 @@ public override void VisitArgument(ArgumentSyntax node)
710717
case SyntaxKind.TrueLiteralExpression:
711718
case SyntaxKind.StringLiteralExpression:
712719
case SyntaxKind.InterpolatedStringExpression:
720+
case SyntaxKind.AddAssignmentExpression:
721+
case SyntaxKind.SubtractAssignmentExpression:
722+
case SyntaxKind.MultiplyAssignmentExpression:
723+
case SyntaxKind.DivideAssignmentExpression:
724+
case SyntaxKind.ModuloAssignmentExpression:
713725
Visit(asNode);
714726
break;
715727
case SyntaxKind.ObjectCreationExpression:
@@ -2096,6 +2108,14 @@ public override void VisitParenthesizedExpression(ParenthesizedExpressionSyntax
20962108
case SyntaxKind.CoalesceExpression:
20972109
case SyntaxKind.LogicalOrExpression:
20982110
case SyntaxKind.AddExpression:
2111+
case SyntaxKind.DivideExpression:
2112+
case SyntaxKind.ModuloExpression:
2113+
case SyntaxKind.EqualsExpression:
2114+
case SyntaxKind.GreaterThanExpression:
2115+
case SyntaxKind.LessThanExpression:
2116+
case SyntaxKind.GreaterThanOrEqualExpression:
2117+
case SyntaxKind.LessThanOrEqualExpression:
2118+
case SyntaxKind.NotEqualsExpression:
20992119
Visit(asNode);
21002120
break;
21012121
case SyntaxKind.AsExpression:
@@ -2134,12 +2154,9 @@ public override void VisitParenthesizedExpression(ParenthesizedExpressionSyntax
21342154
}
21352155
case SyntaxKind.CloseParenToken:
21362156
{
2137-
if (_IgnoreAsParenthesis)
2138-
{
2139-
2140-
}
2141-
else
2157+
if (!_IgnoreAsParenthesis)
21422158
VisitToken(asToken);
2159+
21432160
break;
21442161
}
21452162
//case SyntaxKind.StringLiteralToken:

0 commit comments

Comments
 (0)