meowlang/parser/Parser.cs

21 lines
527 B
C#
Raw Normal View History

2022-02-12 02:29:25 +01:00
using Antlr4.Runtime;
using meowlang.parser.antlr;
namespace meowlang.parser;
public class Parser
{
public static Model? Parse(string path)
{
var lexer = new MeowLexer(new AntlrFileStream(path));
2022-02-12 18:30:04 +01:00
var tokenStream = new CommonTokenStream(lexer);
var parser = new MeowParser(tokenStream);
var visitor = new VisitorNya();
2022-02-12 02:29:25 +01:00
var file = parser.file();
if (parser.NumberOfSyntaxErrors > 0)
{
return null;
}
return visitor.Visit(file);
}
}