 type problem (*solved*) - Printable Version +- Forum (https://www.boriel.com/forum) +-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11) +---- Forum: Bug Reports (https://www.boriel.com/forum/forumdisplay.php?fid=15) +---- Thread: type problem (*solved*) (/showthread.php?tid=423) type problem (*solved*) - slenkar - 02-14-2012 Code:```Function distance (x1 as Integer, y1 as Integer, x2 as Integer, y2 as Integer) as Integer Dim x as Integer x=Abs(x1-x2) Dim y as Integer y=Abs(y1-y2) Return x+y End Function Dim bresx(0 to 300) as UByte Dim bresy(0 to 300) as UByte Function line(X1 as Integer,Y1 as Integer,X2 as Integer,Y2 as Integer) as Integer 'Draws a line of individual pixels from X1,Y1 to X2,Y2 at any angle Dim dist as Integer dist=distance(X1,Y1,X2,Y2) dim bresiter as Integer For bresiter=0 To dist bresx(bresiter)=0 bresy(bresiter)=0 Next Dim steep as Byte steep=Abs(Y2-Y1) > Abs(X2-X1) PRINT AT 1,1 ; PAPER 1 ; INK 0 ; "steep "+STR(steep)      If steep =1 Then Dim Temp as Integer steep=X1 X1=Y1 Y1=Temp Temp=X2 X2=Y2 Y2=Temp End If     Dim DeltaX as Integer     DeltaX=Abs(X2-X1)     Dim DeltaY as Integer     DeltaY=Abs(Y2-Y1)     Dim IError as Integer     IError=0     Dim DeltaError as Integer     DeltaError=DeltaY     Dim x as Integer     x=X1        'Start at X1,Y1     Dim y as Integer     y=Y1             Dim XStep as Integer     Dim YStep as Integer     If X1X2     'Print x+" DeltaX then        'Would it overflow?         y=y+YStep        'Move in Y         IError=IError-DeltaX        'Overflow/wrap the counter         End if     '    x=truncate(x,1)     '    y=truncate(y,1)     '        Print x+" "+iter         bresy(iter)=x     '    Print bresy[iter]+""+iter     Else         bresx(iter)=x     '    Print bresx[iter]+""+iter         bresy(iter)=y     '        Print bresy[iter]+""+iter     End If         iter=iter+1              If iter>dist then     Print  "bresenham over distance "+dist     Return dist     End If     '    If Steep Then Plot(Y,X) Else Plot(X,Y)        'Draw     Wend     Return dist End Function line(0,0,10,5) for x=0 to 6     Plot bresx(x),bresy(x) next``` When I try to compile it says cant convert to string on line 16 but there are no strings being referred to on that line EDIT- the problem was on line 107 so the compiler was confused Re: type problem - boriel - 02-14-2012 Will try to debug ASAP. NOTE: I'm alive. Just considering rewriting al ZX BASIC *from scratch* hock: Re: type problem - slenkar - 02-14-2012 hock: hock: Re: type problem - britlion - 02-14-2012 hock: hock: hock: Re: type problem - boriel - 02-14-2012 Okay, not from scratch (the lexers modules and preprocessor, and assembler are ok), but almost. It's a huge rewriting... :oops: Re: type problem - slenkar - 02-15-2012 in python? Re: type problem - boriel - 02-15-2012 Yes: If it weren't in python it would be completely from scratch (even the lexer, asm and preprocessors). I guess I would choose C++ otherwise. Re: type problem - boriel - 02-18-2012 Yes, the bug was in line: Code:`Print  "bresenham over distance "+dist`Variable dist is integer (use STR(dist) for that). It's incorrectly reporting line #15 (where Dist was declared!) instead of that line. Will try to improve this... Re: type problem - boriel - 02-18-2012 britlion Wrote: hock: hock: hock:I also asked about revamping the site into something more specific to ZX Basic, instead of my blog. :?: (See Poll in the main forum) Re: type problem - LCD - 02-18-2012 boriel Wrote:Yes, the bug was in line: Code:`Print  "bresenham over distance "+dist`Variable dist is integer (use STR(dist) for that). It's incorrectly reporting line #15 (where Dist was declared!) instead of that line. Will try to improve this...Sounds logical because dist could be DIMed as String, so the compiler is confused. Re: type problem - boriel - 02-21-2012 The error reporting line is now correct. Can you check it? (download 1.2.8 s785 or newer)