Ища (c) примеры шепелявости мини-языков, то есть, [закрытый] DSLs

Для Xcode 7 у вас есть намного более простое решение. Единственная дополнительная работа заключается в том, что вам нужно создать файл конфигурации для экспорта архива.

(По сравнению с Xcode 6, в результатах xcrun xcodebuild -help, -exportFormat и -exportProvisioningProfile опции больше не упоминаются; первый удален, а последний заменен -exportOptionsPlist.)

Шаг 1 , измените каталог на папку, включающую файл .xcodeproject или .xcworkspace.

cd MyProjectFolder

Шаг 2 , используйте Xcode или /usr/libexec/PlistBuddy exportOptions.plist для создания файла опций экспорта. Кстати, xcrun xcodebuild -help скажет вам, какие ключи нужно вставить в файл plist.

Шаг 3 , создайте файл .xcarchive (фактически, папку) (сборка / каталог будет автоматически создан XCode прямо сейчас),

xcrun xcodebuild -scheme MyApp -configuration Release archive -archivePath build/MyApp.xcarchive

Шаг 4 , экспортируйте как файл .ipa следующим образом, который отличается от Xcode6

xcrun xcodebuild -exportArchive -exportPath build/ -archivePath build/MyApp.xcarchive/ -exportOptionsPlist exportOptions.plist

Теперь вы получаете файл ipa в каталоге build /. Просто отправьте его в Apple App Store.

Кстати, файл ipa, созданный Xcode 7, намного больше, чем Xcode 6.

6
задан gnat 3 February 2015 в 10:37
поделиться

7 ответов

Если вы еще не видели тем не менее, книга Practical Common Lisp доступна бесплатно в Интернете и содержит несколько примеров проектов.

5
ответ дан 8 December 2019 в 03:54
поделиться

Макрос LOOP - почти идеальный пример DSL, встроенного в Common Lisp. Однако, поскольку это уже часть стандарта, возможно, это не то, что вам нужно.

4
ответ дан 8 December 2019 в 03:54
поделиться

Функция формата CL имеет мини-dsl.

http://cybertiggyr.com/fmt/

Я думаю, что dsl для печати строк будет компилироваться в машинный код.

(format nil "~ {~ A ~ # [~:;, ~] ~}" lst))

4
ответ дан 8 December 2019 в 03:54
поделиться

I feel your constraints are over-specified:

small enough to comprehend, varied enough to show off most of (c)lisp's tricks and features without being opaque (the 'well-written' part of the wish), and independent of other пакеты.

Common Lisp - огромный язык, и набор возможностей, который появляется при объединении языковых элементов, намного больше. У вас не может быть небольшой программы, показывающей «большинство трюков» на CL.

Есть также много концепций, которые вы найдете чуждыми, когда вы изучите CL с другого языка. По сути, CL - это не столько уловки, сколько ее фундаментальные парадигмы.

Я предлагаю сначала немного прочитать об этом, а затем начать создавать свои собственные программы или изучать открытый исходный код.

Обычно обычно Эди Вейц. пишет хороший код. Проверьте его проекты на http://www.weitz.de/ .

А теперь прочтите PCL. :)

7
ответ дан 8 December 2019 в 03:54
поделиться

CLSQL обеспечивает нотацию Lispy для запросов SQL, которые он компилирует в SQL, и почти все библиотеки Lisp для генерации HTML и XML подходят. Metabang bind - это DSL для лексического связывания переменных. Вы, вероятно, не знали, что он вам нужен, но он оказался удивительно полезным.

2
ответ дан 8 December 2019 в 03:54
поделиться

Я немного ленив, чтобы найти ссылки, но у вас должна быть возможность "Google" / "Bing". В следующем списке упоминаются очень разные способы встраивания языков и очень разные встроенные языки.

  • ITERATE для итераций
  • Описание системы / модуля / файла в 'defsystem's, примером может быть ASDF
  • infix readmacro
  • define- рамка приложения в CLIM для определения пользовательских интерфейсов
  • встроенных Lispified SQL-запросов в LispWorks и CLSQL
  • Знание LispWorks: логический язык с правилами, запросами, ...
  • встроенный пролог в Allegro CL
  • встроенный HTML в различных формах
  • XMLisp, интегрирует XML и Lisp
  • Screamer для недетерминированного программирования
  • PWGL,
5
ответ дан 8 December 2019 в 03:54
поделиться

СЕРИЯ является своего рода DSL, в зависимости от вашего определения. Он находится в приложении к CLTL2, хотя на самом деле не является частью языка.

0
ответ дан 8 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: