F-Script |
Error-160 ..\FF\PLW-BLOCK.FX #9: ReadNextInterpreterLine: Expression-Syntax-Error: Parsing failed (A recognition error occurred.): [Line 14/ Char 6]: ' var )))n(((ull := 0' Unexpected Token: RESERVED_KEYWORD
![]() |
NotizDie F-Script Extension für VSCode färbt Kommentare
abhängig des Begriffs hinter // unterschiedlich
ein.
|
«X(TestString=Lorem ipsum dolor sit amet)» « { // bei Expressions ist lediglich der Name und die Argumente nötig. // Länge length(X('TestString')) // länge replaces('',X('TestString'),'-') // heute today() // Rechnen number(10)*number(20) } »
« { // Zuweisung eines Booleans var isActive := TRUE isActive := FALSE } »
« { // Der Zuweisungs-Operator ist eine Abkürzung... var a := 1 // ... für var b := 0 assign(b, 1) } »
« { var i := 1 // increment ++i // decrement --i } »
![]() |
WichtigBeachten Sie, dass bei einer Zuweisung
ohne explizite Angabe des Datentyps die neue Variable automatisch den
Datentyp des ersten Wertes erhält!
Folgendes Beispiel zeigt die
Problematik auf:
« { // ACHTUNG: 10 ist Datentyp <integer> > result AUCH <integer>! // Resultat: 0 var resultAsInteger := 10 / 100 // TIPP: Angabe von explizitem Datentyp > result AUCH <number> // Resultat: 0.1 var resultAsNumber := number(10) / number(100) } » |
« { // Zuweisung Strings var messageText := "" // Zuweisung Integer var myInteger := 100 // TIPP: besser ist eine explizite Angabe. myInteger := integer(100) // Zuweiung Number (float) var myNumber := 100.01 // TIPP: besser ist eine explizite Angabe. myNumber := number(100.01) // Zuweisung Boolean var yesOrNo := TRUE // Zuweisung Datum var myDate := 05.04.1980 // TIPP: besser ist eine explizite Angabe. myDate := date(05.04.1980) } »
![]() |
AchtungDer Datentyp einer Variablen kann
nachträglich nicht geändert werden! Wird dies versucht führt dies zu
folgender Fehlermeldung:
Error-160 ..\FF\PLW-BLOCK.FX #42: ReadNextInterpreterLine: Expression-Syntax-Error: Token 'FUNCTION_NAME' is invalid: Error while visiting Function 'assign': 'StringToBoolean(Hello)' failed: Parsing Biz-String into Number failed: Die Eingabezeichenfolge hat das falsche Format. Parametername: str Der tatsächliche Wert war Hello. [Line 51/ Char 10/ Token 'FUNCTION_CALL'] |
« { var numberVar := 1000 if(numberVar = 0) { } if(numberVar >=9999) { // do something } else { // do something else } } »
« { var numberVar := 0 while(numberVar < 10) { // do something ++numberVar } } »
« { for(var i := 1, i <10, ++i) { // do something } } »
« { // function mit default-Value wenn "nichts" übergeben wird function GetValue(var myArg := 1) { if(myArg = 1) { return myArg+5 // Erste Return-Anweisung bestimmt Return-Datentyp: Integer } else { return 08.11.1973 // ACHTUNG: Cast zu Integer: integer(08.11.1973) } } function Main() // Funktion ohne Rückgabe (void) { // Funktion aufrufen und Resultat speichern var result1 := GetValue() var result2 := GetValue(1) } // INFO: Es wird empfohlen eine function Main() zu implementieren (Beginn des Codes) Main() } »
![]() |
WichtigDa F-Script Blöcke zur Laufzeit
kompiliert werden, müssen Funktionen, welche aufgerufen werden, jeweils
vor (oberhalb) stehen damit diese bereits bekannt sind!
Wird dies
nicht eingehalten führt dies zu folgender Fehlermeldung:
Error-160 ..\FF\PLW-BLOCK.FX #135: ReadNextInterpreterLine: Expression-Syntax-Error: Token 'FUNCTION_NAME' is invalid: Function 'Main' not available [Line 138/ Char 4/ Token 'FUNCTION_NAME'] |
« { // ACHTUNG: dies führt zu einem Fehler! throw "something went wrong" } »
using "ScriptBlockLibrary.FBL"
![]() |
WichtigBeachten Sie, dass für Block-Script Libraries
lediglich die Dateiendung .FBL erlaubt ist.
|
{ // Test-Code using "Library_15A.FBL" function Main() { var resultString := LibraryA() SYS("MSG INFO " + resultString) ... ... ... Main() }
{ // Library-File function LibraryA() { // Inhalt LibraryA return "Hey overthere, this is the return value." } }