Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }