Language reference

Top  Previous  Next

PascalScript syntax:

 

Program -> [PROGRAM Ident ';']

          [UsesClause]      

          Block '.'          

 

UsesClause -> USES (String/,)... ';'

 

Block -> [DeclSection]...  

        CompoundStmt      

 

DeclSection -> ConstSection        

           -> VarSection          

           -> ProcedureDeclSection

 

ConstSection -> CONST (ConstantDecl)...

 

ConstantDecl -> Ident '=' Expression ';'

 

VarSection -> VAR (VarList ';')...

 

VarList -> Ident/','... ':' TypeIdent [InitValue]

 

TypeIdent -> Ident

         -> Array

 

Array -> ARRAY '[' ArrayDim/','... ']' OF Ident

 

ArrayDim -> Expression..Expression

        -> Expression            

 

InitValue -> '=' Expression

 

Expression -> SimpleExpression [RelOp SimpleExpression]...

 

SimpleExpression -> ['-'] Term [AddOp Term]...

 

Term -> Factor [MulOp Factor]...

 

Factor -> Designator                    

      -> UnsignedNumber                

      -> String                        

      -> '(' Expression ')'            

      -> NOT Factor                    

      -> '[' SetConstructor ']'        

 

SetConstructor -> SetNode/','...

 

SetNode -> Expression ['..' Expression]

 

RelOp -> '>'  

     -> '<'  

     -> '<='

     -> '>='

     -> '<>'

     -> '='  

     -> IN  

     -> IS  

 

AddOp -> '+'

     -> '-'

     -> OR  

     -> XOR

 

MulOp -> '*'

     -> '/'  

     -> DIV  

     -> MOD  

     -> AND

     -> SHL  

     -> SHR  

 

Designator -> ['@'] Ident ['.' Ident | '[' ExprList ']' | '(' ExprList ')']...

 

ExprList -> Expression/','...

 

Statement -> [SimpleStatement | StructStmt]

 

StmtList -> Statement/';'...

 

SimpleStatement -> Designator                    

               -> Designator ':=' Expression    

               -> BREAK | CONTINUE | EXIT      

 

StructStmt -> CompoundStmt      

          -> ConditionalStmt    

          -> LoopStmt          

          -> TryStmt            

          -> WithStmt          

 

CompoundStmt -> BEGIN StmtList END  

 

ConditionalStmt -> IfStmt    

               -> CaseStmt  

 

IfStmt -> IF Expression THEN Statement [ELSE Statement]

 

CaseStmt -> CASE Expression OF CaseSelector/';'... [ELSE Statement] [';'] END

 

CaseSelector -> SetConstructor ':' Statement

 

LoopStmt -> RepeatStmt

        -> WhileStmt  

        -> ForStmt    

 

RepeatStmt -> REPEAT StmtList UNTIL Expression

 

WhileStmt -> WHILE Expression DO Statement

 

ForStmt -> FOR Ident ':=' Expression ToDownto Expression DO Statement

 

ToDownto -> (TO | DOWNTO)

 

TryStmt -> TRY StmtList (FINALLY | EXCEPT) StmtList END

 

WithStmt -> WITH (Designator/,..) DO Statement

 

ProcedureDeclSection -> ProcedureDecl

                    -> FunctionDecl  

 

ProcedureDecl -> ProcedureHeading ';'

                Block ';'            

 

ProcedureHeading -> PROCEDURE Ident [FormalParameters]

 

FunctionDecl -> FunctionHeading ';'

               Block ';'

 

FunctionHeading -> FUNCTION Ident [FormalParameters] ':' Ident

 

FormalParameters -> '(' FormalParam/';'... ')'

 

FormalParm -> [VAR | CONST] VarList

 

 

C++Script syntax:

 

Program -> [UsesClause]

          [DeclSection]...

          CompoundStmt

 

UsesClause -> '#' INCLUDE (String/,)...

 

DeclSection -> ConstSection

           -> ProcedureDeclSection

           -> VarStmt ';'

 

ConstSection -> '#' DEFINE ConstantDecl

 

ConstantDecl -> Ident Expression

 

VarStmt -> Ident Ident [Array] [InitValue] /','...

 

ArrayDef -> '[' ArrayDim/','... ']'

 

ArrayDim -> Expression

 

InitValue -> '=' Expression

 

Expression -> SimpleExpression [RelOp SimpleExpression]...

 

SimpleExpression -> ['-'] Term [AddOp Term]...

 

Term -> Factor [MulOp Factor]...

 

Factor -> Designator

      -> UnsignedNumber                

      -> String

      -> '(' Expression ')'            

      -> '!' Factor

      -> '[' SetConstructor ']'        

      -> NewOperator

 

SetConstructor -> SetNode/','...

 

SetNode -> Expression ['..' Expression]

 

NewOperator -> NEW Designator

 

RelOp -> '>'  

     -> '<'

     -> '<='

     -> '>='

     -> '!='

     -> '=='

     -> IN  

     -> IS

 

AddOp -> '+'

     -> '-'

     -> '||'

     -> '^'

 

MulOp -> '*'  

     -> '/'

     -> '%'

     -> '&&'

     -> '<<'  

     -> '>>'

 

Designator -> ['&'] Ident ['.' Ident | '[' ExprList ']' | '(' ExprList ')']...

 

ExprList -> Expression/','...

 

Statement -> [SimpleStatement ';' | StructStmt | EmptyStmt]

 

EmptyStmt -> ';'

 

StmtList -> (Statement...)

 

SimpleStatement -> DeleteStmt

               -> AssignStmt

               -> VarStmt                  

               -> CallStmt                  

               -> ReturnStmt

               -> (BREAK | CONTINUE | EXIT)  

 

DeleteStmt -> DELETE Designator

 

AssignStmt -> Designator ['+'|'-'|'*'|'/']'=' Expression

 

CallStmt -> Designator ['+''+'|'-''-']

 

ReturnStmt -> RETURN [Expression]

 

StructStmt -> CompoundStmt      

          -> ConditionalStmt

          -> LoopStmt          

          -> TryStmt

 

CompoundStmt -> '{' [StmtList] '}'

 

ConditionalStmt -> IfStmt

               -> CaseStmt  

 

IfStmt -> IF '(' Expression ')' Statement [ELSE Statement]

 

CaseStmt -> SWITCH '(' Expression ')' '{' (CaseSelector)... [DEFAULT ':' Statement] '}'

 

CaseSelector -> CASE SetConstructor ':' Statement

 

LoopStmt -> RepeatStmt

        -> WhileStmt

        -> ForStmt    

 

RepeatStmt -> DO Statement [';'] WHILE '(' Expression ')' ';'

 

WhileStmt -> WHILE '(' Expression ')' Statement

 

ForStmt -> FOR '(' ForStmtItem ';' Expression ';' ForStmtItem ')' Statement

 

ForStmtItem -> AssignStmt

           -> VarStmt

           -> CallStmt

           -> Empty      

 

TryStmt -> TRY CompoundStmt (FINALLY | EXCEPT) CompoundStmt

 

FunctionDecl -> FunctionHeading CompoundStmt

 

FunctionHeading -> Ident Ident [FormalParameters]

 

FormalParameters -> '(' [FormalParam/';'...] ')'

 

FormalParam -> TypeIdent (['&'] Ident [InitValue]/',')...

 

 

JScript syntax:

 

Program -> Statements

 

Statements -> Statement...

 

Block -> '{' Statements '}'

 

ImportStmt -> IMPORT (String/,)...

 

VarStmt -> VAR (VarDecl/',')...

 

VarDecl -> Ident [Array] [InitValue]

 

Array -> '[' (ArrayDim/',')... ']'

 

ArrayDim -> Expression

 

InitValue -> '=' Expression

 

Expression -> SimpleExpression [RelOp SimpleExpression]...

 

SimpleExpression -> ['-'] Term [AddOp Term]...

 

Term -> Factor [MulOp Factor]...

 

Factor -> Designator

      -> UnsignedNumber

      -> String

      -> '(' Expression ')'

      -> '!' Factor

      -> '[' SetConstructor ']'

      -> NewOperator

      -> '<' FRString '>'

 

SetConstructor -> SetNode/','...

 

SetNode -> Expression ['..' Expression]

 

NewOperator -> NEW Designator

 

RelOp -> '>'

     -> '<'

     -> '<='

     -> '>='

     -> '!='

     -> '=='

     -> IN

     -> IS

 

AddOp -> '+'

     -> '-'

     -> '||'

     -> '^'

 

MulOp -> '*'

     -> '/'

     -> '%'

     -> '&&'

     -> '<<'

     -> '>>'

 

Designator -> ['&'] Ident ['.' Ident | '[' ExprList ']' | '(' [ExprList] ')']...

 

ExprList -> Expression/','...

 

Statement -> (AssignStmt | CallStmt | BreakStmt | ContinueStmt |

             DeleteStmt | DoWhileStmt | ForStmt | FunctionStmt |

             IfStmt | ImportStmt | ReturnStmt | SwitchStmt |

             VarStmt | WhileStmt | WithStmt | Block) [';']

 

BreakStmt -> BREAK

 

ContinueStmt -> CONTINUE

 

DeleteStmt -> DELETE Designator

 

AssignStmt -> Designator ['+'|'-'|'*'|'/']'=' Expression

 

CallStmt -> Designator ['+''+'|'-''-']

 

ReturnStmt -> RETURN [Expression]

 

IfStmt -> IF '(' Expression ')' Statement [ELSE Statement]

 

SwitchStmt -> SWITCH '(' Expression ')' '{' (CaseSelector)... [DEFAULT ':' Statement] '}'

 

CaseSelector -> CASE SetConstructor ':' Statement

 

DoWhileStmt -> DO Statement [';'] WHILE '(' Expression ')' ';'

 

WhileStmt -> WHILE '(' Expression ')' Statement

 

ForStmt -> FOR '(' ForStmtItem ';' Expression ';' ForStmtItem ')' Statement

 

ForStmtItem -> AssignStmt

           -> CallStmt

           -> VarStmt

           -> Empty

 

TryStmt -> TRY CompoundStmt (FINALLY | EXCEPT) CompoundStmt

 

FunctionStmt -> FunctionHeading Block

 

FunctionHeading -> FUNCTION Ident FormalParameters

 

FormalParameters -> '(' [FormalParam/','...] ')'

 

FormalParam -> ['&'] Ident

 

WithStmt -> WITH '(' Designator ')' Statement

 

 

BasicScript syntax:

 

Program -> Statements            

 

Statements -> (EOL | StatementList EOL)...  

 

StatementList -> Statement/':'...  

 

ImportStmt -> IMPORTS (String/,)...

 

DimStmt -> DIM (VarDecl/',')...

 

VarDecl -> Ident [Array] [AsClause] [InitValue]  

 

AsClause -> AS Ident  

Array -> '[' ArrayDim/','... ']'  

 

ArrayDim -> Expression  

 

InitValue -> '=' Expression  

 

Expression -> SimpleExpression [RelOp SimpleExpression]...

 

SimpleExpression -> ['-'] Term [AddOp Term]...

 

Term -> Factor [MulOp Factor]...

 

Factor -> Designator                    

      -> UnsignedNumber                

      -> String                        

      -> '(' Expression ')'            

      -> NOT Factor                    

      -> NewOperator                    

      -> '<' FRString '>'              

 

SetConstructor -> SetNode/','...  

 

SetNode -> Expression ['..' Expression]  

 

NewOperator -> NEW Designator  

 

RelOp -> '>'  

     -> '<'  

     -> '<='  

     -> '>='  

     -> '<>'  

     -> '='  

     -> IN    

     -> IS    

 

AddOp -> '+'  

     -> '-'  

     -> '&'  

     -> OR  

     -> XOR  

 

MulOp -> '*'    

     -> '/'    

     -> '\'    

     -> MOD    

     -> AND    

 

Designator -> [ADDRESSOF] Ident ['.' Ident | '[' ExprList ']' | '(' [ExprList] ')']...  

 

ExprList -> Expression/','...  

 

Statement -> BreakStmt

         -> CaseStmt

         -> ContinueStmt

         -> DeleteStmt

         -> DimStmt

         -> DoStmt

         -> ExitStmt

         -> ForStmt

         -> FuncStmt

         -> IfStmt

         -> ImportStmt

         -> ProcStmt

         -> ReturnStmt

         -> SetStmt

         -> TryStmt

         -> WhileStmt

         -> WithStmt

         -> AssignStmt

         -> CallStmt  

 

BreakStmt -> BREAK  

 

ContinueStmt -> CONTINUE  

ExitStmt -> EXIT  

DeleteStmt -> DELETE Designator  

 

SetStmt -> SET AssignStmt  

 

AssignStmt -> Designator ['+'|'-'|'*'|'/']'=' Expression  

 

CallStmt -> Designator ['+''+'|'-''-']  

 

ReturnStmt -> RETURN [Expression]  

 

IfStmt -> IF Expression THEN ThenStmt  

 

ThenStmt -> EOL [Statements] [ElseIfStmt | ElseStmt] END IF  

        -> StatementList                                    

 

ElseIfStmt -> ELSEIF Expression THEN

             (EOL [Statements] [ElseIfStmt | ElseStmt] | Statement)  

 

ElseStmt -> ELSE (EOL [Statements] | Statement)  

 

CaseStmt -> SELECT CASE Expression EOL

           (CaseSelector...) [CASE ELSE ':' Statements] END SELECT  

 

CaseSelector -> CASE SetConstructor ':' Statements

 

DoStmt -> DO [Statements] LOOP (UNTIL | WHILE) Expression  

 

WhileStmt -> WHILE Expression [Statements] WEND  

 

ForStmt -> FOR Ident '=' Expression TO Expression [STEP Expression] EOL

          [Statements] NEXT  

 

TryStmt -> TRY Statements (FINALLY | CATCH) [Statements] END TRY

 

WithStmt -> WITH Designator EOL Statements END WITH  

 

ProcStmt -> SUB Ident [FormalParameters] EOL [Statements] END SUB

 

FuncStmt -> FUNCTION Ident [FormalParameters] [AsClause] EOL

           [Statements] END FUNCTION  

 

FormalParameters -> '(' (FormalParam/',')... ')'  

 

FormalParm -> [BYREF | BYVAL] VarList  

Converted from CHM to HTML with chm2web Standard 2.85 (unicode)