LMD ScriptPack Guide
<Unit> ::=
[<BR>] {<Decl>} END_OF_FILE
<Decl> ::=
{<StmtList> | <FuncDecl> | <SubDecl>}
<FuncDecl> ::=
Function <Identifier> ["(" <ParamList> ")"] <BR>
<StmtList>
End Function <BR>
<SubDecl> ::=
Sub <Identifier> ["(" <ParamList> ")"] <BR>
<StmtList>
End Sub <BR>
<ParamList> ::=
[<ParamModifier> <Identifier> {"," <ParamModifier> <Identifier>}]
<ParamModifier> ::=
[ByRef | ByVal]
<Statement> ::=
<ExprStmt> |
<SetStmt> |
<EraseStmt> |
<CallStmt> |
<ExitStmt> |
<DimStmt> |
<RedimStmt> |
<ForStmt> |
<IfStmt> |
<DoLoopStmt> |
<SelectStmt> |
<TryStmt> |
<ThrowStmt> |
<ReturnStmt>
<StmtList> ::=
{<Statement> <BR>}
<ReturnStmt> ::=
Return [<Expression>]
<TryStmt> ::=
Try <BR> <StmtList> {Catch [<Identifier> As <Expression>] <BR> <StmtList>}
[Finally <BR> <StmtList>]
End Try
<ThrowStmt> ::=
Throw [<Expression>]
<DoLoopStmt> ::=
Do ((<WUExpr> [<BR>] <StmtList> Loop) |
(<BR> <StmtList> Loop [<WUExpr>]))
<WUExpr> ::=
(While | Until) <Expression>
<IfStmt> ::=
If <Expression> Then ((<StmtList> [Else <StmtList>]) |
(<BR> <StmtList>
{ElseIf <Expression> Then <BR> <StmtList>}
[Else <BR> <StmtList>]
End If))
<ForStmt> ::=
For <Identifier> "=" <Expression> To <Expression>
[Step <Expression>] <BR> <StmtList> Next
<ExitStmt> ::=
Exit (For | Do | Function | Sub)
<SelectStmt> ::=
Select Case <Expression> <BR>
{Case ((<Expression> {"," <Expression>}) | Else) [<BR>] <StmtList>}
End Select
<CallStmt> ::=
Call <Designator>
<EraseStmt> ::=
Erase <Designator>
<SetStmt> ::=
Set <Designator> "=" <Expression>
<DimStmt> ::=
Dim <VarDec> {"," <VarDec>}
<RedimStmt> ::=
Redim [Preserve] <VarDec> {"," <VarDec>}
<VarDecl> ::=
<Identifier> ["(" [<ArrayDim>] ")" [As <Identifier>] |
"=" <Expression>] // '='... only for dim.
<ArrayDim> ::=
<Expression> {"," <Expression>}
<ExprStmt> ::=
<Designator> ["=" <Expression> | [","] <Expression> {"," <Expression>}]
<Expression> ::=
<EqvExpr> {Imp <EqvExpr>}
<EqvExpr> ::=
<XorExpr> {Eqv <XorExpr>}
<XorExpr> ::=
<OrExpr> {Xor <OrExpr>}
<OrExpr> ::=
<AndExpr> {Or <AndExpr>}
<AndExpr> ::=
<CompareExpr> {And <CompareExpr>}
<CompareExpr> ::=
<TypeOfExpr> {<CompareOp> <TypeOfExpr>}
<CompareOp> ::=
Is [Not] | ">=" | "=<" | ">" | "<" | "<>" | "="
<TypeOfExpr> ::=
<ConcatExpr> |
TypeOf <TypeOfExpr> [Is <ConcatExpr>]
<ConcatExpr> ::=
<AddExpr> {"&" <AddExpr>}
<AddExpr> ::=
<ModExpr> {<AddOp> <ModExpr>}
<AddOp> ::=
"+" | "-"
<ModExpr> ::=
<MultIntExpr> {Mod <MultIntExpr>}
<MultIntExpr> ::=
<MultExpr> {"\" <MultExpr>}
<MultExpr> ::=
<ExpExpr> {<MultOp> <ExpExpr>}
<MultOp> ::=
"*" | "/"
<ExpExpr> ::=
<ValueExpr> {"^" <ValueExpr>}
<ValueExpr> ::=
<Designator> |
<NewExpr> |
True |
False |
INT_LITERAL |
FLOAT_LITERAL |
STRING_LITERAL |
DATE_LITERAL |
Nothing |
Null |
Empty |
"+" <ValueExpr> |
"-" <ValueExpr> |
Not <ValueExpr> |
"(" <Expression> ")"
<NewExpr> ::=
<Identifier> {"." <Identifier>} [<Arguments>]
<DesignatorTail>
<Designator> ::=
<Identifier> <DesignatorTail>
<DesignatorTail> ::=
{"." <Identifier> | <Arguments>}
<Arguments> ::=
"(" [<Expression> {"," <Expression>}] ")"
<BR> ::=
(BR | ":") {BR | ":"}
<Identifier> ::=
IDENTIFIER