# encoding: utf-8 # frozen_string_literal: true module Carbon module Compiler module Node module Expression # An assignment expression. This typically takes the form of # ` = `. There are three cases for assignments: # a) an attribute assignment; b) an access assignment; and c) an # identifier assignment. The first and second are turned into # function calls using {Call::Dispatch}; the last is kept as-is, # and turns into a store. # This has three children: the left hand side, the operation, and # the right hand side. class Assignment < Base attributes left: 0, op: 1, right: 2 end end end end end