Variable interpolation in strings
Justin Whear
justin at economicmodeling.com
Thu Jul 26 11:52:12 PDT 2012
Jonathan M. Davis' recent post about string mixins reminded me of
something I put together a couple of months ago: variable interpolation
in strings http://dpaste.dzfl.pl/5689d535
Some of the projects I work on have lots of embedded queries which are
assembled on the fly (not just values but column and table names). Using
concatenation tends to break the queries up excessively, while using
format with lots of arguments makes them hard to modify. So I took a page
from PHP's book and implemented "$foo" style expansion.
My original thought was to allow cool syntax like x!"embedded variable:
$foo" but template instantiations don't have access to variables from
instantiation scope (unless you pass them explicitly via alias, of
course). Thus the need for string mixins.
The `inContext` version does take a struct or object which constitutes
the set of available variables.
My ugly parsing code could be replaced (maybe, haven't actually tested
it) by the nice version(none)'d function which uses regexs if match() was
available for CTFE.
Justin
More information about the Digitalmars-d
mailing list