public override void ParseAttribute(string attribute, string value) { ParsedData p = new ParsedData(attribute, value); if (Parsed.Contains(p)) { return; } Parsed.Add(p); if (attribute.ToLower() == "content") { Text = (c) => c.GetWrapper().TryLoadText(value, c, out string text) ? text : ""; } else if (attribute.ToLower() == "font") { Font = (c) => c.GetWrapper().TryGet(value, out Font font) ? font : null; } else if (attribute.ToLower() == "textscale") { Scale = float.TryParse(value, out float scale) ? scale : 1f; } else if (attribute.ToLower() == "textlimit") { TextLimit = int.TryParse(value, out int limit) ? limit : -1; } else { Parsed.Remove(p); base.ParseAttribute(attribute, value); } }
private void ReturnToken(Token token, Symbol trigger) { if (_tokens.Contains(CurrentToken.ToString()) && CurrentToken.TokenIndex == null) { CurrentToken.TokenIndex = _tokens.IndexOf(CurrentToken.ToString()) + 1; } Log(LogEventLevel.Information, "Added token: {0}", false, CurrentToken.Escaped); Parsed.Add(token); CurrentToken = new StringToken { Line = Line }; _machine.Reset(); if (trigger != Symbol.Space && trigger.Value != null) { _machine.Fire(trigger); } }