<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to bugs</title><link>https://sourceforge.net/p/jbasic/bugs/</link><description>Recent changes to bugs</description><atom:link href="https://sourceforge.net/p/jbasic/bugs/feed.rss" rel="self"/><language>en</language><lastBuildDate>Tue, 17 Apr 2007 21:17:00 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/jbasic/bugs/feed.rss" rel="self" type="application/rss+xml"/><item><title>Line number references in compound statements</title><link>https://sourceforge.net/p/jbasic/bugs/4/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Line numbers do not work correctly when in compound statements if a RENUMBER is issued.&lt;/p&gt;
&lt;p&gt;For example,&lt;/p&gt;
&lt;p&gt;100    GOTO 800 : GOTO 800 : GOTO 800&lt;/p&gt;
&lt;p&gt;This (admittedly ridiculous) example will not RENUMBER correctly.  The problem is that the array of token positions for line numbers is not offset for the token position in the entire statement; instead it is for the relative position within each sub-statement.  So the above line has three line number token positions, but they are [1, 1, 1], rather than the more correct [1, 4, 7].&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This will require the compound statement handler in the Statement compile() method to copy sub-statement token position vectors to the parent statement and calculate offsets along the way, mindful of the recursive nature of the compile of each substatement.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Cole</dc:creator><pubDate>Tue, 17 Apr 2007 21:17:00 -0000</pubDate><guid>https://sourceforge.netbb264a2593b3a299e6d49eb9a3b71d8fe2c574f3</guid></item><item><title>Need to support multiple statements on a line</title><link>https://sourceforge.net/p/jbasic/bugs/3/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;GWBasic and others allow multiple statements on a line, with a separator (usually ":" or "\" characters).  These multiple statements are semantically a single statement, so you can have:&lt;/p&gt;
&lt;p&gt;100 IF X = 3 THEN PRINT "FINISHED!" : GOTO 300&lt;/p&gt;
&lt;p&gt;If the condition is true, both the PRINT and GOTO statements are executed.  This will require a couple of things in JBasic.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;1.  Statement compilation will have to be chained when there is a ":" as the next token after successful compilation; the chaining operation will locate the next verb and (recursively? serially?) invoke the next verb.  The generated statements will probably be STMT 0-type statements in the same bytecode object for the first containing Statement.&lt;/p&gt;
&lt;p&gt;2.  The line number marker in each statement used to track tokenized line numbers for RENUMBER support will have to become a list, because it will be possible to have more than one line number in a given statement.  This is probably already true with IF..THEN GOTO...ELSE GOTO.. statements anyway.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Cole</dc:creator><pubDate>Mon, 05 Mar 2007 01:45:05 -0000</pubDate><guid>https://sourceforge.net1ae51971a832c90043a40c7632d1bfb445903050</guid></item><item><title>Recursion doesn't work in functions</title><link>https://sourceforge.net/p/jbasic/bugs/2/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;A FACT() function written to calculate a factorial&lt;br /&gt;
recursively won't work - the passing/management of&lt;br /&gt;
scope for the nested call frames does not appear to&lt;br /&gt;
work properly at all.&lt;/p&gt;
&lt;p&gt;FUNCTION FACT( V )&lt;br /&gt;
// Version: 1.0&lt;br /&gt;
// Date:    Wed Jun 21 14:16:00 EDT 2006&lt;br /&gt;
// Author:  cole&lt;br /&gt;
IF V &amp;lt;= 2 THEN RETURN V&lt;br /&gt;
LET X &amp;lt; LOCAL &amp;gt; = FACT( V - 1 )&lt;br /&gt;
LET Y &amp;lt; LOCAL &amp;gt; = V * X&lt;br /&gt;
RETURN Y&lt;/p&gt;
&lt;p&gt;This gets into an infinite loop with FACT(3).&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Cole</dc:creator><pubDate>Thu, 13 Jul 2006 17:26:02 -0000</pubDate><guid>https://sourceforge.net2bc5897bf4b5050242b4d75c66a7e18f280dff5b</guid></item><item><title>FILE status is overloaded with non-localizable substitutions</title><link>https://sourceforge.net/p/jbasic/bugs/1/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The Status.FILE error state is overloaded.  It is a generalized prefix that &lt;br /&gt;
accepts a substitution string, which is usually where the real error is &lt;br /&gt;
defined.&lt;/p&gt;
&lt;p&gt;The Status.FILE errors should be broken down into a set of errors for the &lt;br /&gt;
various actual file conditions, such as &lt;/p&gt;
&lt;p&gt;FILESYNTAX&lt;br /&gt;
FILENOTFOUND&lt;br /&gt;
FILEREADERR&lt;br /&gt;
FILEWRITEERR&lt;/p&gt;
&lt;p&gt;or something similar.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Cole</dc:creator><pubDate>Sun, 22 Jan 2006 20:30:42 -0000</pubDate><guid>https://sourceforge.net6274a80823bc94becbe064771283839cb6d45410</guid></item></channel></rss>