Added some throwing stubs to parser
This commit is contained in:
parent
6fd622a573
commit
6ab36fc489
35
Parser.cs
35
Parser.cs
@ -184,7 +184,7 @@ class Parser
|
|||||||
Expr elseCase = expression();
|
Expr elseCase = expression();
|
||||||
return new If { Condition = condition, Then = thenCase, Else = elseCase };
|
return new If { Condition = condition, Then = thenCase, Else = elseCase };
|
||||||
case TokenType.When:
|
case TokenType.When:
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException("TODO when");
|
||||||
}
|
}
|
||||||
|
|
||||||
return primary();
|
return primary();
|
||||||
@ -207,6 +207,7 @@ class Parser
|
|||||||
private Expr primary()
|
private Expr primary()
|
||||||
{
|
{
|
||||||
Expr expr = operand();
|
Expr expr = operand();
|
||||||
|
|
||||||
if (match(TokenType.Period))
|
if (match(TokenType.Period))
|
||||||
{
|
{
|
||||||
Name? ident = name();
|
Name? ident = name();
|
||||||
@ -216,14 +217,17 @@ class Parser
|
|||||||
}
|
}
|
||||||
return new Selector { Left = expr, FieldName = ident };
|
return new Selector { Left = expr, FieldName = ident };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (match(TokenType.LBracket))
|
if (match(TokenType.LBracket))
|
||||||
{
|
{
|
||||||
throw new NotImplementedException("TODO index");
|
throw new NotImplementedException("TODO index");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (match(TokenType.LParen))
|
if (match(TokenType.LParen))
|
||||||
{
|
{
|
||||||
throw new NotImplementedException("TODO apply");
|
throw new NotImplementedException("TODO apply");
|
||||||
}
|
}
|
||||||
|
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,6 +251,35 @@ class Parser
|
|||||||
return new Grouping { Expression = expr };
|
return new Grouping { Expression = expr };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Expr? expr;
|
||||||
|
if ((expr = record()) != null)
|
||||||
|
{
|
||||||
|
return expr;
|
||||||
|
}
|
||||||
|
if ((expr = variant()) != null)
|
||||||
|
{
|
||||||
|
return expr;
|
||||||
|
}
|
||||||
|
if ((expr = list()) != null)
|
||||||
|
{
|
||||||
|
return expr;
|
||||||
|
}
|
||||||
|
|
||||||
throw error(peek(), "Expect expression.");
|
throw error(peek(), "Expect expression.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Expr? list()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException("TODO list");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expr? variant()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException("TODO variant");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expr? record()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException("TODO record");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user