Интерпритация команд
|
|
masb8ly-GC | Дата: Среда, 21 Декабря 2011, 22:20 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Здравствуйте! Собрался писать движок для текстовых игр, но давно хотел попробовать написать интерпритатор. Поетому хочу попробовать совместить эти 2 идеи и написать нечто вроде конструктора со скриптовым языком. Задача действительно сложная, но мне это интересно и я хочу довести до конца. Вопрос в том, как интерпритировать команды? Тоесть как приравнивать команду введенную тобой в интерпритатор к определенной команде или функции в делфи?
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
Matou | Дата: Среда, 21 Декабря 2011, 23:07 | Сообщение # 2 |
Исходный коТ
Сейчас нет на сайте
| Ну если тебе так интересно, то прочитай книгу красного дракона, например. Тебе даже все не нужно читать, главное разобраться с лексическим и синтаксическим анализатором.
|
|
| |
masb8ly-GC | Дата: Среда, 21 Декабря 2011, 23:10 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Прошу прощения за возможно глупый вопрос, но что за книга "Красного Дракона"?
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
noTformaT | Дата: Среда, 21 Декабря 2011, 23:15 | Сообщение # 4 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (masb8ly-GC) "Красного Дракона"? это книга одна из серии Драгон Бук. Есть зеленая, красная, и фиолетовая кажись.
@noTformaT
|
|
| |
masb8ly-GC | Дата: Среда, 21 Декабря 2011, 23:18 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| К сожалению я не очень хорошо дружу с английским языком. Есть ли перевод данной книги? Если нет буду мирится уже)
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
|
masb8ly-GC | Дата: Среда, 21 Декабря 2011, 23:23 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Премного благодарен! На досуге ознакомлюсь с книгой)
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
noTformaT | Дата: Среда, 21 Декабря 2011, 23:23 | Сообщение # 8 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (masb8ly-GC) К сожалению я не очень хорошо дружу с английским языком. Есть ли перевод данной книги? Если нет буду мирится уже) перевод есть. Фиолетовой книги переводы я не встречал, а вот зеленой видел... если что, есть еще Карпов и его книга Основы построения трансляторов... Там в конце есть список литературы по интерпретаторам и трансляторам.
Но, если решился на такой подвиг, то не знать англ это как-то не торт.. ИМХО.
@noTformaT
|
|
| |
Matou | Дата: Среда, 21 Декабря 2011, 23:25 | Сообщение # 9 |
Исходный коТ
Сейчас нет на сайте
| Quote (noTformaT) Но, если решился на такой подвиг, то не знать англ это как-то не торт.. Как человек не знающий английского, я гарантирую это!
|
|
| |
masb8ly-GC | Дата: Среда, 21 Декабря 2011, 23:36 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Ну я могу читать на английском и прекрасно его понимаю, но вот писать на нем я не могу) Впринципе не так критично)
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
TimKruz | Дата: Четверг, 22 Декабря 2011, 11:47 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Можно сделать просто. "Скрипт" анализируется на ошибки, исправляется и обрабатывается, чтобы получить список команд. Затем в цикле: берётся первая команда и, если такая существует (поддерживается интерпретатором), выполняется. Например: if c1='WRITE ' then write(c2). Ну, конечно, так же делаются и конструкции. (if, for и т.д.) Ничего сложного не вижу.
|
|
| |
Stage | Дата: Четверг, 22 Декабря 2011, 13:47 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| Quote Можно сделать просто. "Скрипт" анализируется на ошибки, исправляется и обрабатывается, чтобы получить список команд. Затем в цикле: берётся первая команда и, если такая существует (поддерживается интерпретатором), выполняется. Например: if c1='WRITE ' then write(c2). Ну, конечно, так же делаются и конструкции. (if, for и т.д.) Ничего сложного не вижу. Школоподелка? Про лексический анализ и дальнейший парсинг видимо не слышали.
|
|
| |
TimKruz | Дата: Четверг, 22 Декабря 2011, 16:29 | Сообщение # 13 |
старожил
Сейчас нет на сайте
| Quote (Stage) Школоподелка? В школе такое не проходят. Сам придумал. Для не сложных целей (без ООП и прочего) подойдёт. Quote (Stage) Про лексический анализ и дальнейший парсинг видимо не слышали. Ну примерно это я и имел в виду... В двух словах если.
|
|
| |