Beiträge: 67
Themen: 5
Registriert seit: Jun 2014
Bewertung:
0
Ich habe das Problem nun gefunden woran es liegt. parnum wurde nicht abgespeichert und auf 0 gesetzt, wenn ein neuer rekursiver Level erreicht wird. (wenn eine Funktion, eine andere Funtkion aufruft). parnum habe ich nun auch nach jedem doppelpunkt : auf 0 gesetzt. somit ist die Parameternummer immer richtig.hier die unterschiede. ist nich viel änderung, das meiste sind kommentare um die stellen besser zu beschreiben
<!-- m --><a class="postlink" href="https://sourceforge.net/p/amiblitz3/code/469/tree//Sourcecodes/Amiblitz3/Compiler/AmiBlitz3.ab3?diff=466">https://sourceforge.net/p/amiblitz3/cod ... 3?diff=466</a><!-- m -->
das exe file habe ich auf amiblitz_test geändert, habe ich vergessen wieder auf beta zu ändern, aber ich finde den namen so besser, denn ein kompiliertes amiblitz compiler sollte nie sich selber überschreiben. wenn das test ok ist, dann kann mans auf beta ändern.
Beiträge: 289
Themen: 10
Registriert seit: Oct 2013
Bewertung:
0
Danke Bernd,
ich habe es getestet und funktioniert. Habe die zwei jetzt unnötigen Fehlermeldungen entfernt und neue Exes erzeugt so das die anderen es auch testen können.
Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
@Bernd:
Die Distribution sollte deshalb auch AmiBlitz als Exe haben und nicht Beta. Nur das SVN enthält keine non-Beta Executable. Könnte man hinzufügen, wenn das gewünscht ist. Gleiches gilt für PED und könnte man auch mit dem Debugger machen.
Danke für das fixen! Auch die Fehlermeldungen im CLI Mode sind nun sinnvoll. Das motiviert mich AIDE weiter zu entwickeln. Bin gerade dabei mehr Auflösungen zu unterstützen und Type-ahead für Newtypes einzubauen.
Beiträge: 67
Themen: 5
Registriert seit: Jun 2014
Bewertung:
0
findest du die typprüfung nun sinnvoll, was fehlt denn da noch in ab3 ?.
Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
Die Typenprüfung ist auf jedenfall sehr sehr sinnvoll!
Es gibt noch ein paar Kleinigkeiten:
- die Abfrage schlägt fälschlicherweise fehl, wenn der Wert direkt von einer Funktion kommt und zurückgegeben wird:
[ab3]Syntax 6
NEWTYPE.myType
x.l
End NEWTYPE
Function.myType myFunc1{}
Function Return Null
End Function
Function.myType myFunc2{}
Function Return myFunc1{} ; compiler error
End Function
Function.myType myFunc3{}
*x.myType = myFunc1{}
Function Return *x ; ok
End Function
End[/ab3]
- es findet kein Check bei Primitiven statt, e.g. *rp.RastPort = w.w ist möglich
Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
Du hast recht.
*rp.RastPort = w.w
ist nicht möglich, aber
*rp.l = w.w
*rp.w = w.w
*rp.b = w.w
*rp.f = w.w