Fixed percent operator
fixed percent operator, again

effectively it behaves the same as left and right bracket operators,
but it can't use the same bracket state because what if you have
something like {]} for the mapping block? i.e. the block itself
removes the bracketing length.
misc cleanup
small fixes