depth.jq 607 B

1234567891011121314151617181920212223
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. #
  10. # depth.jq — calculating depth of an AST
  11. include "defs";
  12. def depth:
  13. [if is_mir_relexpr then 1 else 0 end +
  14. (if type == "object" or type == "array"
  15. then .[]? | depth
  16. else 0
  17. end)
  18. ] | max
  19. ;
  20. depth