#! /bin/sh #next line is executed by sh, not by Tcl \ exec tclsh $0 ${1+"$@"} #-------------------------------------------------------------------------- # This is the SICS syntax checker for the TOPSI diffractometer # # Mark Koennecke, March 2003 #-------------------------------------------------------------------------- source /data/lnslib/bin/sicscheck/sicssyntaxlib.tcl #------------------------- define TOPSI motors and aliases sicsSyntaxMap d1r syntaxMotor sicsSyntaxMap d1l syntaxMotor sicsSyntaxMap d2r syntaxMotor sicsSyntaxMap d2l syntaxMotor sicsSyntaxMap d3r syntaxMotor sicsSyntaxMap d3l syntaxMotor sicsSyntaxMap dxt syntaxMotor sicsSyntaxMap dxb syntaxMotor sicsSyntaxMap utz syntaxMotor sicsSyntaxMap uty syntaxMotor sicsSyntaxMap sth syntaxMotor sicsSyntaxMap stt syntaxMotor sicsSyntaxMap stx syntaxMotor sicsSyntaxMap sty syntaxMotor sicsSyntaxMap sgx syntaxMotor sicsSyntaxMap sgy syntaxMotor sicsSyntaxMap utt syntaxMotor sicsSyntaxMap scx syntaxMotor sicsSyntaxMap scy syntaxMotor sicsSyntaxMap po1 syntaxMotor sicsSyntaxMap po2 syntaxMotor sicsSyntaxMap mth syntaxMotor sicsSyntaxMap mtt syntaxMotor sicsSyntaxMap mtx syntaxMotor sicsSyntaxMap mty syntaxMotor sicsSyntaxMap mgx syntaxMotor sicsSyntaxMap mfv syntaxMotor sicsSyntaxMap d1b syntaxMotor sicsSyntaxMap d2b syntaxMotor sicsSyntaxMap d3b syntaxMotor sicsSyntaxMap d1t syntaxMotor sicsSyntaxMap d2t syntaxMotor sicsSyntaxMap d3t syntaxMotor #------------ aliases sicsSyntaxMap s1r syntaxMotor sicsSyntaxMap s1l syntaxMotor sicsSyntaxMap s2r syntaxMotor sicsSyntaxMap s2l syntaxMotor sicsSyntaxMap s3r syntaxMotor sicsSyntaxMap s3l syntaxMotor sicsSyntaxMap a6 syntaxMotor sicsSyntaxMap a5 syntaxMotor sicsSyntaxMap a3 syntaxMotor sicsSyntaxMap som syntaxMotor sicsSyntaxMap th syntaxMotor sicsSyntaxMap om syntaxMotor sicsSyntaxMap a4 syntaxMotor sicsSyntaxMap s2t syntaxMotor sicsSyntaxMap tth syntaxMotor sicsSyntaxMap 2t syntaxMotor sicsSyntaxMap stu syntaxMotor sicsSyntaxMap stl syntaxMotor sicsSyntaxMap sgu syntaxMotor sicsSyntaxMap sgl syntaxMotor sicsSyntaxMap mgu syntaxMotor sicsSyntaxMap sch syntaxMotor sicsSyntaxMap sph syntaxMotor sicsSyntaxMap pol syntaxMotor sicsSyntaxMap ana syntaxMotor sicsSyntaxMap a1 syntaxMotor sicsSyntaxMap mom syntaxMotor sicsSyntaxMap a2 syntaxMotor sicsSyntaxMap m2t syntaxMotor sicsSyntaxMap mtu syntaxMotor sicsSyntaxMap mtl syntaxMotor sicsSyntaxMap mcv syntaxMotor sicsSyntaxMap sttl syntaxMotor sicsSyntaxMap u2t syntaxMotor #------------ define TOPSI counters sicsSyntaxMap counter syntaxCounter #------------ define TOPSI variables sicsSyntaxMap title syntaxTextPar sicsSyntaxMap user syntaxTextPar sicsSyntaxMap collimation syntaxTextPar sicsSyntaxMap sample syntaxTextPar sicsSyntaxMap comment1 syntaxTextPar sicsSyntaxMap comment2 syntaxTextPar sicsSyntaxMap comment3 syntaxTextPar sicsSyntaxMap fax syntaxTextPar sicsSyntaxMap email syntaxTextPar sicsSyntaxMap sample syntaxTextPar sicsSyntaxMap lambda syntaxNumPar #----------- define TOPSI environment sicsSyntaxMap temperature evSyntax sicsSyntaxMap tt evSyntax #---------- define TOPSI auxiliary sicsSyntaxMap beam syntaxDummy sicsSyntaxMap o2t syntaxNumPar sicsSyntaxMap o2tl syntaxNumPar sicsSyntaxMap o2u syntaxNumPar sicsSyntaxMap ttc syntaxTextPar sicsSyntaxMap sttc syntaxTextPar sicsSyntaxMap sef syntaxTextPar sicsSyntaxMap remote syntaxTextPar #------------------------------------------------------------------------ # some strange TOPSI commands with 3 numeric parameters #----------------------------------------------------------------------- proc dah {w1 w2 w3} { if { [syntaxNumeric $w1] != 1 } { error "ERROR: expected numeric w1, got $w1" } if { [syntaxNumeric $w2] != 1 } { error "ERROR: expected numeric w2, got $w2" } if { [syntaxNumeric $w3] != 1 } { error "ERROR: expected numeric w3, got $w3" } } proc dav {w1 w2 w3} { dah $w1 $w2 $w3 } #--------- Main checking stuff syntaxLoadSICS /data/lnslib/data/TOPSI/2003/topsistatus.tcl if { $argc < 1} { puts stdout "Usage: \n\ttopsicheck filename" exit 0 } set filename [lindex $argv 0] lappend fileList [file tail $filename] puts stdout "Syntax checking --> $filename <-- ........." source $filename puts stdout "If this completed without errors the likelihoof of your script" puts stdout "executing properly on the instrument has increased significantly" exit 1