public void Parse(ref string[] program) { string token = ParseUtils.GetToken(ref program); WooScript._Log.AddMsg("Found function, target \"" + token + "\""); WooScript._Log.Indent(); if (WooScript.IsFloatVariable(token)) { _ReturnType = VarType.varFloat; _Var = token; } else if (WooScript.IsVecVariable(token)) { _ReturnType = VarType.varVector; _Var = token; } else { throw new ParseException("Expected \"" + token + "\" to be a float or vector variable"); } string assignOp = ParseUtils.GetToken(ref program); _AssignOp = WooScript.GetAssignOp(assignOp); _Expression = ExpressionBuilder.Parse(ref program); if (_ReturnType == VarType.varVector && (_Expression.GetExpressionType() != VarType.varVector)) { throw new ParseException("Target token is \"" + token + "\" which is a vector, expression isn't..."); } if (_ReturnType == VarType.varFloat && (_Expression.GetExpressionType() != VarType.varFloat)) { throw new ParseException("Target token is \"" + token + "\" which is a float, expression isn't..."); } }