Please extend ATasm to include slick anonymous local labels, like ACME and others. There are a number of different syntaxes for this, but I think ACME has the cleanest look (but maybe not easiest to parse):
; a string output loop: ldx #0 beq + ; enter loop; "+" is an anonymous forward label. Other ones are "++", "+++", etc.
; They can be used like any other label, but they always reference
; their NEXT definition. This saves having to think of names for
; unimportant labels. As the label's value is not defined yet, ACME
; will need to perform a second pass.
- jsr basout ; output character
; "-" is an anonymous backward label. Other ones are "--", "---", etc.
; They can be used like any other label, but they always reference
; their PREVIOUS definition. This saves having to think of names for
; unimportant labels. In the line above, the value of "-" is set to
; the current program counter.
inx ; advance pointer
+ lda .string,x ; get character
; Here the value of "+" is set to the current program counter.
; ".string" is a local label (because its name starts with a '.'
; character), but as its value is not defined yet, ACME will need to
; perform a second pass.
bne - ; check whether last
; Here the last definition of the anonymous "-" label is referenced.
rts
Here are other ideas:
http://www.cc65.org/doc/ca65-6.html#ss6.5
http://www.theweb.dk/KickAssembler/webhelp/content/ch03s04.html
Of course, didn't format correctly.