Merge branch 'parallaxsw:master' into master
This commit is contained in:
commit
ed1bab9d6c
|
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# The next line is executed by /bin/sh, but not Tcl \
|
||||||
|
exec tclsh $0 ${1+"$@"}
|
||||||
|
|
||||||
|
# Parallax Static Timing Analyzer
|
||||||
|
# Copyright (c) 2020, Parallax Software, Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# No part of this document may be copied, transmitted or
|
||||||
|
# disclosed in any form or fashion without the express
|
||||||
|
# written consent of Parallax Software, Inc.
|
||||||
|
|
||||||
|
# Find warning/error message IDs and detect collisions.
|
||||||
|
# Usage: FindMessages.tcl > doc/messages.txt
|
||||||
|
|
||||||
|
proc scan_file { file warn_regexp } {
|
||||||
|
global msgs
|
||||||
|
|
||||||
|
if { [file exists $file] } {
|
||||||
|
set in_stream [open $file r]
|
||||||
|
gets $in_stream line
|
||||||
|
set file_line 1
|
||||||
|
|
||||||
|
while { ![eof $in_stream] } {
|
||||||
|
if { [regexp -- $warn_regexp $line ignore1 ignore2 msg_id msg] } {
|
||||||
|
lappend msgs "$msg_id $file $file_line $msg"
|
||||||
|
}
|
||||||
|
gets $in_stream line
|
||||||
|
incr file_line
|
||||||
|
}
|
||||||
|
close $in_stream
|
||||||
|
} else {
|
||||||
|
puts "Warning: file $file not found."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set subdirs {app dcalc graph liberty network parasitics \
|
||||||
|
power sdc sdf search spice util verilog tcl}
|
||||||
|
set files_c {}
|
||||||
|
foreach subdir $subdirs {
|
||||||
|
set files [glob -nocomplain [file join $subdir "*.{cc,hh,yy,ll,i}"]]
|
||||||
|
set files_c [concat $files_c $files]
|
||||||
|
}
|
||||||
|
set warn_regexp_c {(criticalError|->warn|->fileWarn|->error|->fileError|libWarn|libError| warn)\(([0-9]+),.*(".+")}
|
||||||
|
|
||||||
|
set files_tcl {}
|
||||||
|
foreach subdir $subdirs {
|
||||||
|
set files_tcl [concat $files_tcl [glob -nocomplain [file join $subdir "*.tcl"]]]
|
||||||
|
}
|
||||||
|
set warn_regexp_tcl {(sta_warn|sta_error|sta_warn_error) ([0-9]+) (".+")}
|
||||||
|
|
||||||
|
proc scan_files {files warn_regexp } {
|
||||||
|
foreach file $files {
|
||||||
|
scan_file $file $warn_regexp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc check_msgs { } {
|
||||||
|
global msgs
|
||||||
|
|
||||||
|
set msgs [lsort -index 0 -integer $msgs]
|
||||||
|
set prev_id -1
|
||||||
|
foreach msg $msgs {
|
||||||
|
set msg_id [lindex $msg 0]
|
||||||
|
if { $msg_id == $prev_id } {
|
||||||
|
puts "Warning: $msg_id duplicated"
|
||||||
|
}
|
||||||
|
set prev_id $msg_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc report_msgs { } {
|
||||||
|
global msgs
|
||||||
|
|
||||||
|
foreach msg_info $msgs {
|
||||||
|
lassign $msg_info msg_id file line msg1
|
||||||
|
puts "[format %04d $msg_id] [format %-25s [file tail $file]:$line] $msg1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set msgs {}
|
||||||
|
scan_files $files_c $warn_regexp_c
|
||||||
|
scan_files $files_tcl $warn_regexp_tcl
|
||||||
|
check_msgs
|
||||||
|
report_msgs
|
||||||
Binary file not shown.
Loading…
Reference in New Issue