public PlusClosureExpr(TokenExpr expr) : base(expr) { }
public StarClosureExpr(TokenExpr expr) : base(expr) { }
public UnionTokenExpr(TokenExpr left, TokenExpr right) : base(left, right) { }
public UnaryTokenExpr(TokenExpr expr) => this.expr = expr;
public ConcatTokenExpr(TokenExpr left, TokenExpr right) : base(left, right) { }
public BinaryTokenExpr(TokenExpr left, TokenExpr right) { this.left = left; this.right = right; }
public RangeTokenExpr(TokenExpr expr, Integer min, Integer max) : base(expr) { this.min = min; this.max = max; }
public QuantifierTokenExpr(TokenExpr expr, Integer integer) : base(expr) { this.integer = integer; }
public QuestionClosureExpr(TokenExpr expr) : base(expr) { }