; EBNF Syntax for FORMOSA (fScript) 1.0 ; (c) 1999-2001 J. W. Dietrich, University of Munich, Germany script = block. block = {"global" ident {"," ident}} {"on" ident "(" expression ")" block "end" [ident]} statement. statement = ["set" ident "to" expression | ident | "display dialog" expression | "beep" [expression] | "if" condition "then" statement ["else" statement] "end if" | statement]. condition = expression ("=" | "<>" | "<" | "<=" | ">" | ">=") expression. expression = string | (["+" | "-"] term {("+" | "-") term}). term = factor {("**" | "*" | "/") factor}. factor = ident | number | "(" expression ")" | "sqr" factor | "sqrt" factor | "sin" factor | "cos" factor | "exp" factor | "ln" factor | "arctan" factor. ident = letter {letter | digit}. number = digit {digit} ["." digit {digit}] ["e" ["+" | "-"] digit {digit}]. string = """ {character} """. character = letter | digit.