0

次のコードを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 }
4

1 に答える 1

1

どうやらこのコードは「Algol 68 Genie」。このコードは完全ではありませんが、一見、次の 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に書かれています

于 2013-02-01T16:14:45.380 に答える