Чтение онлайн

на главную - закладки

Жанры

UNIX — универсальная среда программирования
Шрифт:

 Datum d;

 d = pop;

 d.val = (*(double(*))*pc++)(d.val);

 push(d);

}

eval /* evaluate variable on stack */

{

 Datum d;

 d = pop;

 if (d.sym->type != VAR && d.sym->type != UNDEF)

execerror("attempt to evaluate non-variable", d.sym->name);

 if (d.sym->type == UNDEF)

execerror("undefined variable", d.sym->name);

 d.val = d.sym->u.val;

 push(d);

}

add {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val += d2.val;

 push(d1);

}

sub {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val -= d2.val;

 push(d1);

}

mul {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val *= d2.val;

 push(d1);

}

div {

 Datum d1, d2;

 d2 = pop;

 if (d2.val == 0.0)

execerror("division by zero", (char *)0);

 d1 = pop;

 d1.val /= d2.val;

 push(d1);

}

negate {

 Datum d;

 d = pop;

 d.val = -d.val;

 push(d);

}

gt {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val > d2.val);

 push(d1);

}

lt {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val < d2.val);

 push(d1);

}

ge {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val >= d2.val);

 push(d1);

}

le {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val <= d2.val);

 push(d1);

}

eq {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val == d2.val);

 push(d1);

}

ne {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val != d2.val);

 push(d1);

}

and {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val != 0.0 && d2.val != 0.0);

 push(d1);

}

or {

 Datum d1, d2;

 d2 = pop;

 d1 = pop;

 d1.val = (double)(d1.val != 0.0 || d2.val != 0.0);

 push(d1);

}

not {

 Datum d;

 d = pop;

 d.val = (double)(d.val == 0.0);

 push(d);

}

power {

 Datum d1, d2;

 extern double Pow;

 d2 = pop;

 d1 = pop;

 d1.val = Pow(d1.val, d2.val);

 push(d1);

}

assign {

 Datum d1, d2;

 d1 = pop;

 d2 = pop;

 if (d1.sym->type != VAR && d1.sym->type != UNDEF)

execerror("assignment to non-variable", d1.sym->name);

 d1.sym->u.val = d2.val;

Поделиться:
Популярные книги

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Жандарм 3

Семин Никита
3. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Камень. Книга 3

Минин Станислав
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Камень. Книга 3

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар