I wish we weren't so dependent on Scheme's reader, so that ssyntaxes could be "first class".
I.e., what if instead of being forced to use foo!bar, you could use foo.'bar .
Right now, you can't do that, because scheme's reader turns it into two expressions "foo." and 'bar, before it even gets sent to the ssyntax parser. If we had our own reader, we could use syntax in more situations, like foo."bar", foo.(bar), etc.
I wonder if aw's parser combinator library would be good for that, or do we need to write something specifically for this?
That's precisely the purpose of my Scheme/Arc parser (scheme-parser0.arc at http://awwx.ws/hundred-year-parser) -- use that as a starting point, and implement whatever parser you want. It doesn't handle incremental parsing yet though, so it isn't a drop in replacement for "read" now.