| Thread overview | |||||
|---|---|---|---|---|---|
|
January 17, 2015 recursing ddoc macros two arguments at a time | ||||
|---|---|---|---|---|
| ||||
I thought this isn't possible: http://goo.gl/QTAUFb. This: $(TOCENTRY comparison.html, D Feature List) $(TOCENTRY builtin.html, Rationale for Builtins) $(TOCENTRY ctod.html, Converting C to D) $(TOCENTRY cpptod.html, Converting C++ to D) $(TOCENTRY pretod.html, The C Preprocessor vs D) $(TOCENTRY cppcontracts.html, D Contract Programming vs C++) can be simplified to this: $(TOCENTRIES comparison, D Feature List, builtin, Rationale for Builtins, ctod, Converting C to D, cpptod, Converting C++ to D, pretod, The C Preprocessor vs D, cppcontracts, D Contract Programming vs C++ ) (The .html elimination is a minor detail.) The trick is to recurse twice using $+ every time: TOCENTRIES=$(TOCENTRY $1, $2) $(TOCENTRIES_REC $+) TOCENTRIES_REC=$(TOCENTRIES $+) Thought this is worth sharing. We could simplify a few more things with this. Andrei | ||||
January 17, 2015 Re: recursing ddoc macros two arguments at a time | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On 1/16/2015 4:11 PM, Andrei Alexandrescu wrote: > I thought this isn't possible: http://goo.gl/QTAUFb. This: > > $(TOCENTRY comparison.html, D Feature List) > $(TOCENTRY builtin.html, Rationale for Builtins) > $(TOCENTRY ctod.html, Converting C to D) > $(TOCENTRY cpptod.html, Converting C++ to D) > $(TOCENTRY pretod.html, The C Preprocessor vs D) > $(TOCENTRY cppcontracts.html, D Contract Programming vs C++) > > can be simplified to this: > > $(TOCENTRIES > comparison, D Feature List, > builtin, Rationale for Builtins, > ctod, Converting C to D, > cpptod, Converting C++ to D, > pretod, The C Preprocessor vs D, > cppcontracts, D Contract Programming vs C++ > ) > > (The .html elimination is a minor detail.) > > The trick is to recurse twice using $+ every time: > > TOCENTRIES=$(TOCENTRY $1, $2) $(TOCENTRIES_REC $+) > TOCENTRIES_REC=$(TOCENTRIES $+) > > Thought this is worth sharing. We could simplify a few more things with this. Two thoughts: 1. Need to add this to the Ddoc documentation! Or at least a tip sheet on Ddoc. 2. Why use url shorteners like http://goo.gl/QTAUFb ? I don't generally care to click on links that I have no idea where they go. Here's the real link: https://github.com/D-Programming-Language/dlang.org/pull/776/files#diff-582d0a2140b180aec5d08a9e6176399aR71 | |||
January 17, 2015 Re: recursing ddoc macros two arguments at a time | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | On 1/16/15 6:39 PM, Walter Bright wrote: > On 1/16/2015 4:11 PM, Andrei Alexandrescu wrote: >> I thought this isn't possible: http://goo.gl/QTAUFb. This: >> >> $(TOCENTRY comparison.html, D Feature List) >> $(TOCENTRY builtin.html, Rationale for Builtins) >> $(TOCENTRY ctod.html, Converting C to D) >> $(TOCENTRY cpptod.html, Converting C++ to D) >> $(TOCENTRY pretod.html, The C Preprocessor vs D) >> $(TOCENTRY cppcontracts.html, D Contract Programming vs C++) >> >> can be simplified to this: >> >> $(TOCENTRIES >> comparison, D Feature List, >> builtin, Rationale for Builtins, >> ctod, Converting C to D, >> cpptod, Converting C++ to D, >> pretod, The C Preprocessor vs D, >> cppcontracts, D Contract Programming vs C++ >> ) >> >> (The .html elimination is a minor detail.) >> >> The trick is to recurse twice using $+ every time: >> >> TOCENTRIES=$(TOCENTRY $1, $2) $(TOCENTRIES_REC $+) >> TOCENTRIES_REC=$(TOCENTRIES $+) >> >> Thought this is worth sharing. We could simplify a few more things >> with this. > > Two thoughts: > > 1. Need to add this to the Ddoc documentation! Or at least a tip sheet > on Ddoc. Who wanna do that? Other good examples are ENUMERATE and ITEMIZE. > 2. Why use url shorteners like http://goo.gl/QTAUFb ? I don't generally > care to click on links that I have no idea where they go. Here's the > real link: > > https://github.com/D-Programming-Language/dlang.org/pull/776/files#diff-582d0a2140b180aec5d08a9e6176399aR71 Looks better on the page. Andrei | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply