mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 16:51:42 +03:00
5fc3b3fd0f
this constitutes a pretty major rework of how whitespace is handled in hoon in order to change the doccords syntax from :> and :< to ::. in summary: throughout the hoon parser (+vast) many instances of +gap have been replaced by +jump, which first tries to remove whitespace (+leap) until it arrives at something that can be parsed as a prefix doccord (+apex:docs:vast). if it does not encounter a doccord, it instead uses +gap as normal. if you follow along with the parser, you will notice that every time jump is called, it then tries to call +apex:docs via +scye or +seam. if apex:docs succeeds, it will end up consuming a newline at the end, hiding the fact that there was valid whitespace from the parser. thus +apex:docs then inserts a newline after successfully parsing a prefix doccord, which will then be consumed by a subsequent invocation of +gap, ensuring that there was proper whitespace if the doccord would have been consumed by +gap instead of +leap. there are a few other changes: +hint in the compiler throws out doccords attached to %noun types. this was already the behavior before doccords, and the change was made before i understood what i was doing. similarly for commenting out the %note case in +open:ap - this was an earlier mistake postfix comments for chapters are now enabled. +expx was unused and removed in order to be rid of the convention-defying +exp1. other unused +ex(p/q)* were commented out. arms that handle batch comments (+glow and +whap) were refactored +toad, which was used to change between tall and wide form, tries to +jump before +gap. since +jump is ;~(pose leap:docs gap), i would have thought that just using +jump there would be fine, but it fails for some reason. some parsers built with |@ were rewritten to use |* |$ was made so that any doccords put on the spec are converted into hoon doccords on the $ arm. it wouldn't compile otherwise. there's probably a more principled way to do this but it works fine for now. |
||
---|---|---|
.. | ||
bip | ||
bip39 | ||
hood | ||
json | ||
language-server | ||
ph | ||
agentio.hoon | ||
aqua-azimuth.hoon | ||
aqua-vane-thread.hoon | ||
azimuth-roll-rpc.hoon | ||
azimuth.hoon | ||
azimuthio.hoon | ||
bip32.hoon | ||
bip39.hoon | ||
bitcoin-utils.hoon | ||
claz.hoon | ||
cram.hoon | ||
csv.hoon | ||
dbug.hoon | ||
deco.hoon | ||
default-agent.hoon | ||
der.hoon | ||
desk-jam.hoon | ||
dice.hoon | ||
dns.hoon | ||
dprint.hoon | ||
ethereum.hoon | ||
ethio.hoon | ||
generators.hoon | ||
jose.hoon | ||
keygen.hoon | ||
naive-transactions.hoon | ||
naive.hoon | ||
number-to-words.hoon | ||
old-phon.hoon | ||
pill.hoon | ||
pkcs.hoon | ||
plume.hoon | ||
pprint.hoon | ||
pretty-file.hoon | ||
primitive-rsa.hoon | ||
rekey.hoon | ||
ring.hoon | ||
server.hoon | ||
shoe.hoon | ||
show-dir.hoon | ||
skeleton.hoon | ||
sole.hoon | ||
story.hoon | ||
strand.hoon | ||
strandio.hoon | ||
test.hoon | ||
time-to-id.hoon | ||
tiny.hoon | ||
verb.hoon | ||
vere.hoon | ||
xray.hoon |