visitMatrix method

  1. @override
String visitMatrix(
  1. MatrixNode node
)
override

Implementation

@override
String visitMatrix(MatrixNode node) {
  final rows = node.rows.length;
  final cols = node.rows.isNotEmpty ? node.rows.first.length : 0;
  final bracket = switch (node.type) {
    MatrixType.paren => "parenthesized ",
    MatrixType.bracket => "bracketed ",
    MatrixType.brace => "braced ",
    MatrixType.vbar => "determinant ",
    MatrixType.doubleVbar => "norm ",
    _ => "",
  };

  final bodyParts = <String>[];
  for (int i = 0; i < node.rows.length; i++) {
    final rowStr = node.rows[i].map((it) => visit(it)).join(", ");
    bodyParts.add("row ${i + 1}: $rowStr");
  }
  final body = bodyParts.join("; ");
  return "$bracket$rows by $cols matrix: $body";
}