Style fixes
This commit is contained in:
parent
165cd35485
commit
c70e94d166
@ -13,7 +13,7 @@ namespace Parser.Binding
|
||||
{
|
||||
private readonly DiagnosticsBag _diagnostics = new DiagnosticsBag();
|
||||
|
||||
private BoundProgram? BindProgramInternal(SyntaxTree syntaxTree)
|
||||
private BoundProgram BindProgramInternal(SyntaxTree syntaxTree)
|
||||
{
|
||||
var boundRoot = BindRoot(syntaxTree.NullRoot);
|
||||
var statements = ((BoundBlockStatement)boundRoot.File.Body).Statements;
|
||||
@ -31,7 +31,11 @@ namespace Parser.Binding
|
||||
{
|
||||
_diagnostics.ReportMainIsNotAllowed(
|
||||
f.Syntax.Span);
|
||||
return null;
|
||||
return new BoundProgram(
|
||||
_diagnostics.ToImmutableArray(),
|
||||
mainFunction: null,
|
||||
scriptFunction: null,
|
||||
functions: functionsBuilder.ToImmutable());
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,7 +74,7 @@ namespace Parser.Binding
|
||||
functionsBuilder.ToImmutable());
|
||||
}
|
||||
|
||||
public static BoundProgram? BindProgram(SyntaxTree syntaxTree)
|
||||
public static BoundProgram BindProgram(SyntaxTree syntaxTree)
|
||||
{
|
||||
var binder = new Binder();
|
||||
return binder.BindProgramInternal(syntaxTree);
|
||||
|
@ -858,46 +858,40 @@ namespace Parser.Internal
|
||||
List<SyntaxTrivia> leadingTrivia,
|
||||
List<SyntaxTrivia> trailingTrivia)
|
||||
{
|
||||
switch (tokenInfo.Kind)
|
||||
return tokenInfo.Kind switch
|
||||
{
|
||||
case TokenKind.IdentifierToken:
|
||||
return TokenFactory.CreateIdentifier(
|
||||
tokenInfo.Text,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
case TokenKind.UnquotedStringLiteralToken:
|
||||
return TokenFactory.CreateUnquotedStringLiteral(
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
case TokenKind.NumberLiteralToken:
|
||||
return TokenFactory.CreateTokenWithValueAndTrivia<double>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.DoubleValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
case TokenKind.StringLiteralToken:
|
||||
return TokenFactory.CreateTokenWithValueAndTrivia<string>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
case TokenKind.DoubleQuotedStringLiteralToken:
|
||||
return TokenFactory.CreateTokenWithValueAndTrivia<string>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
default:
|
||||
return TokenFactory.CreateTokenWithTrivia(
|
||||
tokenInfo.Kind,
|
||||
leadingTrivia,
|
||||
trailingTrivia);
|
||||
}
|
||||
TokenKind.IdentifierToken => TokenFactory.CreateIdentifier(
|
||||
tokenInfo.Text,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
TokenKind.UnquotedStringLiteralToken => TokenFactory.CreateUnquotedStringLiteral(
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
TokenKind.NumberLiteralToken => TokenFactory.CreateTokenWithValueAndTrivia<double>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.DoubleValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
TokenKind.StringLiteralToken => TokenFactory.CreateTokenWithValueAndTrivia<string>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
TokenKind.DoubleQuotedStringLiteralToken => TokenFactory.CreateTokenWithValueAndTrivia<string>(
|
||||
tokenInfo.Kind,
|
||||
tokenInfo.Text,
|
||||
tokenInfo.StringValue,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
_ => TokenFactory.CreateTokenWithTrivia(
|
||||
tokenInfo.Kind,
|
||||
leadingTrivia,
|
||||
trailingTrivia),
|
||||
};
|
||||
}
|
||||
|
||||
public List<(SyntaxToken, Position)> ParseAll()
|
||||
|
@ -76,17 +76,6 @@ namespace Parser.Internal
|
||||
return token;
|
||||
}
|
||||
|
||||
private SyntaxToken? PossiblyEatIdentifier(string s)
|
||||
{
|
||||
var token = CurrentToken;
|
||||
if (token.Kind == TokenKind.IdentifierToken && token.Text == s)
|
||||
{
|
||||
return EatToken();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private SyntaxToken EatPossiblyMissingIdentifier(string s)
|
||||
{
|
||||
var token = CurrentToken;
|
||||
@ -300,43 +289,20 @@ namespace Parser.Internal
|
||||
return builder.ToList();
|
||||
}
|
||||
|
||||
private ExpressionSyntaxNode? ParseTerm(ParseOptions options)
|
||||
private ExpressionSyntaxNode ParseTerm(ParseOptions options)
|
||||
{
|
||||
var token = CurrentToken;
|
||||
ExpressionSyntaxNode? expression = null;
|
||||
switch (token.Kind)
|
||||
ExpressionSyntaxNode expression = token.Kind switch
|
||||
{
|
||||
case TokenKind.NumberLiteralToken:
|
||||
expression = Factory.NumberLiteralExpressionSyntax(EatToken());
|
||||
break;
|
||||
case TokenKind.StringLiteralToken:
|
||||
expression = Factory.StringLiteralExpressionSyntax(EatToken());
|
||||
break;
|
||||
case TokenKind.DoubleQuotedStringLiteralToken:
|
||||
expression = Factory.DoubleQuotedStringLiteralExpressionSyntax(EatToken());
|
||||
break;
|
||||
case TokenKind.OpenSquareBracketToken:
|
||||
expression = ParseArrayLiteral();
|
||||
break;
|
||||
case TokenKind.OpenBraceToken:
|
||||
expression = ParseCellArrayLiteral();
|
||||
break;
|
||||
case TokenKind.ColonToken:
|
||||
expression = Factory.EmptyExpressionSyntax();
|
||||
break;
|
||||
case TokenKind.OpenParenthesisToken:
|
||||
expression = ParseParenthesizedExpression();
|
||||
break;
|
||||
default:
|
||||
var id = EatToken(TokenKind.IdentifierToken);
|
||||
expression = Factory.IdentifierNameExpressionSyntax(id);
|
||||
break;
|
||||
}
|
||||
|
||||
if (expression == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
TokenKind.NumberLiteralToken => Factory.NumberLiteralExpressionSyntax(EatToken()),
|
||||
TokenKind.StringLiteralToken => Factory.StringLiteralExpressionSyntax(EatToken()),
|
||||
TokenKind.DoubleQuotedStringLiteralToken => Factory.DoubleQuotedStringLiteralExpressionSyntax(EatToken()),
|
||||
TokenKind.OpenSquareBracketToken => ParseArrayLiteral(),
|
||||
TokenKind.OpenBraceToken => ParseCellArrayLiteral(),
|
||||
TokenKind.ColonToken => Factory.EmptyExpressionSyntax(),
|
||||
TokenKind.OpenParenthesisToken => ParseParenthesizedExpression(),
|
||||
_ => Factory.IdentifierNameExpressionSyntax(EatToken(TokenKind.IdentifierToken)),
|
||||
};
|
||||
return ParsePostfix(options, expression);
|
||||
}
|
||||
|
||||
@ -599,10 +565,6 @@ namespace Parser.Internal
|
||||
else
|
||||
{
|
||||
lhs = ParseTerm(options);
|
||||
if (lhs is null)
|
||||
{
|
||||
throw new Exception("Left-hand side in subexpression cannot be empty.");
|
||||
}
|
||||
}
|
||||
|
||||
while (true)
|
||||
@ -858,8 +820,7 @@ namespace Parser.Internal
|
||||
|
||||
private bool TriviaContainsNewLine(GreenNode? trivia)
|
||||
{
|
||||
var triviaList = trivia as SyntaxList<SyntaxTrivia>;
|
||||
if (triviaList is null)
|
||||
if (trivia is not SyntaxList<SyntaxTrivia> triviaList)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -121,11 +121,11 @@ namespace Parser.Internal
|
||||
|
||||
public override GreenNode? GetSlot(int i)
|
||||
{
|
||||
switch (i)
|
||||
return i switch
|
||||
{
|
||||
case 0: return _file;
|
||||
default: return null;
|
||||
}
|
||||
0 => _file,
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
||||
|
@ -13,7 +13,7 @@ namespace Parser.MFunctions
|
||||
}
|
||||
}
|
||||
|
||||
public static int Len(MObject? obj)
|
||||
public static int Len(MObject obj)
|
||||
{
|
||||
return obj switch
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ namespace Parser
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (ReferenceEquals(null, obj)) return false;
|
||||
if (obj is null) return false;
|
||||
return obj is SyntaxToken token && Equals(token);
|
||||
}
|
||||
|
||||
|
@ -58,8 +58,7 @@ namespace Semantics
|
||||
|
||||
public static MClass FromTree(FileSyntaxNode tree, string fileName)
|
||||
{
|
||||
var classDeclaration = tree.Body.Statements[0].AsNode() as ClassDeclarationSyntaxNode;
|
||||
if (classDeclaration == null)
|
||||
if (tree.Body.Statements[0].AsNode() is not ClassDeclarationSyntaxNode classDeclaration)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ namespace cmi
|
||||
var child = children[index];
|
||||
if (child.IsNode)
|
||||
{
|
||||
RenderNode(child.AsNode(), indent, index == last);
|
||||
RenderNode(child.AsNode()!, indent, index == last);
|
||||
}
|
||||
else if (child.IsToken)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user