«базовое» ключевое слово в LibreOffice Basic - PullRequest
2 голосов
/ 06 мая 2019

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

Const BASE = 3

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

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

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

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

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

1 Ответ

1 голос
/ 06 мая 2019

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

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

...