11 Commits

Author SHA1 Message Date
Kevin Atkinson
5f6a1159bb Fix q-q so that non-expression q-q actually work when there is embed anti-q. 2012-02-03 20:54:00 -07:00
Kevin Atkinson
a2dde9a692 Allow anti-quotes to also be ast::ty rather than just ast::expr. 2012-02-03 20:41:49 -07:00
Kevin Atkinson
6dcd12dc22 Implement quasi-quoting of multiple syntatic categories. 2012-02-03 20:41:49 -07:00
Kevin Atkinson
35a199c036 Formatting cleanups. 2012-02-03 20:41:49 -07:00
Kevin Atkinson
9090a5c03b Store info about file "substr".
That is when a string that is part of a file needs to be parsed for a
reason, record that the string is a substr of the file rather than
using "<anon>" or "-" as the file name.  This will eventually allow
pointing to the right location, for now it just uses a more
meaningful string for the filename.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
4d71285c93 Implement quasi-quotes in more macro form: #ast{...}.
The #(...) form is still supported for now.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
099290bc73 When replacing $(...) with $0 preserve spacing for better error messages.
That is:
  x + $(foo) + y
becomes:
  x + $0     + y
not:
  x + $0 + y
2012-02-03 20:41:37 -07:00
Kevin Atkinson
c0f9073557 Expand result of quasi-quote. 2012-02-03 20:39:00 -07:00
Kevin Atkinson
67e961c17f Implement anti-quotes. 2012-02-03 20:38:44 -07:00
Kevin Atkinson
477714f08e Implement "replace" function. 2012-02-03 20:28:12 -07:00
Kevin Atkinson
485e489ba2 Implement basic quasi-quoter. No anti-quotes yet. 2012-02-03 20:28:11 -07:00