В большинстве языков, которые допускают такой тип ввода, для результата, который будет проанализирован как
Foo = (asd = 3);
и Foo
, будет присвоен результат выражения asd = 3
.Как правило, это значение asd
, но AST не обязательно представляет это.
AST обычно не представляет семантику, такую как «доступ на чтение» в любом случае.Это графическое представление синтаксиса , а синтаксис - это просто «назначение с левой переменной Foo
и с правой стороны (назначение с левой переменной asd
и целочисленной постоянной правой стороны 3
) ”.
Если я правильно запомнил пример Калейдоскопа, вы увидите, что каждый оператор возвращает значение.Большинство из них будут оптимизированы дальше по цепочке, но это самый простой способ получить полезное поведение для вложенных заданий и тому подобного.Очевидно, что левая часть задания требует особого подхода, но ничего сложного для понимания или реализации трудно.