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; } }
/// <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."); } }