DelphiWebScriptSyntax
|
||||
| Homepage DWS |
The
description of the syntax uses the EBNF ("Enhanced
Bachus Nauer Form"). SCRIPT =
[ BLOCK { ";" BLOCK } [ ";" ] ]
BLOCK =
"begin" [ BLOCK { ";" BLOCK } [ ";" ] ] "end" |
STMNT
STMNT =
"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 |
CONSTDECL
CONSTDECL =
"const" "=" CONST
FUNC =
NAME [ "." NAME ] [ "(" [EXPR {, EXPR}] ")" ]
EXPR =
EXPRADD { "=" | "<" | "<="| "=>"| ">" | "<>" EXPRADD }
EXPRADD =
EXPRMUL { "+" | "-" | "or" | "xor" EXPRMUL }
EXPRMUL =
TERM { "*" | "/" | "mod" | "div" | "and" TERM }
TERM =
"+" TERM |
"-" TERM |
"not" TERM |
CONST |
VAR |
FUNC |
"(" EXPR ")"
CONST =
INT |
HEXINT |
FLOAT |
STR |
CHAR |
"True" |
"False"
VAR =
NAME [ "." NAME ]
NAME =
LIT {LIT | "0".."9" | "_"}
LIT =
"A".."Z", "a".."z"
STR =
CHAR |
STRING { CHAR [ STRING ] }
STRING =
" ' " { STRINGCHAR } " ' " { " ' " STRING }
STRINGCHAR =
ASCII(0)..ASCII(255) - " ' " - ASCII(13) | " ' ' "
CHAR =
"#" INT | "#" HEXINT
HEXINT =
"$" HEXNUM { HEXNUM }
HEXNUM =
"0".."9"|"A".."F"|"a".."f"
FLOAT =
INT [ "." INT] [ "E" | "e" ["+" | "-" ] INT ]
INT =
NUM {NUM}
NUM =
"0".."9"
|
|||