Added Parser

- can parse a basic token list to an AST
This commit is contained in:
Clemens-Dautermann 2020-08-17 01:07:59 +02:00
parent ea26acce4a
commit b3fe78fffb
19 changed files with 451 additions and 88 deletions

View file

@ -0,0 +1,17 @@
using System;
namespace Compiler.Parser.Exceptions
{
public class InvalidIdentifierException : Exception
{
private string value { get; set; }
public override string Message { get; }
public InvalidIdentifierException(string value)
{
this.value = value;
this.Message = "Unexpected Identifier " + this.value + ".";
}
}
}

View file

@ -0,0 +1,9 @@
using System;
namespace Compiler.Parser.Exceptions
{
public class MissingSemicolonException : Exception
{
public override string Message { get; }
}
}

View file

@ -0,0 +1,20 @@
using System;
using Compiler.Lexer;
namespace Compiler.Parser.Exceptions
{
public class UnexpectedTokenException : Exception
{
public TokenType expected { get; set; }
public TokenType got { get; set; }
public override string Message { get; }
public UnexpectedTokenException(TokenType expected, TokenType got)
{
this.expected = expected;
this.got = got;
this.Message = "Unexpected Token " + got + ". Expected: " + expected;
}
}
}

View file

@ -0,0 +1,21 @@
using System;
namespace Compiler.Parser.Exceptions
{
public class WrongTypeException : Exception
{
private Type expected;
private Type got;
public override string Message { get; }
public WrongTypeException(Type expected, Type got)
{
this.expected = expected;
this.got = got;
this.Message = "Expected type " + expected +
"but got type " + got + ".";
}
}
}