protected override string CalculateValue()
        {
            string valueString = ParentExpression.ToString();

            if (ParentExpression.IsNumericLiteral())
            {
                return(SmallBasicExtensions.FormatFloat(valueString));
            }
            else
            {
                return(valueString.Replace('"', '\''));
            }
        }
        protected override EV3Type CalculateType()
        {
            string valueString = ParentExpression.ToString();

            if (ParentExpression.IsNumericLiteral())
            {
                return(EV3Type.Float);
            }
            else
            {
                Match match = Regex.Match(valueString, @"^""(?:[\d]+=[^;]*;)*([\d]+)=[^;]*[;]*""$");
                if (match.Success)
                {
                    maxIndex = int.Parse(match.Groups[1].Value);
                    return(EV3Type.StringArray);
                }
                else
                {
                    return(EV3Type.String);
                }
            }
        }