![]() |
![]() |
![]() |
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" |