During inference, only the program context is available to the decoder. The attributes that the synthesizer requires are inferred on-the-fly, after the previous sub-part of the AST has been decoded.
Because we make use of an L-attributed grammar, at each step of AST construction, the necessary inputs are already available from the partial AST at hand.
At no point in the decoding process do the neural units need any input from the part of the AST that has not yet been synthesized.
This approach to synthesizing is close to the standard inference procedure in sequence-to-sequence models [1]}, [2]}
