Acc

From awesome
Jump to: navigation, search

Contents

Awesome Configuration Converter

acc находится в стадии разработки. (во-первых, у него отстойное название и во-вторых, в данный момент ничего не работает).


Цель проекта

Помочь пользователям перейти с Awesome 2 на Awesome 3, предоставив слой совместимости.


Как это будет реализовано

Идея состоит в написании библиотеки Lua для интерпретации конфигурационных файлов Awesome 2.X. Файл, использующий acc, будет выглядеть примерно так:

   require("acc")
   acc.translate("/путь/к/файлу/конфигурации/awesome/2.X")

После этих строк пользователь сможет добавлять код на Lua, постепенно удаляя настройки из файла от версии 2.X. В конечном счете конфигурация будет полностью переписана на Lua и приведённые выше строки можно будет удалить. Звучит неплохо, не так ли? :)


Это то, что мне нужно! Как бы попробовать этот acc в деле?

Пока никак, он ещё не работает.


Так... А я могу чем-нибудь помочь?

Вы можете помочь мне его написать. От Вас потребуется хорошее знание настроек Awesome 2.X (и 3.X) и основ Lua (ну их то Вы наверняка знаете, раз смогли настроить Awesome 3 ;)). Вот и всё! Я создал репозиторий mercurial:

Вы также можете помочь, отправив мне свой конфигурационный файл Awesome 2.X и приняв участие в тестировании acc, когда он заработает. Это сильно ускорит процесс разработки.

Разработка

Я думаю, что процесс нужно разбить на 4 шага:

  • лексический анализатор
  • парсер
  • анализатор
  • интерпретатор

The lexer/parser are used to parse the libconfuse config file in Lua. The analyzer ensure that the config file looks like an awesome config (for example, should reject "keys { screen 2 { ... } }") The interpreter setup a default config and then translate the AST into awesome's Lua calls.

  • The Lexer seems ok, and I'm currently working on the parser.
  • update at 1231124037 time_t : parser seems ok, will begin the analyzer soon
Personal tools