#!/usr/bin/env perl ###################################################################### # # Copyright 2007-2020 by Wilson Snyder. This program is free software; you # can redistribute it and/or modify it under the terms of either the GNU # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. # SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 # ###################################################################### # DESCRIPTION: Diff flex files use warnings; use IO::File; use strict; my $Debug; diff($ARGV[0],$ARGV[1]); sub diff { my $a=shift; my $b=shift; my $ta = "/tmp/flexdiff.$$.a"; my $tb = "/tmp/flexdiff.$$.b"; prep($a,$ta); prep($b,$tb); system("diff -u -w $ta $tb"); } sub prep { my $filename = shift; my $wfilename = shift; my $fh = IO::File->new("<$filename") or die "%Error: $! $filename"; my $fho = IO::File->new(">$wfilename") or die "%Error: $! writing $wfilename"; my %declared; my %used; my @lines; while (defined(my $line = $fh->getline)) { # Productions #$line =~ s/[ \t]{[^}]*?}/\t{}/g; $line =~ s/StashPrefix;//g; $line =~ s/VALTEXT;//g; $line =~ s/CALLBACK\([^)]*\);//g; push @lines, $line; } #@lines = sort @lines; $fho->print(@lines); } # Local Variables: # compile-command: "./flexdiff $VP/Parser/VParseLex.l ../src/verilog.l" # End: