![]() |
|
|
![]()
|
|
| Foror |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 14.2.2004 Репутация: нет Всего: 2 |
Хочу попробовать написать небольшой язык для решения своих проблем, так что если у кого есть примеры(желательно чего-нить полегче) или кто уже чего-то делал - скиньте мне пожалуйста исходники на [email protected]
--------------------
Разработка веб-сайтов и создание интернет магазина |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Я ведь уже ответил по теме.
http://forum.vingrad.ru/index.php?showtopic=20645&hl= Чего там не понятного? Можно ведь обсудить. А исходники на мыло - это уж слишком простой вариант |
|||
|
||||
| Foror |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 14.2.2004 Репутация: нет Всего: 2 |
Мне было бы проще изучить исходники, чем читать доки...
--------------------
Разработка веб-сайтов и создание интернет магазина |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: нет Всего: 19 |
Для интереса можеш попробовать flex-ом составить самый простой парсер и попробовать в нем разобраться без коментариев |
|||
|
||||
| Foror |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 14.2.2004 Репутация: нет Всего: 2 |
Я сейчас сделал объявление переменных и ариф. операции с ними. Сейчас вот не могу врубиться как сделать IF-THEN-ELSE, циклы и функции... Может кто подскажет, а то в доках на бизон я чего-то найти этого не смог, хотя ща еще перечитаю мож врублюсь
--------------------
Разработка веб-сайтов и создание интернет магазина |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Всё зависит от того, как ты начал делать
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Советую вкурить это: http://www.devincook.com/GOLDParser/
Просто универсальная вещь, сам еще до конца не разобрался.... Про интерпретирование: дерево строить легче и легче написать юзая ООП язык. Тебе будет нужен интерфейс Statement, выполняющий себя и не возвращающий ничего; Expression расширяющий Statemen выполняющий себя и возвращающий некоторое значение; StatementList от Statement, содержит в себе другие Statement, при выполнении запрашивает выполнение у всех из своего списка. Любой Expression может быть деревом из других Expression. Приведение к типу тоже реализуешь в этом же интерфейсе, т.е. getNumber(), getString() и прочие типы. В результате if-else это Statement, при создании принимающий 3 аргумента: Expression - getBoolean() которого определит действие, Statement if_true - вызовем его если true, Statement if_false - иначе этот. StatementList наследуется от Statement, значит используем его если у нас более одного Statement в конструкции. Это всё можно усложнить до безобразия, но идея останется та же Если делать на байткоде, то всё гораздо сложнее, но интереснее. Придётся разбирать выражение на блок кода, заводит регистры, сам IF реализуется командой goto с меткой. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Sardar, GoldParser для какого языка?
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Вроде бы для любого, вернее он не генерит код, только таблицы. Это универсальная вещь. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Foror |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 14.2.2004 Репутация: нет Всего: 2 |
Я делаю деревом. И сейчас я просто не могу врубится, как сделать на бизоне IF-THEN-ELSE, как должно выполнятся или то или это, и каким образом это надо записать в синтаксисе бизона. Также я не пользуюсь лексом, т.е. у меня своя функция yyelex() вроде так называется и там как этот if-then-else разбирать? --------------------
Разработка веб-сайтов и создание интернет магазина |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Надо не разбирать
Примерно так: Извините, код "навскидку" давно уже этим не занимался
|
|||
|
||||
| Foror |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 14.2.2004 Репутация: нет Всего: 2 |
Может скинешь всётаки исходники своего бэйсика(или что ты там делал на бизоне?)
--------------------
Разработка веб-сайтов и создание интернет магазина |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |