Handle warnings, and add a warning if a function parameter has an unknown type
This commit is contained in:
@@ -27,13 +27,13 @@ namespace Ycicle
|
||||
? Executor.ParseInput(input, options)
|
||||
: Executor.ContinueWith(script, input);
|
||||
|
||||
if (script.Diagnostics.Messages.Count > 0)
|
||||
if (script.Diagnostics.Errors.Count > 0)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("Errors were found during parsing");
|
||||
foreach (var diagnosticsMessage in script.Diagnostics.Messages)
|
||||
foreach (var diagnosticsMessage in script.Diagnostics.Errors)
|
||||
{
|
||||
LogError(diagnosticsMessage);
|
||||
LogMessage(DiagnosticLevel.Error, diagnosticsMessage);
|
||||
}
|
||||
Console.ResetColor();
|
||||
continue;
|
||||
@@ -41,18 +41,24 @@ namespace Ycicle
|
||||
//Console.WriteLine(script.PrettyPrintSyntaxTree());
|
||||
var evaluate = script.Evaluate();
|
||||
|
||||
if (script.Diagnostics.Messages.Count > 0)
|
||||
if (script.Diagnostics.Errors.Count > 0)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("Errors were found during evaluating");
|
||||
foreach (var diagnosticsMessage in script.Diagnostics.Messages)
|
||||
foreach (var diagnosticsMessage in script.Diagnostics.Errors)
|
||||
{
|
||||
LogError(diagnosticsMessage);
|
||||
LogMessage(DiagnosticLevel.Error, diagnosticsMessage);
|
||||
}
|
||||
Console.ResetColor();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var diagnosticsMessage in script.Diagnostics.Warnings)
|
||||
{
|
||||
LogMessage(DiagnosticLevel.Warning, diagnosticsMessage);
|
||||
}
|
||||
Console.ResetColor();
|
||||
|
||||
if (evaluate == null)
|
||||
continue;
|
||||
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||
@@ -63,16 +69,24 @@ namespace Ycicle
|
||||
}
|
||||
}
|
||||
|
||||
private static void LogError(DiagnosticsMessage message)
|
||||
private static void LogMessage(DiagnosticLevel level, DiagnosticsMessage message)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
if (level == DiagnosticLevel.Error)
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
else if (level == DiagnosticLevel.Warning)
|
||||
Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
|
||||
Console.WriteLine(message.Message);
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Gray;
|
||||
Console.Write(message.GetDiagnosticPosition() + " ");
|
||||
Console.Write(message.LineBeforeError());
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
if (level == DiagnosticLevel.Error)
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
else if (level == DiagnosticLevel.Warning)
|
||||
Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
|
||||
Console.Write(message.AtError());
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Gray;
|
||||
|
||||
Reference in New Issue
Block a user