Расширение программы Objective-C с помощью языка сценариев - PullRequest
5 голосов
/ 27 мая 2011

Есть ли готовая реализация интерпретатора для ObjC.По сути, мне нужно, чтобы моя программа была расширяемой с помощью языка сценариев.

Я не уверен, что это уже предусмотрено какой-то платформой, или, возможно, я могу реализовать AppleScript внутри - не уверен, как бы я это сделал.Кажется, это применимо только к автоматизации самой программы, а не к расширению ее собственных функций.

Что-то похожее на средства взаимодействия mIRC с языком сценариев.

Ответы [ 4 ]

4 голосов
/ 27 мая 2011

Вы держите пари, что есть. Это называется FScript ; он с открытым исходным кодом и включает консоль с REPL, в которой вы можете взаимодействовать с объектами Какао. Синтаксис похож на Smalltalk, который очень похож на Objective-C - главное отличие заключается в отсутствии квадратных скобок. Вот некоторые фрагменты из их учебника. Обратите внимание, что переменные не должны быть явно введены!

> imageLocation := NSURL fileURLWithPath:'/Library/Desktop Pictures/Nature/Clown Fish.jpg'.

> image := CIImage imageWithContentsOfURL:imageLocation.

> image drawInRect:(200<>80 extent:600<>400) fromRect:image extent operation:NSCompositeSourceOver fraction:1.

Вас заинтересует их Внедрение FScript в Какао Руководство по применению .

2 голосов
/ 27 мая 2011

Python и Ruby могут взаимодействовать с вызовами Objective C, чтобы вы могли использовать их для расширения функциональности программы.

2 голосов
/ 27 мая 2011

Вы хотите, чтобы ваша программа была скриптовой?Если это так, то вам, вероятно, следует добавить поддержку AppleScript.См. Введение в Руководство по написанию сценариев Какао для получения информации о том, как это сделать.

0 голосов
/ 27 мая 2011

Objective C не является языком сценариев, поэтому у него нет переводчика. Его можно скомпилировать только в машинные коды.

Если вы хотите использовать язык сценариев, предложите Lua. Это действительно легкий и легкий, но все же очень мощный. Вы можете использовать его со своими родными программами на C / C ++, а также с привязками ObjC.

В любом случае любой язык сценариев (Python, Lua, AppleScript и т. Д.) Построен на основе какого-то родного языка программирования (обычно C или C ++), и если вы хотите расширить свою программу новыми функциями, вам все равно нужно сначала реализовать их, используя родной язык.

Для начала: Как связать Lua . Это для C ++, но то же самое для C и ObjC (так как это расширенный набор C)

...