Here below there is the syntax for programming by script language.
SCRIPT = BLOCKLIST
BLOCKLIST =[ BLOCK { ";" BLOCK } [";"] ]
BLOCK = "begin" BLOCKLIST "end" |
INSTR
INSTR =
"if" EXPR "then" BLOCK |
"if" EXPR "then" BLOCK "else" BLOCK |
"for" VAR ":=" EXPR "to" EXPR "do" BLOCK |
"for" VAR ":=" EXPR "down to" EXPR "do" BLOCK |
"while" EXPR "do" BLOCK |
"repeat" BLOCKLIST "until" EXPR |
VAR ":=" EXPR |
FUNC |
CONSTDECL
CONSTDECL ="const" "=" CONST ";"
FUNC =NAME [ "(" [EXPR {, EXPR}] ")" ]
EXPR =EXPRADD [ "=" EXPRADD]
EXPRADD = EXPRMUL [ "+" | "-" | "or" ]EXPRADD
EXPRMUL = TERM [ "*" | "/" | "and" | "mod" | "div"] EXPRMUL
TERM =
"+" TERM |
"-" TERM |
"not" TERM |
CONST |
VAR |
FUNC |
"(" EXPR ")"
CONST =
INT |
HEXINT |
FLOAT |
STRING |
CHAR |
"True" |
"False"
VAR= NAME |
NAME "[" INT "]"
NAME = LIT {LIT | "0".."9" | "_"}
LIT ="A".."Z", "a".."z"
STRING = CHAR |" ' " {STRINGCHAR} " ' " [ STRING ]
STRINGCHAR =ASCII(0)..ASCII(255) - " ' " - ASCII(13) | " '' "
CHAR ="#" INT | "#" HEXINT
HEXINT = "$" HEXNUM {HEXNUM}
HEXNUM = NUM | "A".."F" | "a".."f"
FLOAT = INT [ "." INT ] [ "e" | "E" [ "+" "-" ] INT ]
INT = NUM {NUM}
NUM = "0".."9"
In inverted commas there are elements which could be used in the code, while the upper-cases words are indicative and then have to be replaced in the code by the equivalent instruction, expression, constant, variable, instruction block etc... .