public override void GenerateCode(StringBuilder sb, int tabsOffset)
        {
            if (Attribute != null)
            {
                Attribute.GenerateCode(sb, tabsOffset);
            }
            sb.Append('\t', tabsOffset);
            sb.Append("if("); Condition.GenerateCode(sb, 0); sb.Append(')'); sb.AppendLine();

            int tabs = (OnTrue is BlockStatement) ? tabsOffset : tabsOffset + 1;

            OnTrue.GenerateCode(sb, tabs);
            sb.AppendLine();

            if (OnFalse != null)
            {
                sb.Append('\t', tabsOffset);
                sb.Append("else");

                tabs = (OnFalse is BlockStatement) ? tabsOffset : tabsOffset + 1;
                if (OnFalse is SelectionStatement)
                {
                    sb.Append(' ');
                }
                else
                {
                    sb.AppendLine();
                }
                OnFalse.GenerateCode(sb, tabs);
            }
        }
 public override void GenerateCode(StringBuilder sb, int tabsOffset)
 {
     Condition.GenerateCode(sb, tabsOffset);
     sb.Append('?');
     OnTrue.GenerateCode(sb, 0);
     sb.Append(':');
     OnFalse.GenerateCode(sb, 0);
 }