Currently »#(« always result in an invalid instruction, argument or expression
This is not exactly true, the following is a valid construction and assembles correctly with fasmg (and even with fasm 1 when used inside a macro):
Is the philosophy of fasmg more important than writing readable code?
The philosophy of fasmg is that its simple building blocks should allow you to re-define and alter almost everything in the language and thus be able to use any syntax that you deem the most readable or useful.
What about allowing to defining the struc »=«, so I can do all of my syntactical sugar myself without having it written in fasmg-source: (...)
You have the "struc ?" that serves this purpose:
struc (symbol) ? definition&
match [index] == value, definition
repeat 1, i:index
symbol#i = value
end repeat
else
symbol definition
end match
end struc
abc[1+2] = 'test'
display abc3