Syntax
Top  Next


Here below there is the syntax for programming by script language.

SCRIPT = BLOCKLIST

BLOCKLIST =[ BLOCK { ";" BLOCK } [";"] ]

BLOCK =    "begin" BLOCKLIST "end" |
   INSTR

INSTR =    
   "if" EXPR "then" BLOCK |
   "if" EXPR "then" BLOCK "else" BLOCK |
   "for" VAR ":=" EXPR "to" EXPR "do" BLOCK |
   "for" VAR ":=" EXPR "down to" EXPR "do" BLOCK |
   "while" EXPR "do" BLOCK |
   "repeat" BLOCKLIST "until" EXPR |
   VAR ":=" EXPR |
   FUNC |
   CONSTDECL

CONSTDECL ="const" "=" CONST ";"

FUNC =NAME [ "(" [EXPR {, EXPR}] ")" ]

EXPR =EXPRADD [ "=" EXPRADD]
   
EXPRADD = EXPRMUL [ "+" | "-" | "or" ]EXPRADD
   
EXPRMUL = TERM [ "*" | "/" | "and" | "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 = CHAR |" ' " {STRINGCHAR} " ' " [ STRING ]

STRINGCHAR =ASCII(0)..ASCII(255) - " ' " - ASCII(13) | " '' "

CHAR ="#" INT | "#" HEXINT

HEXINT =   "$" HEXNUM {HEXNUM}

HEXNUM = NUM | "A".."F" | "a".."f"

FLOAT =    INT [ "." INT ] [ "e" | "E" [ "+" "-" ] INT ]

INT =    NUM {NUM}

NUM =    "0".."9"

In inverted commas there are elements which could be used in the code, while the upper-cases words are indicative and then have to be replaced in the code by the equivalent instruction, expression, constant, variable, instruction block etc... .