<p><br>
On Mar 4, 2013 2:41 AM, "Daniel Murphy" <<a href="mailto:yebblies@nospamgmail.com">yebblies@nospamgmail.com</a>> wrote:<br>
><br>
> "Zach the Mystic" <reachBUTMINUSTHISzach@gOOGLYmail.com> wrote in message<br>
> news:kidboshnjpowpyqrtwjl@forum.dlang.org...<br>
> > On Sunday, 3 March 2013 at 07:27:51 UTC, Daniel Murphy wrote:<br>
> >>> Now you're as up-to-date as I am on what I'm thinking.<br>
> >><br>
> >> I did something like that before (token-level pattern matching) and found<br>
> >> the number of special cases to be much much too high.  You need so much<br>
> >> context information you're better off just building an ast and operating<br>
> >> on<br>
> >> that.<br>
> ><br>
> > What were the biggest and most common reasons you needed context<br>
> > information?<br>
><br>
> Turning implicit into explicit conversions.  A big one is 0 -> Loc(0).<br>
> dinteger_t -> size_t.  void* -> char*.  string literal to char*.  string<br>
> literal to unsigned char*.  unsigned -> unsigned char.  int -> bool.<br>
><br>
></p>
<p>All look fine except for dinteger_t, which should be -> long (it should always be the widest integer type supported by the host eg: longlong.<br></p>
<p>Regards<br>
-- <br>
Iain Buclaw</p>
<p>*(p < e ? p++ : p) = (c & 0x0f) + '0';</p>