Regarding some symbols not being accepted could be checked here:
``` python
NOT_READERS = [":" , "&"]  #there might be others

if name in NOT_READERS:
   raise NameError("%s can't be used as a macro reader symbol" % name)
```