LINUX.ORG.RU
ФорумTalks

Парсер скриптового языка


0

1

Есть задание «разработать приложение выполняющее парсинг языка». язык скриптовый, неважно какой. не в языке суть :)

Вопрос: правильно ли я понял, что нужно разработать интерпретатор этого языка?


>парсинг
Это ещё не интерпритатор.
Токенизер/лексер точно.
Может быть парсер с построением дерева программы — Уточни.
Ну и до интерпритатора рукой подать после этого.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Спасибо за ответ. Меня просто задание чуток в ступор поставило :)

Kost
() автор топика

>неважно какой. не в языке суть
Значит делай такой:
5+5
3*2
4-2
Вполне себе язык, такой :-))

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Опередил... :)

Только хотел написать: раз язык не важен, то пиши парсер консольного калькулятора. Да ещё с обратной польской записью, чтоб проще было парсить. :)

OldFatMan
()
Ответ на: комментарий от Bad_ptr

можно в обратной польской шоб как Ъ)

pylin ★★★★★
()

> неважно какой. не в языке суть :)

Не все можно распарсить...

n01r ★★
()

Если тебе нормальное — то гугли туториалы по написанию фронтенда к LLVM.

Если тебе для галочки — про калькулятор с обратной польской записью тебе уже рассказали.

ChALkeR ★★★★★
()
Ответ на: комментарий от OldFatMan

В обратной польской я писал. В 200 строк уложился. А ещё есть мощный calc.

CYB3R ★★★★★
()

Язык конкретный дан в задании, только смысл его тут называть :) Пускай останется загадкой :D

Kost
() автор топика
Ответ на: комментарий от ChALkeR

я любой могу назвать perl, lua, AS, PHP. Суть не в языке была, а в том что я не понял, что такое «парсер языка».

Kost
() автор топика
Ответ на: комментарий от Kost

http://habrahabr.ru/blogs/programming/119850/ — вот, прямиком с помойки. Но это перевод ссылки http://llvm.org/docs/tutorial/, так что бреда и отсебятины быть не должно, я думаю.

Там есть пример парсера, разжёвано, что это такое и с чем его едят.

ChALkeR ★★★★★
()
Ответ на: комментарий от Bad_ptr

Там оглавление есть. Переведена большая часть, но далеко не всё.

ChALkeR ★★★★★
()
Ответ на: комментарий от Kost

По поводу только 1-2 глав я наврал.

Пример if-then-else в пятой главе, включая кусок кода для парсера. Правда там строчек всего ничего, так что это мелочи.

ChALkeR ★★★★★
()

Напиши свой forth с блэкд^W стеком и словарем.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от grim

> Если не Lex/Yacc

вот-вот. это первое, что приходит в голову, когда надо парсить язык. flex и bison ещё приходят в голову.
на самом деле, непонятно, что ТС надо: если это курсак, и надо реально создать свой парсер или анализатор лексики (без помощи генераторов анализаторов и генераторов парсеров), то это одно, а если ему надо создать приложение по работе, которое делает реальную работу за деньги, то тут, безусловно, надо изучить инструменты типа yacc/lex (flex/bison).

taker
()

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

Voviandr
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.