26 #if defined (HAVE_CONFIG_H)
50 unwind_action act ([&tw] (
const std::list<octave_lvalue> *lvl)
73 else if (c1 ==
"class" || c2 ==
"class")
77 bool c1_is_int = (c1 ==
"int8" || c1 ==
"uint8"
78 || c1 ==
"int16" || c1 ==
"uint16"
79 || c1 ==
"int32" || c1 ==
"uint32"
80 || c1 ==
"int64" || c1 ==
"uint64");
81 bool c2_is_int = (c2 ==
"int8" || c2 ==
"uint8"
82 || c2 ==
"int16" || c2 ==
"uint16"
83 || c2 ==
"int32" || c2 ==
"uint32"
84 || c2 ==
"int64" || c2 ==
"uint64");
86 bool c1_is_char = (c1 ==
"char");
87 bool c2_is_char = (c2 ==
"char");
89 bool c1_is_double = (c1 ==
"double");
90 bool c2_is_double = (c2 ==
"double");
92 bool c1_is_single = (c1 ==
"single");
93 bool c2_is_single = (c2 ==
"single");
95 bool c1_is_logical = (c1 ==
"logical");
96 bool c2_is_logical = (c2 ==
"logical");
98 bool c1_is_built_in_type
99 = (c1_is_int || c1_is_char || c1_is_double || c1_is_single
102 bool c2_is_built_in_type
103 = (c2_is_int || c2_is_char || c2_is_double || c2_is_single
108 if (c1 ==
"cell" || c2 ==
"cell")
110 else if (c1_is_char && c2_is_built_in_type)
112 else if (c2_is_char && c1_is_built_in_type)
114 else if (c1_is_int && c2_is_built_in_type)
116 else if (c2_is_int && c1_is_built_in_type)
118 else if (c1_is_single && c2_is_built_in_type)
120 else if (c2_is_single && c1_is_built_in_type)
122 else if (c1_is_double && c2_is_built_in_type)
124 else if (c2_is_double && c1_is_built_in_type)
126 else if (c1_is_logical && c2_is_logical)
136 if (! (all_dq_strings_p || all_sq_strings_p))
138 "concatenation of different character string types may have unintended consequences");
151 OCTAVE_END_NAMESPACE(
octave)
static std::string static_class_name()
octave_value concat(char string_fill_char) const
void copy_base(const tree_array_list &array_list)
char string_fill_char() const
const std::list< octave_lvalue > * lvalue_list() const
void set_lvalue_list(const std::list< octave_lvalue > *lst)
tree_expression * dup(symbol_scope &scope) const
octave_value evaluate(tree_evaluator &, int nargout=1)
tree_matrix(tree_argument_list *row=nullptr, int l=-1, int c=-1)
virtual int column() const
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
void warning_with_id(const char *id, const char *fmt,...)
void maybe_warn_string_concat(bool all_dq_strings_p, bool all_sq_strings_p)
std::string get_concat_class(const std::string &c1, const std::string &c2)