private static Expression ParseExpression(ScriptVariableTable scriptVariableTable, TokenStream stream) { Console.WriteLine("Parse expression needs to resolve any variable lookups"); Console.WriteLine("Parse expression also needs to work out the return type"); var expressionTokens = new List <InputToken>(); var currentToken = stream.PeekNext(); while ((int)currentToken.TokenType >= (int)SemanticTokenType.BeginExpressionTokens && (int)currentToken.TokenType <= (int)SemanticTokenType.EndExpressionTokens) { expressionTokens.Add(stream.Pop()); currentToken = stream.GetCurrent(); } var rv = new Expression(); rv.Instructions = expressionParser.ConvertToReversePolishNotation(scriptVariableTable, expressionTokens); return(rv); }