private void emitRenderer(Property syntax, List<AddrModeDecl.Operand> list) {
        if ( syntax != null && syntax.type.isBasedOn("String")) {
            String format = StringUtil.trimquotes(syntax.value.image);
            int max = format.length();
            StringBuffer buf = new StringBuffer();
            buf.append(' ');
            for ( int pos = 0; pos < max; pos++ ) {
                char ch = format.charAt(pos);
                StringBuffer var = new StringBuffer();
                if ( ch == '%' ) {
                    for ( pos++; pos < max; pos++) {
                        char vch = format.charAt(pos);
                        if ( !Character.isLetterOrDigit(vch) && vch != '.' ) { pos--; break; }
                        var.append(vch);
                    }
                    print("+");
                    print(StringUtil.quote(buf));
                    print("+");
                    print(var.toString());
                    buf = new StringBuffer();
                } else {
                    buf.append(ch);
                }
            }
            if ( buf.length() > 0 ) {
                print("+");
                print(StringUtil.quote(buf));
            }

        } else {
            String sep = "' '";
            for ( AddrModeDecl.Operand o : list ) {
                print(" + $1 + $2", sep, o.name);
                sep = "\", \"";
            }
        }
    }