July 07
On Friday, 7 July 2023 at 21:58:20 UTC, Cecil Ward wrote:
> On Friday, 7 July 2023 at 19:45:19 UTC, Iain Buclaw wrote:
>> On Friday, 7 July 2023 at 15:25:32 UTC, Cecil Ward wrote:
>>> On Friday, 7 July 2023 at 12:18:47 UTC, Cecil Ward wrote:
>>>> On Friday, 7 July 2023 at 11:39:44 UTC, Iain Buclaw wrote:
>>>>> [...]
>>>>
>>>> Many thanks Iain. I am not doing a full parse so I shall simply have to warn the user that the ternary operator must be resolved at ctfe before I get the resulting string, and otherwise I have to forbid it, because for me, aside from detecting labels, I am treating colon as a section terminator. My kludge. But I don’t have months to spend.
>>>
>>> Iain, what’s the lex syntax for a label in the asm ? is it always alphanum+ ‘:’ - something like that?
>>
>> Where is the label being referenced/defined from?
>>
>> Within the asm insn string? [GNU As documents it as](https://sourceware.org/binutils/docs/as/Symbol-Names.html):
>>
>>     [A-Za-z._][0-9A-Za-z._]+
>>
>> For a label referenced from an asm statement (goto labels section)? Then it's the same as any other D [Identifier](https://dlang.org/spec/lex.html#Identifier) - same as above, but also includes unicode alpha characters.
>
> I’m thinking it’s within the asm string. Not one mentioned in the labels section. I’m trying to remember the syntax of local labels from the days of my youth when I was a full-time pro asm programmer, various different machines back then.

My kludge is to say that if a label is at the start of a line (bar any whitespace preceding it) then there must be at least one non-whitespace character before the colon. The section delimiter colon that is the start of the first constraints block is at the start of the line, so I test whether or not (apart from whitespace) a colon is seen at the start of a line, and that then distinguishes between a label and a ‘global’ end of main asm section marker. I also now check for "? :" expressions in an extremely shoddy fashion, even handling nested ternary expressions by ‘?’-counting and I can now see that a ‘:’ is not a main section terminator when it is in a ‘? :’. So I’m knocking off the cases as you and I find them. In every case, doing the minimum, not with a full expression grammar.

1 2
Next ›   Last »