#define DEBUG using System.Diagnostics; namespace AspClassic.Parser; /// /// A parse tree for an expression. /// public class Expression : Tree { /// /// Whether the expression is constant or not. /// public virtual bool IsConstant => false; public override bool IsBad => base.Type == TreeType.SyntaxError; /// /// Creates a bad expression. /// /// The location of the parse tree. /// A bad expression. public static Expression GetBadExpression(Span span) { return new Expression(span); } protected Expression(TreeType type, Span span) : base(type, span) { Debug.Assert(type >= TreeType.SimpleNameExpression && type <= TreeType.GetTypeExpression); } private Expression(Span span) : base(TreeType.SyntaxError, span) { } }