John Clements
d8c77e082b
make macro hygienic
2013-09-06 13:35:13 -07:00
John Clements
6c294ba538
add test case, cleanup
2013-09-06 13:35:13 -07:00
John Clements
fe1d21caec
add display_sctable fn to ast_util
2013-09-06 13:35:13 -07:00
John Clements
8330411688
fixed a bug that caused double-expand-traversal of macros that expand into modules.
2013-09-06 13:35:13 -07:00
John Clements
fddc815ada
WIP: adding mark-cancelling for macro_rules
2013-09-06 13:35:13 -07:00
John Clements
e681e7843e
added string_to_tts
2013-09-06 13:35:13 -07:00
John Clements
985a92ec12
comments
2013-09-06 13:35:13 -07:00
John Clements
1a06584117
comment on hygienic context extension train fns
2013-09-06 13:35:13 -07:00
John Clements
dc7f3df27f
awesome new bug! added test case
2013-09-06 13:35:12 -07:00
John Clements
7b548e7180
expose mtwt_marksof for testing
2013-09-06 13:35:12 -07:00
John Clements
7dca301cf4
ident->name
2013-09-06 13:35:12 -07:00
John Clements
bba10ec812
xfailed unhygienic test
2013-09-06 13:35:12 -07:00
John Clements
76c1e0497d
ident->name
2013-09-06 13:35:12 -07:00
John Clements
dbf4e19ea5
remove unneeded imports, clean up unused var warnings
2013-09-06 13:35:12 -07:00
John Clements
60562ac9f8
whitespace, reindentation, and comments only
2013-09-06 13:35:12 -07:00
John Clements
ec0a64def5
memoization for resolve
2013-09-06 13:35:12 -07:00
John Clements
0954e66442
uncomment mtwt_resolve calls
2013-09-06 13:35:11 -07:00
John Clements
d9ba61c786
ident->name in NamedField, elsewhere
2013-09-06 13:35:11 -07:00
John Clements
9ab2cfdae6
added utility function
2013-09-06 13:35:11 -07:00
John Clements
bc2a44daf1
fix one remaining token comparison, refactor token comparison to avoid == check
2013-09-06 13:35:11 -07:00
John Clements
e29d25338d
remove dead code
2013-09-06 13:35:11 -07:00
John Clements
b9bb4abcb6
capturing macros now implemented
2013-09-06 13:35:11 -07:00
John Clements
2c51e262f3
add fold_mac clause to fun_to_ctxt_folder
2013-09-06 13:35:11 -07:00
John Clements
dfa04cecca
add fold_mac field to fold.rs
2013-09-06 13:35:10 -07:00
John Clements
3261b6eece
WIP: adding context to macros
2013-09-06 13:35:10 -07:00
John Clements
34f31e2961
rework fold so that fold_tts takes an ast_fold rather than a thunk, stop using closures in ident traversal
2013-09-06 13:35:10 -07:00
John Clements
09e6dda4f2
add temporarily unused ctxt field to mac_invoc_tt
2013-09-06 13:35:10 -07:00
John Clements
3621c674cc
comments
2013-09-06 13:35:10 -07:00
John Clements
0c31c930ff
add test case for macro token comparison
2013-09-06 13:35:10 -07:00
John Clements
963dab5dcb
marking on both input and output from macros. nice shiny new test case framework
2013-09-06 13:35:10 -07:00
John Clements
f68aa459ea
added IterBytes for 4-tuples
2013-09-06 13:35:10 -07:00
John Clements
58e7598c2e
added gensym_copy mechanism to ensure sharing of pointers in the interner
...
this makes comparisons constant-time, and enables spelling-comparison
of identifiers, crucial in many parts of resolve.
2013-09-06 13:35:10 -07:00
John Clements
9d33001a90
added test for ptr_eq on fresh_name-generated idents
2013-09-06 13:35:09 -07:00
John Clements
cd4e637ae4
fixed bug in fold's traversal of cast exprs
2013-09-06 13:35:09 -07:00
John Clements
d876a721d2
new test that uncovers bug in fold
2013-09-06 13:35:09 -07:00
John Clements
015ba31c02
test case support fns, remove debugging test case
2013-09-06 13:35:09 -07:00
John Clements
62fee04ae9
test case work
2013-09-06 13:35:09 -07:00
John Clements
1f8e856430
re-add lost call to expand_block_elts
2013-09-06 13:35:09 -07:00
John Clements
9071ac60b6
re-add debug version
2013-09-06 13:35:09 -07:00
John Clements
7a9af098f0
test case work
2013-09-06 13:35:09 -07:00
John Clements
f5ab867119
use empty_ctxt to simplify downstream
2013-09-06 13:35:09 -07:00
John Clements
a666ddc135
make comparison of special_idents non-hygienic
2013-09-06 13:35:08 -07:00
John Clements
3965725d51
comments
2013-09-06 13:35:08 -07:00
John Clements
d1c01734f3
drop back to a simple gensym approach for fresh-name.
...
this is necessary so that the new idents are connected to the original strings.
this is important both for error messages, and so that top-level refs get connected
to the right things.
2013-09-06 13:35:08 -07:00
John Clements
7bf75adfd9
added FIXME comment
2013-09-06 13:35:08 -07:00
John Clements
9de40dfc87
remove FIXME #2888 , now bug is fixed
2013-09-06 13:35:08 -07:00
John Clements
98a6cbdba3
comments only
2013-09-06 13:35:08 -07:00
John Clements
91d3c36430
adding test case to check marking/unmarking
2013-09-06 13:35:08 -07:00
John Clements
b7c0512b27
refactor so tt_fold only requires an ident->ident fn
2013-09-06 13:35:08 -07:00
John Clements
93337f0daa
separate ItemDecorator from ItemDecorator
2013-09-06 13:35:08 -07:00