pas2js - $modeswitch

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Mathias
Beiträge: 6210
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

pas2js - $modeswitch

Beitrag von Mathias »

Ich habe folgende $modeswitch aus einen normalen FPC-Programm kopiert. Aber bei pas2js motzt er. Er wen ich das "on" weglasse funktioniert es.

Code: Alles auswählen

{$modeswitch typehelpers on}
{$modeswitch arrayoperators on}
Denkt ihr auch, das dies ein Bug ist ?

So nebenbei hat pas2js auch hier Mühe.

Code: Alles auswählen

Result := Result + [True]; // geht  
Result += [True];          // geht nicht
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 834
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: pas2js - $modeswitch

Beitrag von PascalDragon »

Mathias hat geschrieben:
Di 23. Jan 2024, 16:01
Ich habe folgende $modeswitch aus einen normalen FPC-Programm kopiert. Aber bei pas2js motzt er. Er wen ich das "on" weglasse funktioniert es.

Code: Alles auswählen

{$modeswitch typehelpers on}
{$modeswitch arrayoperators on}
Denkt ihr auch, das dies ein Bug ist ?
Bitte beachte, dass das on auch bei FPC keine Wirking hat. Die richtige Verwendung ist {$modeswitch <IDENTIFIER>} zum Aktivieren oder{$modeswitch <IDENTIFIER>-} zum Abschalten. FPC parst und ignoriert einfach nur alles was nach den relevanten Teilen steht (wie zum Beispiel auch bei {$endif BLA BLA BLA}.

Also ja, es ist ein Bug in pas2js, aber nicht auf die Art wie du denkst.
Mathias hat geschrieben:
Di 23. Jan 2024, 16:01
So nebenbei hat pas2js auch hier Mühe.

Code: Alles auswählen

Result := Result + [True]; // geht  
Result += [True];          // geht nicht
pas2js unterstützt anscheinend keine C-Operatoren. Allerdings werden sie auch nicht hier erwähnt. Wahrscheinlich wurden sie einfach vergessen. Du kannst sie dir ja als Feature Request wünschen...
FPC Compiler Entwickler

Mathias
Beiträge: 6210
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: pas2js - $modeswitch

Beitrag von Mathias »

Code: Alles auswählen

pas2js unterstützt anscheinend keine C-Operatoren. 
Dies würde ich so nicht sagen.
Sowas funktioniert.

Code: Alles auswählen

var
  i: integer;
  s: String;
begin
  i := 2;
  i += 3;
  Writeln(i);  // -> 5
  
    s := 'abc';
  s += '123';
  Writeln(s);  // -> abc123
Nur bei den Arrayoperatoren scheint es nicht zu klappen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 834
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: pas2js - $modeswitch

Beitrag von PascalDragon »

Mathias hat geschrieben:
Mi 24. Jan 2024, 13:11
Nur bei den Arrayoperatoren scheint es nicht zu klappen.
Dann wurde das für Arrays wohl nicht implementiert. Melde am Besten einen Bug 🤷‍♀️
FPC Compiler Entwickler

Antworten