Seite 1 von 2
Fälle von fehlender (oder fehlerhafter) Syntaxprüfung
Verfasst: 27.01.2011 01:24
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:
genauso auch hier
bei dem nächsten bin ich mir, wie gesagt, nicht sicher, ob das so gewollt ist (auch kein compiler-error):
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
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 07:41
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
Grüße, Nino
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 13:31
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.
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 13:48
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
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
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 13:56
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
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 14:12
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):
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?
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 14:30
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?

Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 14:40
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.
Re: Ein paar Fehler rund um Data
Verfasst: 27.01.2011 20:31
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:
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
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
Re: Fälle von fehlender (oder fehlerhafter) Syntaxprüfung
Verfasst: 27.01.2011 21:41
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