Rev 539 | Blame | Compare with Previous | Last modification | View Log | Download
labels_syntax_and_find.asm(207): warning[opkeyword]: Label collides with one of the operator keywords, try capitalizing it or other name: existlabels_syntax_and_find.asm(219): error: Duplicate label: exist# file opened: labels_syntax_and_find.asm1 0000 OUTPUT "labels_syntax_and_find.bin"2 00003 0000 MODULE mod13 0000 ORG $31304 3130 label:5 3130 2B dec hl6 3131 .local:7 3131 2C inc l8 31329 3132 30 31 dw label10 3134 31 31 dw .local11 3136 31 31 dw label.local12 3138 31 31 dw mod1.label.local13 313A 31 31 dw @mod1.label.local14 313C ; global one!15 313C 34 35 dw @label16 313E 35 35 dw @label.local17 3140 6A 35 dw @unique18 3142 6A 35 dw unique19 3144 ; mod1 unique20 3144 4A 31 dw mod1unique21 3146 4A 31 dw mod1.mod1unique22 3148 4A 31 dw @mod1.mod1unique23 314A mod1unique:24 314A ; mod2 uniquelabels_syntax_and_find.asm(25): error: Label not found: mod1.mod2unique25 314A 21 21 dw '!!'+mod2unique ; should be error, searching only: mod1.mod2unique, @mod2unique26 314C 4C 33 dw mod2.mod2unique27 314E 4C 33 dw @mod2.mod2unique28 3150 ; mod1 nested29 3150 6E 31 dw nested.label30 3152 6F 31 dw nested.label.local31 3154 6F 31 dw mod1.nested.label.local32 3156 6F 31 dw @mod1.nested.label.locallabels_syntax_and_find.asm(33): error: Label not found: mod1.nest1unique33 3158 21 21 dw '!!'+nest1unique ; should be error34 315A 70 31 dw nested.nest1unique35 315C 70 31 dw mod1.nested.nest1unique36 315E 70 31 dw @mod1.nested.nest1unique37 3160 ; mod2 nested38 3160 70 33 dw mod2.nested.label39 3162 70 33 dw @mod2.nested.label40 3164 71 33 dw mod2.nested.label.local41 3166 71 33 dw @mod2.nested.label.locallabels_syntax_and_find.asm(42): error: Label not found: mod1.nested.nest2unique42 3168 21 21 dw '!!'+nested.nest2unique ; should be error43 316A 72 33 dw mod2.nested.nest2unique44 316C 72 33 dw @mod2.nested.nest2unique45 316E46 316E MODULE nested47 316E label:48 316E 2D dec l49 316F .local:50 316F 2F cpl51 3170 nest1unique:52 3170 ENDMODULE53 317054 3170 ENDMODULE55 317056 3170 MODULE mod256 3170 ORG $333257 3332 label:58 3332 29 add hl,hl59 3333 .local:60 3333 27 daa61 333462 3334 32 33 dw label63 3336 33 33 dw .local64 3338 33 33 dw label.local65 333A 33 33 dw mod2.label.local66 333C 33 33 dw @mod2.label.local67 333E ; global one!68 333E 34 35 dw @label69 3340 35 35 dw @label.local70 3342 6A 35 dw @unique71 3344 6A 35 dw unique72 3346 ; mod2 unique73 3346 4C 33 dw mod2unique74 3348 4C 33 dw mod2.mod2unique75 334A 4C 33 dw @mod2.mod2unique76 334C mod2unique:77 334C ; mod1 uniquelabels_syntax_and_find.asm(78): error: Label not found: mod2.mod1unique78 334C 21 21 dw '!!'+mod1unique ; should be error, searching only: mod2.mod1unique, @mod1unique79 334E 4A 31 dw mod1.mod1unique80 3350 4A 31 dw @mod1.mod1unique81 3352 ; mod2 nested82 3352 70 33 dw nested.label83 3354 71 33 dw nested.label.local84 3356 71 33 dw mod2.nested.label.local85 3358 71 33 dw @mod2.nested.label.locallabels_syntax_and_find.asm(86): error: Label not found: mod2.nest2unique86 335A 21 21 dw '!!'+nest2unique ; should be error87 335C 72 33 dw nested.nest2unique88 335E 72 33 dw mod2.nested.nest2unique89 3360 72 33 dw @mod2.nested.nest2unique90 3362 ; mod1 nested91 3362 6E 31 dw mod1.nested.label92 3364 6E 31 dw @mod1.nested.label93 3366 6F 31 dw mod1.nested.label.local94 3368 6F 31 dw @mod1.nested.label.locallabels_syntax_and_find.asm(95): error: Label not found: mod2.nested.nest1unique95 336A 21 21 dw '!!'+nested.nest1unique ; should be error96 336C 70 31 dw mod1.nested.nest1unique97 336E 70 31 dw @mod1.nested.nest1unique98 337099 3370 MODULE nested100 3370 label:101 3370 24 inc h102 3371 .local:103 3371 25 dec h104 3372 nest2unique:105 3372 ENDMODULE106 3372107 3372 ENDMODULE108 3372109 3372 ORG $3534110 3534 label:111 3534 2B dec hl112 3535 .local:113 3535 2C inc l114 3536115 3536 34 35 dw label116 3538 35 35 dw .local117 353A 35 35 dw label.local118 353C 35 35 dw @label.local119 353E 31 31 dw mod1.label.local120 3540 31 31 dw @mod1.label.local121 3542 33 33 dw mod2.label.local122 3544 33 33 dw @mod2.label.local123 3546 ; uniques124 3546 6A 35 dw unique125 3548 6A 35 dw @uniquelabels_syntax_and_find.asm(126): error: Label not found: mod1unique126 354A 21 21 dw '!!'+mod1unique ; should be error127 354C 4A 31 dw mod1.mod1unique128 354E 4A 31 dw @mod1.mod1unique129 3550 70 31 dw mod1.nested.nest1unique130 3552 70 31 dw @mod1.nested.nest1uniquelabels_syntax_and_find.asm(131): error: Label not found: mod2unique131 3554 21 21 dw '!!'+mod2unique ; should be error132 3556 4C 33 dw mod2.mod2unique133 3558 4C 33 dw @mod2.mod2unique134 355A 72 33 dw mod2.nested.nest2unique135 355C 72 33 dw @mod2.nested.nest2unique136 355E ; nestedlabels_syntax_and_find.asm(137): error: Label not found: nested.label137 355E 21 21 dw '!!'+nested.label ; should be errorlabels_syntax_and_find.asm(138): error: Label not found: nested.label.local138 3560 21 21 dw '!!'+nested.label.local ; should be error139 3562 6E 31 dw mod1.nested.label140 3564 6E 31 dw @mod1.nested.label141 3566 71 33 dw mod2.nested.label.local142 3568 71 33 dw @mod2.nested.label.local143 356A144 356A unique:145 356A 2D dec l146 356Blabels_syntax_and_find.asm(147): error: Invalid labelname: .invalidLabelName147 356B ..invalidLabelName:labels_syntax_and_find.asm(148): error: Invalid labelname: .invalidLabelName148 356B @.invalidLabelName:labels_syntax_and_find.asm(149): error: Invalid labelname: @invalidLabelName149 356B .@invalidLabelName:labels_syntax_and_find.asm(150): error: Invalid labelname: 1nvalidLabelName150 356B .1nvalidLabelName:labels_syntax_and_find.asm(151): error: Invalid labelname: 1nvalidLabelName151 356B @1nvalidLabelName:labels_syntax_and_find.asm(152): error: Invalid labelname: @1nvalidLabelName152 356B .@1nvalidLabelName:labels_syntax_and_find.asm(153): error: Invalid labelname: .1nvalidLabelName153 356B @.1nvalidLabelName:labels_syntax_and_find.asm(154): error: Invalid temporary label (not a number): 1nvalidLabelNamelabels_syntax_and_find.asm(154): error: Temporary label not found: 1B154 356B 20 00 1nvalidLabelName: jr nz,1Blabels_syntax_and_find.asm(155): error: Invalid labelname: Inv&lidL&belN&me155 356D Inv&lidL&belN&me155 356Dlabels_syntax_and_find.asm(156): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 100156 356D 100 equ should not worklabels_syntax_and_find.asm(157): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 101157 356D 101 = should not worklabels_syntax_and_find.asm(158): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 102158 356D 102 defl should not worklabels_syntax_and_find.asm(159): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 103159 356D 103: equ should not worklabels_syntax_and_find.asm(160): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 104160 356D 104: = should not worklabels_syntax_and_find.asm(161): error: Number labels are allowed as address labels only, not for DEFL/=/EQU: 105161 356D 105: defl should not work162 356Dlabels_syntax_and_find.asm(163): error: Unexpected: cpl163 356D EquLineRemnants1: EQU $+1-$100 cpl ; error164 356D EquLineRemnants2: EQU $+2-$100164 356D 2F cpl ; validlabels_syntax_and_find.asm(165): error: Unexpected: cpl165 356E DeflLineRemnants1: DEFL $+3-$100 cpl ; error166 356E DeflLineRemnants2: DEFL $+4-$100166 356E 2F cpl ; validlabels_syntax_and_find.asm(167): error: Unexpected: cpl167 356F DeflLineRemnants3: = $+5-$100 cpl ; error168 356F DeflLineRemnants4: = $+6-$100168 356F 2F cpl ; valid169 3570170 3570 ; the ones without colon are reported as errors since v1.17.1, because without colon171 3570 ; this is total "gotcha":172 3570 noColonProblemDemonstration EQU $ and 7173 3570 ; ^^ the expression parser will eat whole "$ and 7", no instruction/error here174 3570 ; obviously *this* does NOT report error even after change, it's valid expression...175 3570176 3570 ; v1.18.2 - added "exist" operator for expressions177 3570 ASSERT exist label && exist label.local && exist mod1.label && exist mod1.label.local && exist mod1.mod1unique178 3570 ASSERT exist mod1.nested.label && exist mod1.nested.label.local && exist mod1.nested.nest1unique179 3570 ASSERT exist noColonProblemDemonstration ; should preserve "unused" flag!180 3570 ASSERT !exist MissingLabel && !exist @MissingLabel && !exist .MissingLabel181 3570 IFUSED MissingLabel181 3570 ~ ASSERT 0, "MissingLabel should NOT exist + NOT be used"181 3570 ENDIF182 3570183 3570 ; do another module setup to test the EXIST searching from inner blocks184 3570 MODULE mod3184 3570 ORG $4156185 4156 ; check global ones (outside of current module)186 4156 06 DB -(exist label + exist label.local + exist unique + exist mod1.label + exist mod1.label.local + exist mod1.mod1unique) ; == 6 (no error)187 4157 06 DB -(exist @label + exist @label.local + exist @unique + exist @mod1.label + exist @mod1.label.local + exist @mod1.mod1unique) ; == 6 (no error)188 4158 03 DB -(!exist mod2unique + exist mod2.mod2unique + exist @mod2.mod2unique) ; == 3 (no error) (does not find mod2unique w/o module!)189 4159 m3label:190 4159 04 DB -(exist m3label + exist mod3.m3label + !exist @m3label + exist @mod3.m3label) ; == 4 (no error)191 415A .local:192 415A 05 DB -(exist .local + exist m3label.local + exist mod3.m3label.local + !exist @m3label.local + exist @mod3.m3label.local) ; == 5 (no error)193 415B ; check nested-module from parent194 415B 05 DB -(!exist m3nlabel + exist nested.m3nlabel + exist nested.m3nlabel.local + exist mod3.nested.m3nlabel.local + exist @mod3.nested.m3nlabel.local) ; == 5 (no error)195 415C MODULE nested196 415C m3nlabel:197 415C 27 daa198 415D .local:199 415D 2F cpl200 415E ENDMODULE201 415E202 415E ; parentheses form203 415E 04 DB -(exist(m3label) + exist(mod3.m3label) + !exist(@m3label) + exist(@mod3.m3label)) ; == 4 (no error)204 415F ENDMODULE205 415F206 415F ; errors reporting for existlabels_syntax_and_find.asm(207): warning: Label has different value in pass 3: previous value 16755 not equal 16735207 415F exist: ; warning about reserved keyword (at top of listing, because early pass)208 415F 5F 41 DW exist ; no error, but assembles as labellabels_syntax_and_find.asm(209): error: Unexpected: 3xist209 4161 5F 41 DW exist 3xist ; unexpected "3xist"labels_syntax_and_find.asm(210): error: Unexpected: \ist210 4163 00 00 DW exist e\ist ; unexpected "\ist" ("e") is picked up as label to check existence = 0labels_syntax_and_find.asm(211): error: Unexpected: $t211 4165 00 00 DW exist exi$t ; unexpected "$t" ("exi") is picked up as label to check existence = 0labels_syntax_and_find.asm(212): error: Unexpected: @@exi212 4167 5F 41 DW exist @@exi ; unexpected "@@exi"labels_syntax_and_find.asm(213): error: Invalid labelname: )labels_syntax_and_find.asm(213): error: Unexpected: ()213 4169 5F 41 DW exist() ; invalid label name + unexpectedlabels_syntax_and_find.asm(214): error: Invalid labelname: 3xist)labels_syntax_and_find.asm(214): error: Unexpected: (3xist)214 416B 5F 41 DW exist(3xist) ; invalid label name + unexpectedlabels_syntax_and_find.asm(215): error: Unexpected: (e\ist)215 416D 5F 41 DW exist(e\ist) ; unexpected "(e\ist)" - fails as argument for exists, fallback to symbol eval + extra charslabels_syntax_and_find.asm(216): error: Unexpected: (exi$t)216 416F 5F 41 DW exist(exi$t) ; unexpected "(exi$t)" - fails as argument for exists, fallback to symbol eval + extra charslabels_syntax_and_find.asm(217): error: Invalid labelname: @exi)labels_syntax_and_find.asm(217): error: Unexpected: (@@exi)217 4171 5F 41 DW exist(@@exi) ; invalid label name + unexpected218 4173labels_syntax_and_find.asm(219): warning: Label has different value in pass 3: previous value 16735 not equal 16755219 4173 exist: ; error Duplicate label: another code path exercised for test coverage220 4173# file closed: labels_syntax_and_find.asmValue Label------ - -----------------------------------------------------------0x3471 X DeflLineRemnants10x3472 X DeflLineRemnants20x3474 X DeflLineRemnants30x3475 X DeflLineRemnants40x346E X EquLineRemnants10x346F X EquLineRemnants20x4173 exist0x3534 label0x3535 label.local0x3130 mod1.label0x3131 mod1.label.local0x314A mod1.mod1unique0x316E mod1.nested.label0x316F mod1.nested.label.local0x3170 mod1.nested.nest1unique0x3332 mod2.label0x3333 mod2.label.local0x334C mod2.mod2unique0x3370 mod2.nested.label0x3371 mod2.nested.label.local0x3372 mod2.nested.nest2unique0x4159 X mod3.m3label0x415A X mod3.m3label.local0x415C X mod3.nested.m3nlabel0x415D X mod3.nested.m3nlabel.local0x0000 X noColonProblemDemonstration0x356A unique