#! /bin/sh
#
# Canonifies hiltic output for baseline diffing.


cat \
  | sed '/\/\* __HILTI_LINKER_V1__/,/\*\// {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/\/\/ Begin of [^ ]* (from/       {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/\/\/ \{1,\}- [^ ]\{1,\} (.*/     {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/\] parsing file/                 {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/\] loaded module/                {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/[^ ]\{1,\}\.[^ ]\{1,\}:[0-9]\{1,\}:/      {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed '/[^ ]\{1,\}\.[^ ]\{1,\}:[0-9]\{1,\}-[0-9]\{1,\}:/      {s#/\([^/ ]\{1,\}/\)\{1,\}\([^/ ]\{1,\}\)#<...>/\2#g;}' \
  | sed 's#[("]\(/[^/\]\{1,\}\)\{1,\}\([^/\]\{1,\}:[0-9-]\{1,\}\)[")]#(<...>/\1\2)#g' \
  | sed 's#[("]\(/[^")/\]\{1,\}\)\{1,\}\([^")/\]\{1,\}\)[")]#"<...>\1\2"#g' \
  | sed 's#libc++abi.dylib: ##g' \
  | sed 's#\(Compiled by HILTI version\) .*#\1 X.X.X#g' \
  | sed 's#__hlt_hlto_library_version = .*#__hlt_hlto_library_version = <...>#g' \
  | sed 's#__hlt_hlto_bind_to_version = .*#__hlt_hlto_bind_to_version = <...>#g' \
  | sed 's/\[\(@.:\)[0-9a-f]\{1,\}\]/[\1XXX]/g' \
  | sed 's/\[\(parent @.:\)[0-9a-f]\{1,\}\]/[\1XXX]/g' \
