Я пытаюсь реализовать небольшой язык описания для пользовательских сценариев в приложении. В основном пользователи описывают, как объекты создаются из других объектов. (Не совсем язык программирования). Я мог бы использовать JSON (но это было бы более подробным).Как скомпилировать для Erlang VM
Я использую leex и yecc, и у меня есть приличное дерево синтаксического разбора. Скажите, что это что-то вроде этого:
{def,double, %% function name double
[{x}], %% list of input names
%% return expression, in this case {Operator, Operand1, Operand2}
{'*',{var,x},{number,2}}
}.
С помощью этого дерева, я хотел бы построить что-то вроде этого:
double(State) ->
_Var1 = some_app:get_input(State,x),
_Var1 * 2.
Но я не знаю, с чего начать. Я могу прочитать дерево во время выполнения и строить забавы, но я действительно хочу научиться компилировать (и надеяться на лучшую производительность).
Должен ли я преобразовать дерево разбора в Erlang AST, а затем скомпилировать модуль erlang?
Спасибо.
нашел это http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf – niahoo
Вы можете попробовать посмотреть видеоролики Роберта Вирдинга. Например, [Импорт языков на Erlang VM] (http://www.youtube.com/watch?v=hry_BUidOAk). Я считаю, что у него есть по крайней мере 2 или 3 видео на аналогичные темы. Также его [github] (https://github.com/rvirding) содержит несколько примеров кода. Кроме того, вы можете проверить [Elixir] (http://elixir-lang.org/) или [Joxa] (http://joxa.org/), которые также реализованы на виртуальной машине Erlang. – Nym
Да, я беру пример на эликсир. Я также нашел [это] (http://ninenines.eu/articles/xerl-0.2-two-modules), хорошая информация, но очень маленький код скомпилирован. не знал Джокса, должен проверить это. благодаря – niahoo