#!/usr/bin/tclsh set what "" set fp [open "../words8.txt" r] set dict {} while {[gets $fp line] >= 0} { lappend dict $line } close $fp foreach file [glob {*}] { set words {} #puts "$file" set fp [open $file r] while {[gets $fp line] >= 0} { regsub {^ *} $line {} line #puts $line if [regexp : $line] { set what [lindex [split $line :] 0] set line [lindex [split $line :] 1] regsub {^ *} $line {} line } if {[string equal $what "Synonyms"] || [string equal $what "Main Entry"]} { foreach word [split $line ,] { regsub {^ *} $word {} word regsub {\*$} $word {} word if {[string length $word] == 4} { #puts " $word" lappend words $word } } } } close $fp set prev "" set syns($file) {} foreach word [lsort $words] { if {![string equal $word $prev]} { lappend syns($file) $word #puts " $word" } set prev $word } } foreach word1 [array names syns] { foreach syn1 $syns($word1) { foreach word2 [array names syns] { if {![string equal $word1 $word2]} { foreach syn2 $syns($word2) { if {[lsearch -sorted $dict "$syn1$syn2"] >= 0} { puts "$word1 + $word2 = $syn1$syn2" } } } } } }