예제 #1
0
        public bool VisitExprTypeFixSizeString(ExprTypeFixSizeString expr, TCtx arg)
        {
            var res = this.Visit(expr, "TypeFixSizeString", arg, out var argOut);

            this.VisitPlainProperty("Size", expr.Size, argOut);
            this.VisitPlainProperty("IsUnicode", expr.IsUnicode, argOut);
            this._visitor.EndVisitExpr(expr, arg);
            return(res);
        }
예제 #2
0
        public override bool VisitExprTypeFixSizeString(ExprTypeFixSizeString exprTypeFixSizeString, IExpr?arg)
        {
            if (exprTypeFixSizeString.IsUnicode)
            {
                this.AppendName("nchar");
            }
            else
            {
                this.AppendName("char");
            }

            this.Builder.Append('(');
            this.Builder.Append(exprTypeFixSizeString.Size.ToString());
            this.Builder.Append(')');

            return(true);
        }
예제 #3
0
 public static ExprTypeFixSizeString WithIsUnicode(this ExprTypeFixSizeString original, Boolean newIsUnicode)
 => new ExprTypeFixSizeString(size: original.Size, isUnicode: newIsUnicode);
예제 #4
0
 public static ExprTypeFixSizeString WithSize(this ExprTypeFixSizeString original, Int32 newSize)
 => new ExprTypeFixSizeString(size: newSize, isUnicode: original.IsUnicode);
예제 #5
0
 public abstract bool VisitExprTypeFixSizeString(ExprTypeFixSizeString exprTypeFixSizeString, IExpr?arg);
예제 #6
0
 TRes IExprTypeVisitor <TRes, ExprValueTypeAnalyzerCtx <TRes, TCtx> > .VisitExprTypeFixSizeString(ExprTypeFixSizeString exprTypeFixSizeString, ExprValueTypeAnalyzerCtx <TRes, TCtx> ctx)
 {
     return(ctx.ValueVisitor.VisitString(ctx.Ctx, null, exprTypeFixSizeString.Size, true));
 }