Написание скриптов

Avatar
  • обновлен
Подскажите где можно взять описание компилятора (в частности Basic) и перечень операторов поддерживаемых компилятором?
Avatar
Barbus
Уважаемые разработчики! Проблема в том, что, по большей части - мыжНЕпрограммисты! И работа со скадой зачастую далеко не основная обязанность. Привлекать программиста накладно, ещё надо умудриться объяснить, чего тебе надо. Ему надо умудриться правильно понять и опять же разобраться с особенностями редактора. И всё это ради десяти строчек. А в случае вылезающих в процессе косяков становится вообще непонятно, кто виноват и что исправлять. И как?

То, что выложено под спойлерами - тёмный лес, поверьте.
Хочется видеть что-то такое. Это хелп из другой скады.

BitAnd
Описание
Выполнить операцию побитового AND между Value1 и Value2

Синтаксис
int BitAnd(int Value1, int Value2)

Параметры
Value1 = первое обрабатываемое число
Value2 = второе обрабатываемое число

Возвращаемое значение
Результат операции Value1 AND Value2

Связанные функции
BitOr(), BitXor(), BitNot()

Пример

int Result;
int Value1;
int Value2;
Value1=HexStrToInt("0xFFA7");
Value2=HexStrToInt("0x0FF5");

Result=BitAnd(Value1,Value2);

В результате получится 0xFA5


Понятно, что сваять подобный хелп, да ещё с примерами на четыре языка - серьёзная работа. Но даже наличие простого списка со всеми функциями, операторами и что там ещё бывает, очень поможет. Со всеми, в том числе if… then, for… next, < > и т.д. Иначе возникает дурацкая ситуация, когда изрядно порывшись в интернете, пишешь скрипт, а он не работает, поскольку какая-то функция здесь не поддерживается.
Avatar
SIMP Tech (Сергей)
Добрый вечер.


Этот перечень я видел в документации.
Но видимо у меня не хватает знаний в нем разобраться.
Прошу указать где об этом можно более подробно узнать.
Спасибо!

Прошу прощение за задержку с ответом. Опишите подробней что именно Вы хотите уточнить? Синтаксис языка Basic?
Avatar
Александр
Этот перечень я видел в документации.
Но видимо у меня не хватает знаний в нем разобраться.
Прошу указать где об этом можно более подробно узнать.
Спасибо!
Avatar
SIMP Tech (Сергей)
День добрый.

Подскажите где можно взять описание компилятора (в частности Basic) и перечень операторов поддерживаемых компилятором?

Синтаксис 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]