Thread overview
broken: #line integer ["filespec"]
Oct 13, 2004
Thomas Kuehne
Oct 13, 2004
Burton Radons
Oct 14, 2004
Thomas Kuehne
Oct 14, 2004
Stewart Gordon
October 13, 2004
special token "line":
>
> #line integer ["filespec"]\n
>

The documentation only states that the line number is an integer, but the implementation rejects negative integers. test case: svn://svn.kuehne.cn/dstress/run/line_token_01.d

The filespec "" is accepted by both the documentation and the implementation but is treated as if no filespec was given. test case: svn://svn.kuehne.cn/dstress/run/line_token_03.d

Even non-empty filespecs are ignored and instead the original filespec is used. test case: svn://svn.kuehne.cn/dstress/run/line_token_04.d

Thomas


October 13, 2004
Thomas Kuehne wrote:
> special token "line":
> 
>>#line integer ["filespec"]\n
>>
> 
> 
> The documentation only states that the line number is an integer, but the implementation rejects negative integers.
> test case: svn://svn.kuehne.cn/dstress/run/line_token_01.d

It's defined as taking Integer, which is defined earlier in the lexical page.  Integer literals are not signed.

For CPP compatibility, it should take decimal digits only; for example, 019 to indicate 19:

    http://www.kuzbass.ru:8086/docs/isocpp/cpp.html#cpp.line

(definition of digit-sequence):
    http://www.kuzbass.ru:8086/docs/isocpp/lex.html#lex.fcon

In addition, string escapes are allowed in CPP:
    http://www.kuzbass.ru:8086/docs/isocpp/lex.html#lex.string
October 14, 2004
Burton Radons schrieb:
> It's defined as taking Integer, which is defined earlier in the lexical page.  Integer literals are not signed.

I think the signed issue was simply ommited from the documentation. If integer literals are un-signed then I don't know why the code
below is accepted by the compiler.

code:
#
# static int array[]=[-1,+2,-3];
#

Thomas


October 14, 2004
Thomas Kuehne wrote:

<snip>
> I think the signed issue was simply ommited from the documentation.  If integer literals are un-signed then I don't know why the code below is accepted by the compiler.
> 
> code:
> #
> # static int array[]=[-1,+2,-3];

compile-time constant != literal

Stewart.