protected bool IsNumberT2L()
        {
            // TODO: meaningful (translated?) error message
            var t = FirstChild.IsNumber();

            if (!SecondChild.IsNumber() == t)
            {
                throw new SemanticsErrorException(this, "Children are different");
            }
            return(false);
        }
 protected bool IsNumberN2N()
 {
     // TODO: meaningful (translated?) error message
     if (!FirstChild.IsNumber())
     {
         throw new SemanticsErrorException(this, "First child must be number");
     }
     if (!SecondChild.IsNumber())
     {
         throw new SemanticsErrorException(this, "Second child must be number");
     }
     return(true);
 }