Как сделать преобразование языка Algol 68 Genia в язык c ++ - PullRequest
0 голосов
/ 02 марта 2011

Подскажите, как преобразовать следующий код в код c ++:

ROOTPROC VarUse
PROC VarUse
ROOT Cfile;
1 {
2 [
3 (?NameRef
4 (IF (AND (HAS-TYPE $parent Assignment) (IS-EQUAL $slot ``lhs''))
5 (THEN (PRINT stdout "Variable %s defined at %s" $token $location))
6 (ELSE (PRINT stdout "Name %s accessed at %s" $token $location))))]
7 }

1 Ответ

1 голос
/ 01 февраля 2013

Видимо, этот код "Алгол 68 Джинн". Этот код не является полным, но на первый взгляд он должен быть равен следующему коду C ++:

if(parent->hasType('Assigment') and slot == lhs)
{
   std::cout << "Variable " << token << " defined at " << location << std::endl;
}
else
{
   std::cout << "Name " << token << " accessed at " << location << std::endl;
}

Выражения типа HAS-TYPE не имеют прямого аналога. Подробнее об этом языке написано в Algol 68 Genie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...