TScriptSyntax |
||||
Homepage TScript Syntax |
The
description of the syntax uses the EBNF ("Enhanced
Bachus Nauer Form") SCRIPT = {CONSTDECL} {INSTR} CONSTDECL = "const" "=" CONST ";" INSTR = "if" EXPR "then" BLOCK | "if" EXPR "then" BLOCK "else" BLOCK | "for" VAR ":=" EXPR "to" EXPR "do" BLOCK | "for" VAR ":=" EXPR "downto" EXPR "do" BLOCK | "while" EXPR "do" BLOCK | "repeat" [BLOCK {";" BLOCK} [";"]] "until" EXPR | VAR ":=" EXPR | FUNC | BLOCK BLOCK = "begin" [BLOCK {";" BLOCK} [";"]] "end" | INSTR FUNC = NAME [ "(" [EXPR {, EXPR}] ")" ] EXPR = EXPRADD ["="|"+"|"-"|"OR" EXPRADD] EXPRADD = EXPRMUL ["+"|"-"|"OR" EXPRADD] EXPRMUL = TERM ["*"|"/"|"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 = "'" {STRINGCHAR} "'" STRINGCHAR = ASCII(0)..ASCII(255) - "'" - ASCII(13) | "''" CHAR = "#" NUM {NUM} HEXINT = "$" NUM {NUM} HEXNUM = "0".."9"|"A".."F"|"a".."f" FLOAT = INT"."[["e"]INT] INT = ["-"] NUM {NUM} NUM = "0".."9" Syntax of TFunc-Declaraions:DECLARATION = NAME [ PARAMLIST { "," PARAMLIST } ] [":" FUNCTYPE] [ ";" ] PARAMLIST = "(" [PARAM { ";" PARAM}] ")" PARAM = [ "var" | "func" ] [ "array" ] TYPE {TYPE} ["open"] FUNCTYPE = ["array"] TYPE {TYPE} TYPE = "void" | "boolean" | "integer" | "float" | "string" | "all" | "mult" | "add" | |