public void ObserveVariableAssignmentStatement(VHDLCompilerInterface compiler, VariableAssignment statement)
        {
            IVariableAssignmentTarget interpretedTarget = statement.Target;

            if (interpretedTarget is Expression)
            {
                string target     = VHDLOperandGenerator.GetOperand(interpretedTarget as Expression, compiler, false);
                string targetType = VHDLExpressionTypeGenerator.GetExpressionType(interpretedTarget as Expression, compiler);
                string value      = VHDLOperandGenerator.GetOperand(statement.Value, compiler);

                VariableAssignTemplate template = new VariableAssignTemplate(target, value, targetType);
                code = template.TransformText();
                return;
            }
        }
Example #2
0
 /// <summary>
 /// Writes a variable assignment target.
 /// </summary>
 /// <param name="target">the target</param>
 public virtual void writeVariableAssignmentTarget(IVariableAssignmentTarget target)
 {
     if (target is Aggregate)
     {
         writeExpression((Aggregate)target);
     }
     else if (target is Expression)
     {
         writeExpression((Expression)target);
     }
     else if (target == null)
     {
         //ignore
     }
     else
     {
         throw new ArgumentException("Unknown variable assignment target.");
     }
 }