Как построить AST по S-выражению в Ruby? - PullRequest
1 голос
/ 16 декабря 2011

Понятия не имею, как построить S-exp. Я хочу сделать это, потому что мне нужно построить AST для моего языка. Сначала я использовал RubyParser, чтобы разобрать его в sexp, а затем в код gen. Но это должно быть подмножество рубина, я думаю. Я не могу определить язык, который я хочу. Теперь мне нужно реализовать синтаксический анализатор для моего языка.
Так кто-нибудь может порекомендовать любой инструмент ruby, который строит AST для S-выражения?

Спасибо! * * 1004

Ответы [ 3 ]

1 голос
/ 22 мая 2012

Вы можете попробовать гем sxp-ruby в http://github.com/bendiken/sxp-ruby. Я использую его для SPARQL S-Expressions (SSE) и аналогичных методов для управления деревьями абстрактного синтаксиса в Ruby.

1 голос
/ 16 декабря 2011

Из вашего вопроса не очень понятно, что именно вам нужно, но простой поиск в Google дает несколько интересных ссылок для проверки.Возможно, после проверки этих ссылок, если они не являются ответом на ваш вопрос, вы можете отредактировать вопрос и сделать его более точным и конкретным.

http://thingsaaronmade.com/blog/writing-an-s-expression-parser-in-ruby.html https://github.com/aarongough/sexpistol

0 голосов
/ 30 марта 2018

Может быть, вы могли бы взглянуть на этот драгоценный камень с именем Astrapi .

Это всего лишь эксперимент:

  • опишите ваши языковые элементы (понятия) вфайл "mm" (абстрактный синтаксис)
  • запустить astrapi для этого файла
  • astrapi генерирует синтаксический анализатор, способный заполнить ваш AST, из вашего входного источника, выраженного в s-выражении (конкретныйсинтаксис ваших понятий).

Я выложил скромную документацию здесь .

...