internal static bool TryGetValueToken(ref string text, out TokenBase token, bool requireReturnValue = true) { string temp = null; token = null; foreach (TokenBase type in valueTypeInstanceList) { temp = text; if (type.TryGetToken(ref temp, out token, requireReturnValue)) { break; } token = null; } if (token == null) { return(false); } text = temp; if (token.ReturnType != typeof(void)) { while (true) { temp = temp.TrimStart(); bool cont = false; TokenBase newToken; foreach (TokenBase type in postValueTypeInstanceList) { if (type.TryGetToken(ref temp, out newToken, requireReturnValue)) { if (newToken.SetPostTarget(token)) { token = newToken; text = temp; cont = true; break; } } } if (!cont) { break; } } if (token is IPostToken) { token = new PostTokenChainToken(token); } } return(true); }
internal static bool TryGetValueToken(ref string text, out TokenBase token) { string temp = null; token = null; foreach (TokenBase type in valueTypeInstanceList) { temp = text; if (type.TryGetToken(ref temp, out token)) { break; } token = null; } if (token == null) { return(false); } text = temp; while (true) { bool cont = false; TokenBase newToken; foreach (TokenBase type in postValueTypeInstanceList) { if (type.TryGetToken(ref temp, out newToken)) { newToken.SetPostTarget(token); token = newToken; text = temp; cont = true; break; } } if (!cont) { break; } } if (token is IPostToken) { token = new PostTokenChainToken(token); } return(true); }