?"A"+"B"="AB" -> -1 (correct) ?("A"+"B"="AB") -> Variant error and the interpreter crashes
n function IsOperatorOrKeywordBefore(const HSt: string; PosBefore: Integer): Boolean; Zeilen hinzugefügt:
if p<1 then begin result:=true; // links vom String, also führendes Vorzeichen exit; end;
das oben hat ein Leerzeichen vor einem Vorzeichen am Anfang dann richtig behandelt, aber Probleme gibt es noch bei folgenden Beispielen:
?1+a$="Q" ?"Q"="Q"+1
und schlimmer: ?"Q"="Q"+i
Wenn die Stringvergleiche in Klammern gesetzt werden wie beim Original-CPC geht es, sollte aber gefixt werden.
Log in to post a comment.
n function IsOperatorOrKeywordBefore(const HSt: string; PosBefore: Integer): Boolean;
Zeilen hinzugefügt:
n function IsOperatorOrKeywordBefore(const HSt: string; PosBefore: Integer): Boolean;
Zeilen hinzugefügt:
das oben hat ein Leerzeichen vor einem Vorzeichen am Anfang dann richtig behandelt, aber Probleme gibt es noch bei folgenden Beispielen:
?1+a$="Q"
?"Q"="Q"+1
und schlimmer:
?"Q"="Q"+i
Wenn die Stringvergleiche in Klammern gesetzt werden wie beim Original-CPC geht es, sollte aber gefixt werden.