Fälle von fehlender (oder fehlerhafter) Syntaxprüfung

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Fälle von fehlender (oder fehlerhafter) Syntaxprüfung

Beitrag von CSHW89 »

Ein besserer Titel ist mir nicht eingefallen. ich weiß auch nicht, ob das alles bugs sind, oder es gewollt ist.

also erstens, hier gibt es kein compiler-error, obwohl ich glaube das es einen geben sollte:

Code: Alles auswählen

DataSection
  Data.i 3
genauso auch hier

Code: Alles auswählen

  a = 2
EndDataSection
EndDataSection
EndDataSection
bei dem nächsten bin ich mir, wie gesagt, nicht sicher, ob das so gewollt ist (auch kein compiler-error):

Code: Alles auswählen

DataSection
  Data.i "Test"
  Data.s 80
EndDataSection
wenn der string "Test" übrigens mehr als 4 Zeichen lang ist (vermutlich weil Integer=4 Byte), gibt es ein assambler-error :?

version siehe signatur

lg kevin

edit: ach und ein hab ich noch vergessen (auch kein compiler-error):

Code: Alles auswählen

#a = 4
Read.i #a  ; zwar kein fehler, 2 wird aber auch nicht gelesen
Debug #a

DataSection
  Data.i 2
EndDataSection
Zuletzt geändert von CSHW89 am 27.01.2011 21:39, insgesamt 1-mal geändert.
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von Nino »

Ja, da gibt es leider viele Sachen die vom Compiler nicht geprüft werden -- nicht nur im Zusammenhang mit Data.
Z.B. auch

Code: Alles auswählen

If Or b
EndIf
Grüße, Nino
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Ein paar Fehler rund um Data

Beitrag von NicTheQuick »

Wow! Interessant...

Das sind aber wohl Sachen, die einem nur rein zufällig auffallen, oder?

Aber ein korrekter Parser sollte dabei doch Probleme feststellen. Gerade das mit dem "If Or b" macht mich stutzig. Würde mich ja interessieren, was da wirklich draus wird.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von ts-soft »

NicTheQuick hat geschrieben:Gerade das mit dem "If Or b" macht mich stutzig. Würde mich ja interessieren, was da wirklich draus wird.
Das was die Zeile sagt! Wenn b <> 0 ist die Bedingung erfüllt.

Ansonsten hatte man in früheren Versionen viel mehr Möglichkeiten in der DataSection, die so
langsam alle Verschwinden. Früher konnte ich da noch Text ohne Data und " lagern :mrgreen:

In der DataSection sollte nur bei CompilerDirektiven geprüft werden, also bei "IncludeBinary",
"CompilerIf" usw., den Rest sollte er einfach in die DataSection der Exe packen. Der Programmierer
wird schon Wissen wofür das gut ist.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von Nino »

ts-soft hat geschrieben:
NicTheQuick hat geschrieben:Gerade das mit dem "If Or b" macht mich stutzig. Würde mich ja interessieren, was da wirklich draus wird.
Das was die Zeile sagt! Wenn b <> 0 ist die Bedingung erfüllt.
Die Zeile enthält überhaupt keine korrekte Aussage, da vor Or etwas fehlt (ja, habe ich per Zufall gefunden).

Grüße, Nino
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von ts-soft »

CSHW89 hat geschrieben: bei dem nächsten bin ich mir, wie gesagt, nicht sicher, ob das so gewollt ist (auch kein compiler-error):

Code: Alles auswählen

DataSection
  Data.i "Test"
  Data.s 80
EndDataSection
Warum sollte das Verkehrt sein? Solange der String in ein Integer passt.

Code: Alles auswählen

DataSection
  test:
  Data.i "Test"
  Data.s 80
EndDataSection

Debug PeekS(?test)
Debug PeekB(?test + SizeOf(Integer) + Len(PeekS(?test)))
Nino hat geschrieben: Die Zeile enthält überhaupt keine korrekte Aussage, da vor Or etwas fehlt (ja, habe ich per Zufall gefunden).
Wenn da was fehlt, wird dieser Teil der Aussage ignoriert, somit ist der Code dann Fehlerfrei!
Warum also den Programmierer Nerven?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von Nino »

ts-soft hat geschrieben:
Nino hat geschrieben: Die Zeile enthält überhaupt keine korrekte Aussage, da vor Or etwas fehlt (ja, habe ich per Zufall gefunden).
Wenn da was fehlt, wird dieser Teil der Aussage ignoriert, somit ist der Code dann Fehlerfrei!
Warum also den Programmierer Nerven?
Das ist jetzt nicht Dein Ernst, oder? :freak:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Ein paar Fehler rund um Data

Beitrag von NicTheQuick »

ts-soft hat geschrieben:
Nino hat geschrieben: Die Zeile enthält überhaupt keine korrekte Aussage, da vor Or etwas fehlt (ja, habe ich per Zufall gefunden).
Wenn da was fehlt, wird dieser Teil der Aussage ignoriert, somit ist der Code dann Fehlerfrei!
Warum also den Programmierer Nerven?
Weil's schlicht falsch ist! Ich würde da gerne genervt werden. Womöglich hab ich vor 'Or' eine Variable vergessen oder sowas.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Ein paar Fehler rund um Data

Beitrag von Nino »

NicTheQuick hat geschrieben:Weil's schlicht falsch ist! Ich würde da gerne genervt werden. Womöglich hab ich vor 'Or' eine Variable vergessen oder sowas.
Eben.
Es ist gar keine Frage, dass es Aufgabe des Compilers ist bzw. sein sollte, uns auf solche Fehler aufmerksam zu machen. Und PB macht das zum großen Teil ja auch. Wenn man z.B. den Operanden nach Or vergisst, meldet PB sinnvollerweise einen Syntaxfehler:

Code: Alles auswählen

If a Or
EndIf
Da sollte ein fehlender Operand vor Or wohl auch einen Syntaxfehler auslösen.

Während Or also immer zwei Operanden hat bzw. haben sollte, hat Not nur einen ... oder vielleicht doch nicht? ;-)
Jedenfalls löst

Code: Alles auswählen

If a Not b
EndIf
keinen Syntaxfehler aus (getestet mit PB 4.51 Windows x86).
Titel hat geschrieben:Ein paar Fehler rund um Data
CSHW89 hat geschrieben:Ein besserer Titel ist mir nicht eingefallen.
Da sich inzwischen herausgestellt hat, dass es sich hier um ein allgemeineres Problem handelt, wäre ein besserer Titel vielleicht:
Fälle von fehlender (oder fehlerhafter) Syntaxprüfung

Grüße, Nino
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Fälle von fehlender (oder fehlerhafter) Syntaxprüfung

Beitrag von CSHW89 »

Nino hat geschrieben:Titel hat geschrieben:
Ein paar Fehler rund um Data

CSHW89 hat geschrieben:
Ein besserer Titel ist mir nicht eingefallen.

Da sich inzwischen herausgestellt hat, dass es sich hier um ein allgemeineres Problem handelt, wäre ein besserer Titel vielleicht:
Fälle von fehlender (oder fehlerhafter) Syntaxprüfung
checked
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Antworten