базовое ключевое слово в LibreOffice Basic

Я пишу макрос для LibreOffice Calc на языке Basic в режиме совместимости с VBA. Он жалуется, когда я использую эту строку:

Const BASE = 3

Ошибка синтаксиса BASIC.
Ожидаемый символ.

и цвет синтаксиса, кажется, указывает на то, что «BASE» является ключевым словом или зарезервированным словом. Другие константы в макросе принимаются без проблем. Также эта строка принимается в VBA в Excel.

Я изменю имя, чтобы избежать этой проблемы, однако я не могу найти какую-либо документацию, которая ссылается на это как на какое-либо зарезервированное слово. Я предполагаю, что это как-то связано с числовыми базами или с именем базы данных LO. Однако такие слова, как «WRITER» и «CALC» не действуют одинаково - они кажутся принятыми в качестве имен для констант. Обратите внимание, что мое использование этого слова в любом случае не связано с базой данных.

Кроме того, к сожалению, LO Basic, похоже, не имеет немедленного режима (REPL), поэтому я не могу легко поиграть с этим словом, чтобы определить, для чего оно используется.

Не могли бы вы указать мне на какую-нибудь документацию по ключевому слову BASE?


person Dennis Williamson    schedule 06.05.2019    source источник
comment
Лучший вопрос, который я видел за долгое время. Очевидно, вы заслужили всю репутацию.   -  person Jim K    schedule 06.05.2019


Ответы (1)


Это хорошие предположения, но, как оказалось, они неверны. Слово употребляется следующим образом:

Option Base 1

Это может быть 0 или 1, чтобы обозначить, какой индекс относится к первому элементу массива, как описано в https://wiki.openoffice.org/wiki/G11ntest/Documentation/BASIC_Guide/Arrays.

Чтобы обнаружить это, я просмотрел исходный код LibreOffice. Файл /basic/source/inc/parser.hxx оказался полезным. Это наиболее близкое приближение к списку доступных ключевых слов, судя по этот пост.

По-видимому, этот оператор был заимствован из VBA: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/option-base-statement

person Jim K    schedule 06.05.2019
comment
Спасибо. Это единственная альтернатива, которая не приходила в голову. Страница OO wiki, на которую вы ссылаетесь, действительно ужасна. Я нашел эту страницу LibreOffice на Option Base, которая отформатировал намного лучше. - person Dennis Williamson; 06.05.2019
comment
Еще один комментарий, который может немного выходить за рамки вопроса: Python-UNO в настоящее время обычно предпочтительнее, чем LO Basic. Он имеет хорошо задокументированные ключевые слова и живую подсказку, такую ​​как немедленный режим VBA. - person Jim K; 06.05.2019
comment
Да, я, скорее всего, перехожу на Python, потому что Basic - фу. - person Dennis Williamson; 06.05.2019
comment
Рад это слышать. - person Jim K; 06.05.2019