- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace Ink.Parsed
- {
- public class StringExpression : Parsed.Expression
- {
- public bool isSingleString {
- get {
- if (content.Count != 1)
- return false;
- var c = content [0];
- if (!(c is Text))
- return false;
- return true;
- }
- }
- public StringExpression (List<Parsed.Object> content)
- {
- AddContent (content);
- }
- public override void GenerateIntoContainer (Runtime.Container container)
- {
- container.AddContent (Runtime.ControlCommand.BeginString());
- foreach (var c in content) {
- container.AddContent (c.runtimeObject);
- }
-
- container.AddContent (Runtime.ControlCommand.EndString());
- }
- public override string ToString ()
- {
- var sb = new StringBuilder ();
- foreach (var c in content) {
- sb.Append (c.ToString ());
- }
- return sb.ToString ();
- }
-
- public override bool Equals (object obj)
- {
- var otherStr = obj as StringExpression;
- if (otherStr == null) return false;
-
-
- if (!this.isSingleString || !otherStr.isSingleString) {
- return false;
- }
- var thisTxt = this.ToString ();
- var otherTxt = otherStr.ToString ();
- return thisTxt.Equals (otherTxt);
- }
- public override int GetHashCode ()
- {
- return this.ToString ().GetHashCode ();
- }
- }
- }