;;;;;
;
; Test operator precedencce
; or rather the lack thereof
;
	.word	1 + 2 + 3	; 6
	.word	1 + 2 * 3	; 3*3 = 11
	.word	1 & 2 ! 4	; 0 ! 4 = 4
	.word	1 ! 2 & 4	; 3 & 4 = 0
	.word	1 ! 2 & 7	; 3 & 7 = 3
	.word	1+1 ! 2+3	; 2!2+3 = 2+3 = 5

;;;;;
;
; Test all operators at least once
;
	.word	3 + 4		; 000007
	.word	4 - 3		; 000001
	.word	3 * 4		; 000014
	.word	12. / 4		; 000003
	.word	123 & 771	; 000121
	.word	123121 ! 322	; 123323
five = 5
a:	.word	123 _ 3	 	; 001230
	.word	five _ 6	; 000500
	.word	101_five	; 004040
	.word	177400 _ -8.	; 000377
	.word	a _ 3		; Complex relocation

	.word	- 377		; 177401
	.word	+ 377		; 000377

	.word	^C 377		; 177400
	.word	^c 377		; 177400
	.word	^B 0101010101010101	; 052525
	.word	^b 1010101010101010	; 125252
	.word	^d 100		; 000144
	.word	100.		; 000144
	.word	^x 100		; 000400 hexadecimal is an extension
	.word	^rRAD		; 070254 up to 3 characters; no leading spaces
	.word	^rA		; 003100 up to 3 characters
	.word	^r A		; 000050 up to 3 characters
	.word	^r  A		; 000001 up to 3 characters
	.word	^r AA		; 000051
	.word	^rA A		; 003101
	.word	^rAA		; 003150
	.word	^r^/AAA/	; bracketed strings are an extension
	.word	^r<RAD>		; bracketed strings are an extension
	.word	^r< AD>		; bracketed strings are an extension
	.word	^r<  D>		; bracketed strings are an extension
	.word	^r<R D>		; bracketed strings are an extension
	.word	^r<RA >		; bracketed strings are an extension
	.word	^R50.		; 157614 there is no whitespace in between.
	.word	^f 1.5		; 040300

;;;;;
;
; Test bracketing
;
	.word	1 + < 2 * 3 >	; 1 + 6 = 7
	.word	1 + ^! 2 * 3 !	; 1 + 6 = 7
	.word	1 + ^/ 2 * 3 /	; 1 + 6 = 7
	.word	1 + ^$ 2 * 3 $	; 1 + 6 = 7
	.word	1 + ^* 2 * 3 *	; Invalid expression

;;;;;
;
; There was an obscure bug in parse_expr(), used to evaluate 'if df',
; where it could skip past the end of the line marker.
;
; If this happened inside an expanded macro, then after that was the
; next line...
; In other cases it might be worse.
;
        .macro  dirdef  name,   flags,  cond
        .rad50  /.'name/
        .byte   flags+0,        0
        .if df  cond
        .globl  opcerr
        .word   opcerr
        .iff
        .globl  name
        .word   name
        .endc
        .endm

        dirdef name

        .word   (
(

        .word   _,$
_
$
        .word   /
        /
        .word ^px
        ^px
	.word	^px / 256
	^px / 256

        1,2,3
        .1,.2,.3
