Tue, 18 Aug 2009 20:40:37 +0100, Stewart Gordon wrote: > Sergey Gromov wrote: >> Exactly. There is a 32-bit "style" known for every character, plus >> another 32-bit field associated with every line. A lexer is free to use >> these fields for any purpose, except the lower byte of a style defines >> the characters' color. > > Does it keep around in memory the style of every character, or only the > 32-bit field associated with the line so that the lexer can re-style the > characters on repaint/scroll?
It can tell about any character of which style it is. This is to repaint unchanged lines without ever calling a lexer. > <snip> >>> [DelimitedToken9] >>> Start = ' >>> End = ' >>> Esc = \ >>> Type = Char >>> SpanLines = No >>> Nest = No >>> >>> There, we have all of D1 covered now, and not a regexp in sight. >> >> Yes and no, because your ad-hoc format doesn't cover subtle differences >> between C and D strings. Like C strings don't support embedded EOLs. > > I don't understand. How does SpanLines not achieve this? > > Then what _does_ SpanLines achieve according to whatever conclusion > you've come to? Here's a string which is valid in D but is invalid in C: "foo bar" Here's another string which is, on the contrary, valid in C but is invalid in D: "foo\ bar" They both "span lines."