Написание скриптов
Подскажите где можно взять описание компилятора (в частности Basic) и перечень операторов поддерживаемых компилятором?
Этот перечень я видел в документации.
Но видимо у меня не хватает знаний в нем разобраться.
Прошу указать где об этом можно более подробно узнать.
Спасибо!
Занимался я тут вопросом записи в базу данных произвольных значений с помощью SaveChannelToDB.
Получил необычные результаты.
Долго разбирался пока не заподозрил неладное.
Проверил эту догадку - и действительно - запись в базу данных вовсе не изменяет имеющееся там значение (как я ожидал), а просто кидает еще одно значение. Примерно так:
10.06.2015 2:00:00 33
10.06.2015 2:00:00 77
Так и должно быть? :unsure:
Или есть еще какие-то варианты ?
Синтаксис BasicScript
[spoiler]
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
[/spoiler]
Структура BasicScript
[spoiler]
#language BasicScript // опционально
imports "unit1.vb", "unit2.vb"
// раздел imports - должен быть перед любым другим разделом
dim i, j = 0 // раздел переменных - может быть в любом месте
function p1() // функции
{ //
}
// главная исполняемая функция.
for i = 0 to 10
p1()
next
[/spoiler]