As we all know, the
# operator is able to concatenate some identifier-like pieces into a single one:
match ,
{
abc # def equ display 'OK'
abcdef
}
If also works with string literals:
match ,
{
display 'abc' # 'def'
}
Still it doesn’t work for identifier and literal:
match ,
{
abc # 'def' equ display 'OK'
abc'def'
}
while
match ,
{
abc'def' equ display 'OK'
abc'def'
}
works as expected.
I understand the possible ambiguity of whether the result of such concatenation should be a string or an identifier but I also feel being able to concatenate a string literal to an identifier (having a new identifier as a result) would open a lot of possibilities for writing macros that require bookkeeping based on (macro-)user-provided string literals. (I remember it has recently been the case for multisection macros.)
Any reasons why defining the
# operator behaviour for non-equal “types” might be impossible / a bad idea?