Особенности синтаксиса

Особенности синтаксиса

Здесь обсуждаем особенности синтаксического разбора QSP. Не выполнение команд, а именно алгоритм разбора строки кода на составляющие.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Знак "&" служит для "склеивания" строк, и одновременно для разделения операторов. Это сильно усложняет синтаксический разбор кода, создавая всякие неоднозначности.

Например, вот так писать нельзя:

Код:

IF $CURLOC = 'S' & 'A' :

END

А так - можно.

Код:

IF $CURLOC = ('S' & 'A') :

END

Наряду со знаком "&", для "склеивания" строк используется знак "+". Но приоритет у них разный, поэтому следующие записи приведут к разному результату:

Код:

$b = 'ppp' & 'bbb'

$b = 'ppp' + 'bbb'

Первая строка - последовательное выполнение операторов присваивания и вывода на экран, вторая строка - "склейка" строки и запись результата в переменную.

Следующий код выведет разный результат:

Код:

('d1' = 'd' + 1)

('d1' = 'd' & 1)

Первая строка:
1. склейка "d" и "1"
2. сравнение, возвращает -1 (истина)
3. вывод "-1"

Вторая строка:
1. сравнение "d1" и "d", возвращает 0 (ложь)
2. склейка "0" и "1"
3. вывод "01"

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

То есть лучше писать "and"?

Евген
Евгениусис
useravatar
Offline
1548 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Nex,
С приоритетом операции "&" сейчас ошибка - приоритет должен быть ниже, чем у "+", но выше, чем у "=".
Будет исправлено в след. версии.

Byte
useravatar
Offline
596 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Byte,
то есть записи станут эквивалентны?

Я бы предпочел, конечно, чтобы "&" использовался только для разделения операторов, иначе действительно очень много путаницы возникает. Это возможно?

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Евген,
в эту тему вообще не заглядывай, эти вопросы настолько сложны, что я не в силах тебе их объяснить. Тебе нет нужды интересоваться этим. Чисто техническая тема.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Nex на мой взгляд путаницы нет, если разделять операторы и выражения smile
В операторах это разделитель операторов, в выражениях это объединение строк.

Byte
useravatar
Offline
596 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Byte,
на первый вопрос не ответил.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Nex,
нет, у "&" приоритет будет немного ниже, чем у "+".

Byte
useravatar
Offline
596 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Особенности синтаксиса

Byte,
я спросил конкретно про те строки - они выполнятся с одинаковым результатом?

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1006
Всего опросов:
14
Всего сообщений:
16790890
Всего сообщений сегодня:
2
Пользователи форума:
 
Всего пользователей:
2585
Последним зарегистрировался:
McFly