Forum
Undocumented continuation line syntax? - 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: Documentation (https://www.boriel.com/forum/forumdisplay.php?fid=17)
+---- Thread: Undocumented continuation line syntax? (/showthread.php?tid=555)



Undocumented continuation line syntax? - Felix - 07-09-2013

Hello, everyone! First time poster here.

While working on my second ZXBasic game, I accidentally discovered a syntax feature I can't seem to find documented anywhere.

Namely, a backslash at the end of a line causes it to be concatenated with the next one. That also works inside a comment, in which case the next line is "eaten up". That's more or less like in C, if I remember correctly, but in ZXBasic it surprised me because the wiki only mentions the underscore as a continuation line.

Is there anything I missed?


Re: Undocumented continuation line syntax? - boriel - 07-11-2013

Felix Wrote:Hello, everyone! First time poster here.
Welcome to the forum, Felix, and sorry for the delay (I'm currently wokring in hard deadlines :oopsSmile, but the forum has many active users, anyway. 8)

Felix Wrote:While working on my second ZXBasic game, I accidentally discovered a syntax feature I can't seem to find documented anywhere.

Namely, a backslash at the end of a line causes it to be concatenated with the next one. That also works inside a comment, in which case the next line is "eaten up". That's more or less like in C, if I remember correctly, but in ZXBasic it surprised me because the wiki only mentions the underscore as a continuation line.

Is there anything I missed?
Well, the FreeBasic / Visual BASIC "standar" (ahem...) uses underscore. But ZX BASIC also uses a C-like preprocessor. This means the source code is firstly filtered through a C-Like preprocessor (CPP), called zxbpp, and then the resulting code is compiled. The C preprocessor allows backslash as a continuation line, so any line you write backslashed will be joined or translated to underscore (depending on the context).
So yes, ZX Basic allows both _ and \ as line continuation characters, but \ is not documented because it should be in the preprocessor section (... which is not documented yet! :?)


Re: Undocumented continuation line syntax? - Felix - 07-11-2013

Thank you, Boriel, and don't worry about the delay.

So ZXBasic has a fully featured C-like preprocessor? That's very useful, and those are already well documented.


Re: Undocumented continuation line syntax? - boriel - 07-11-2013

Felix Wrote:Thank you, Boriel, and don't worry about the delay.

So ZXBasic has a fully featured C-like preprocessor? That's very useful, and those are already well documented.
Well, "fully featured" depends on the standar and version you follow. e.g. CPP from GNU C has many non-standar powerful features I've find very hard to mimic (I prefer to concentrate the efforts in the compiler). But other than that, I think it's a quite complete preprocessor. E.g. you can define macros to be used as inline functions (which are slightly faster), etc...
There are many examples in the compiler library/ directory and in this forum, if I recall correctly.