em00k / NextBuild

NextBuild : A suite of tools based on Boriel's ZX Basic Compiler targetting the ZX Spectrum Next
60 stars 6 forks source link

nextbuild.py processes LoadSDBank when commented (NextBuild v7) #16

Closed j-stroud closed 3 years ago

j-stroud commented 3 years ago

If I use the LoadSDBank proc and comment it out, it's still processed by nextbuild.py and can raise an error

' LoadSDBank("foo", addr, size, ofs, bank)

e.g. if the filename doesn't exist then `

ERROR - Failed to find file :./data/foo

Please make sure this file exist! `

em00k commented 3 years ago

I am aware of this and its due to way the python pre-processor parser works.

For now remove the L in LoadSDBank eg

' oadSDBank("foo", addr, size, ofs, bank)

j-stroud commented 3 years ago

Thanks. This is how I've attempted a fix for now. Obviously limited to certain use-cases. Let me know if you'd want a PR

@@ -248,13 +248,13 @@ try:
             x = x.replace(")", ",")
             x = x.replace("(", ",")
             # convert to lower case so xl.find() will be case insensitive
-            xl = x.lower()
+            xl = x.lower().strip()
             curline += 1
             # look for SD command
             ldsd_pos = xl.find("loadsdbank,")
             if ldsd_pos != -1:
-                # is it isnt the main SUB
-                if xl.find("sub") == -1:
+                # if it isnt the main SUB or a commented out line
+                if xl.find("sub") == -1 and xl[0] != "'":
                     # get the filename + add the data path
                     partname = x.split('"')[2-1]
                     filename = "./data/" + partname
em00k commented 3 years ago

Thanks - I think I need to also apply the same sort of splicing elsewhere because when you add a comment on any of the lines with with directives it throws an error, eg on the org line.

em00k commented 3 years ago

I've included your fix for LoadSDBank, I've managed to fix the directives a different way - thanks!

j-stroud commented 3 years ago

thanks!