private Expression ParseExpression(List<string> tokens, Func<List<string>> parseNextStatement)
{
switch (tokens[0])
{
case "LABEL":
{
var label = tokens[1];
var labelTarget = Expression.Label(label);
_labels.Add(label, labelTarget);
return Expression.Label(labelTarget);
}
case "GOTO":
{
//I MIGHT NOT HAVE THE LABEL REFERENCE HERE, SO I NEED A WAY TO LAZY EVALUATE IT
var label = tokens[1];
var expression = Expression.Empty();
_goto.Add(expression, label);
return expression;
}
private Expression ParseExpression(List<string> tokens, Func<List<string>> parseNextStatement)
{
switch (tokens[0])
{
case "LABEL":
{
var label = tokens[1];
var labelTarget = Expression.Label(label);
_labels.Add(label, labelTarget);
return Expression.Label(labelTarget);
}
case "GOTO":
{
//I MIGHT NOT HAVE THE LABEL REFERENCE HERE, SO I NEED A WAY TO LAZY EVALUATE IT
var label = tokens[1];
var expression = Expression.Empty();
_goto.Add(expression, label);
return expression;
}