ST-Parser Fehler (diverse zwischen STP0003 und STP0030): '...' erwartet.
Dieses Thema gilt für verschiedene ST-Parser Fehlermeldungen. Die Fehlernummern sind in der folgenden Tabelle aufgeführt.
Der ST-Parser hat in einem ST-Codekonstrukt einen syntaktischen Fehler gefunden. Das in der Fehlermeldung genannte Codeelement fehlt. Die Position im Code, wo das Element erwartet wird, ist im Code-Editor rot unterstrichen.
In dieser Fehlermeldung können folgende Codeelemente gefordert werden:
Fehlermeldung | Bedeutung / Abhilfe |
---|---|
';' erwartet. (STP0003) | Vervollständigen Sie die markierte Zeile des Ausdrucks durch Einfügen eines Semikolon am Ende. |
'THEN' erwartet. (STP0006) | Eine Auswahlanweisung (IF oder ELSIF) ist ohne das Element 'THEN' nicht vollständig.Korrekte Syntax:
IF a < b THEN c:=1; ELSIF a=b THEN c:=2; ELSE c:=3; END_IF; |
'END_IF' erwartet. (STP0007) | 'IF'-Anweisungen müssen durch ein 'END_IF'-Element abgeschlossen werden. Die korrekte Syntax ist oben gezeigt. |
'END_FOR' erwartet. (STP0008) | 'FOR'-Anweisungen müssen durch ein 'END_FOR'-Element abgeschlossen werden. Korrekte Syntax:FOR a:=1 TO 10 BY 3 DO f[a] :=b; END_FOR; |
'END_CASE' erwartet. (STP0009) | 'CASE'-Anweisungen müssen durch ein 'END_CASE'-Element abgeschlossen werden. Korrekte Syntax:CASE f OF 1: a:=3; 2..5: a:=4; 6: a:=2; b:=1; ELSE a:=0; END_CASE; |
'END_REPEAT' erwartet. (STP0010) | 'REPEAT'-Anweisungen müssen durch ein 'END_REPEAT'-Element abgeschlossen werden. Korrekte Syntax:REPEAT a := a*b; UNTIL a < 10000 END_REPEAT; |
'END_WHILE' erwartet. (STP0011) | 'WHILE'-Anweisungen müssen durch ein 'END_WHILE'-Element abgeschlossen werden. Korrekte Syntax:WHILE b > 1 DO b:= b/2; END_WHILE; |
'(' oder ':=' erwartet (STP0013) | Im unterstrichenen Ausdruck fehlt entweder eine öffnende Klammer '(' zum Festlegen der Priorität der Operanden innerhalb einer Anweisung oder es fehlt der Zuweisungsoperator ':='. |
')' erwartet. (STP0015) | Im unterstrichenen Ausdruck fehlt eine schließende runde Klammer ')' zum Festlegen der Priorität der Operanden innerhalb einer Anweisung. |
']' erwartet. (STP0016) | In der unterstrichenen FOR-Wiederholungsanweisung fehlt eine schließende eckige Klammer. Die Steuervariable muss in eckige Klammern eingeschlossen sein:FOR a:=1 TO 10 BY 3 DO f[a] :=b; END_FOR; |
':=' erwartet. (STP0017) | In der unterstrichenen Codezeile fehlt ein Zuweisungsoperator ':='.Eine Zuweisung ist die einfachste Art einer ST-Anweisung. Sie kopiert den Wert des Ausdrucks auf der rechten Seite in die Variable auf der linken Seite. Die Variable links und der Wert des Ausdrucks rechts müssen beide denselben Datentyp haben. |
'TO' erwartet. (STP0018)'DO' erwartet. (STP0019) | Es fehlt das Schlüsselwort 'TO' oder 'DO'. Die Wiederholungsanweisung FOR ist nicht vollständig.Korrekte Syntax:FOR a:=1 TO 10 BY 3 DO f[a] :=b; END_FOR; |
'UNTIL' erwartet. (STP0020) | Es fehlt das Schlüsselwort 'UNTIL'. Die Wiederholungsanweisung REPEAT ist nicht vollständig. Dieses Schlüsselwort führt die Bedingung für die weitere Ausführung der Wiederholung ein.Korrekte Syntax:REPEAT a := a*b; UNTIL a < 10000 END_REPEAT; |
'OF' erwartet. (STP0021) | Es fehlt das Schlüsselwort 'OF'. Die Auswahlanweisung CASE ist nicht vollständig. Dieses Schlüsselwort führt eine Liste mit den auszuwertenden Übereinstimmungen ein. |
':' erwartet. (STP0022) | In einer CASE-Anweisung fehlt das Trennzeichen (:) für eine Zuweisung.Korrekte Syntax:CASE f OF
1: a:=3; 2..5: a:=4; |
',' erwartet. (STP0023) | In dem Aufruf einer Funktion oder eines Funktionsbausteins fehlt ein Komma zur Trennung der übergebenen Parameter. |
'.' erwartet (STP0028) | In einem internen Methodenaufruf fehlt ein Punkt (trennt das Schlüsselwort THIS vom Methodennamen).Korrekte Syntax: MyVar := THIS.Method1(); |
'(' erwartet (STP0029) | In einem internen Methodenaufruf fehlt eine öffnende Klammer.Korrekte Syntax: MyVar := THIS.Method1(); |
Weitere Infos
Informationen zur korrekten ST-Syntax finden Sie im Thema "ST-Code-Objekte". |