TScriptSyntax
|
||||
| Homepage TScript |
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" |
|
|||