/// <summary> /// 调度命令,必须是完整命令,不能多,也不能少 /// </summary> /// <param name="raw">原始字符串</param> /// <param name="env">环境</param> /// <param name="result">结果,可能是编译成功的指令或错误信息</param> /// <returns>是否调度成功</returns> public bool Dispatch(string raw, TEnv env, out ICmdResult result) { raw = raw.TrimStart(); StringReader reader = new StringReader(raw); if (!Dispatch(reader, env, out result)) { return(false); } else if (reader.SkipWhiteSpace()) { result = new ErrorResult( result.MatchedLength, 0, "未能识别的部分:" + reader.ReadToEndOrMaxOrEmpty(Config.MaxCut, Config.EmptyStrTip)); return(false); } return(true); }
public ErrorResult(int matchedLength, int argLength, string error, ErrorResult subError) : this(matchedLength, argLength, error) { SubError = subError; }