#! /usr/bin/env bash
# Dezyne --- Dezyne command line tools
#
# Copyright © 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2022 Rutger van Beusekom <rutger@dezyne.org>
#
# This file is part of Dezyne.
#
# Dezyne is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# Dezyne is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with Dezyne.  If not, see <http://www.gnu.org/licenses/>.
#
# Commentary:
#
# Code:

set -e

tags () { grep -Eo 'TAG[^\\]+' | sort -u; }

diff -u <(cat test/all/comment_traceability/comment_traceability.dzn | tags ) \
        <(dzn parse -t -o- test/all/comment_traceability/comment_traceability.dzn -o- | tags)

for code in dzn c++; do
    echo -e "\ncomment TAG traceability for $code:"
    diff -u <(cat test/all/comment_traceability/comment_traceability.dzn | tags ) \
            <(dzn code language -l $code test/all/comment_traceability/comment_traceability.dzn -o- | tags)
done
