[swift-evolution] [Discussion]: Renaming #line, the line control statement
Brent Royal-Gordon
brent at architechies.com
Wed Feb 3 21:29:30 CST 2016
> line-control-statement → #line
> line-control-statement → #lineline-numberfile-name
> line-number → A decimal integer greater than zero
> file-name → static-string-literal
>
> The accepted implementation of SE-0028 disambiguates the two by requiring #line (the control statement) to appear at the first column for the time being. This is a stop-gap solution best remedied by renaming #line.
>
> Chris Lattner writes, "The core team isn’t thrilled with the magic “first token on a line” whitespace behavior that #line will be getting, and would like someone to start a discussion about renaming the old #line directive to something more specific and tailored to its purpose. Once that name and syntax is settled, we can rename the directive and remove the whitespace rule."
>
> I'd recommend #setline or #linenumber. Starting this thread to solicit other suggestions.
I don't love the way the current format has two unlabeled parameters in an arbitrary order. Maybe something more like this?
#reset line=50, file="foo.swift"
(I have a soft preference for "reset" over "set" because these are things the compiler changes automatically, but that might be a silly reason.)
Perhaps this could even let you set any combination of the #whatever parameters, so if, for instance, you were writing a parser generator, you could set #function to the name of the rule a particular piece of code came from.
--
Brent Royal-Gordon
Architechies
More information about the swift-evolution
mailing list