######################################################################## # # # This software is part of the ast package # # Copyright (c) 1984-2011 AT&T Intellectual Property # # and is licensed under the # # Eclipse Public License, Version 1.0 # # by AT&T Intellectual Property # # # # A copy of the License is available at # # http://www.eclipse.org/org/documents/epl-v10.html # # (with md5 checksum b35adb5213ca9657e911e9befb180842) # # # # Information and Software Systems Research # # AT&T Research # # Florham Park NJ # # # # David Korn # # Pat Sullivan # # # ######################################################################## : include OPTIONS eval $1 shift source $1 for i in [ACCT BRACEPAT ECHOPRINT ESH ESHPLUS FLOAT FS_3D IODELAY JOBS \ MULTIBYTE NEWTEST OLDTERMIO OLDTEST P_UID PDU POSIX RDS RAWONLY \ SEVENBIT SUID_EXEC TIMEOUT VSH LDYNAMIC] { : This could be done with eval, but eval broken in some shells global j := '0' matchstr $i { ACCT { global j := $ACCT} BRACEPAT { global j := $BRACEPAT} ECHOPRINT { global j := $ECHOPRINT} ESH { global j := $ESH} ESHPLUS { global j := $ESHPLUS} FLOAT { global j := $FLOAT} FS_3D { global j := $FS_3D} IODELAY { global j := $IODELAY} JOBS { global j := $JOBS} LDYNAMIC { global j := $LDYNAMIC} MULTIBYTE { global j := $MULTIBYTE} NEWTEST { global j := $NEWTEST} OLDTERMIO { echo "#include " > $tmp.c echo "#include " >> $tmp.c if $CC -E $tmp.c > /dev/null !2 > !1 { global j := $OLDTERMIO } } OLDTEST { global j := $OLDTEST} P_UID { global j := $P_UID} PDU { global j := $PDU if test 0 -ne $j && test -f /usr/pdu/bin/pwd { echo "#define PDUBIN 1" }} POSIX { global j := $POSIX} RAWONLY { global j := $RAWONLY} RDS { global j := $RDS} SEVENBIT { global j := $SEVENBIT} SUID_EXEC { global j := $SUID_EXEC} TIMEOUT { global j := $TIMEOUT} VSH { global j := $VSH} } matchstr $j { 0|"" { } * { echo "#define $i $j" } } } (CommandList children: [ (C {(Lit_Other ":")} {(include)} {(OPTIONS)}) (C {(eval)} {($ VSub_Number "$1")}) (C {(shift)}) (C {(.)} {($ VSub_Number "$1")}) (ForEach iter_name: i iter_words: [ {(ACCT)} {(BRACEPAT)} {(ECHOPRINT)} {(ESH)} {(ESHPLUS)} {(FLOAT)} {(FS_3D)} {(IODELAY)} {(JOBS)} {(MULTIBYTE)} {(NEWTEST)} {(OLDTERMIO)} {(OLDTEST)} {(P_UID)} {(PDU)} {(POSIX)} {(RDS)} {(RAWONLY)} {(SEVENBIT)} {(SUID_EXEC)} {(TIMEOUT)} {(VSH)} {(LDYNAMIC)} ] do_arg_iter: False body: (DoGroup children: [ (C {(Lit_Other ":")} {(This)} {(could)} {(be)} {(KW_Done done)} {(with)} {(eval) (Lit_Comma ",")} {(but)} {(eval)} {(broken)} {(KW_In in)} {(some)} {(shells)} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:j) op:Equal rhs:{(0)} spids:[162])] spids: [162] ) (Case to_match: {($ VSub_Name "$i")} arms: [ (case_arm pat_list: [{(ACCT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$ACCT")} spids: [176] ) ] spids: [176] ) ] spids: [173 174 178 -1] ) (case_arm pat_list: [{(BRACEPAT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$BRACEPAT")} spids: [184] ) ] spids: [184] ) ] spids: [181 182 186 -1] ) (case_arm pat_list: [{(ECHOPRINT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$ECHOPRINT")} spids: [192] ) ] spids: [192] ) ] spids: [189 190 194 -1] ) (case_arm pat_list: [{(ESH)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$ESH")} spids: [200] ) ] spids: [200] ) ] spids: [197 198 202 -1] ) (case_arm pat_list: [{(ESHPLUS)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$ESHPLUS")} spids: [208] ) ] spids: [208] ) ] spids: [205 206 210 -1] ) (case_arm pat_list: [{(FLOAT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$FLOAT")} spids: [216] ) ] spids: [216] ) ] spids: [213 214 218 -1] ) (case_arm pat_list: [{(FS_3D)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$FS_3D")} spids: [224] ) ] spids: [224] ) ] spids: [221 222 226 -1] ) (case_arm pat_list: [{(IODELAY)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$IODELAY")} spids: [232] ) ] spids: [232] ) ] spids: [229 230 234 -1] ) (case_arm pat_list: [{(JOBS)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$JOBS")} spids: [240] ) ] spids: [240] ) ] spids: [237 238 242 -1] ) (case_arm pat_list: [{(LDYNAMIC)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$LDYNAMIC")} spids: [248] ) ] spids: [248] ) ] spids: [245 246 250 -1] ) (case_arm pat_list: [{(MULTIBYTE)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$MULTIBYTE")} spids: [256] ) ] spids: [256] ) ] spids: [253 254 258 -1] ) (case_arm pat_list: [{(NEWTEST)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$NEWTEST")} spids: [264] ) ] spids: [264] ) ] spids: [261 262 266 -1] ) (case_arm pat_list: [{(OLDTERMIO)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ("#include "))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$tmp") (.c)} spids: [278] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ("#include "))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name "$tmp") (.c)} spids: [290] ) ] ) (If arms: [ (if_arm cond: [ (SimpleCommand words: [{($ VSub_Name "$CC")} {(-E)} {($ VSub_Name "$tmp") (.c)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [305] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [309] ) ] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$OLDTERMIO")} spids: [315] ) ] spids: [315] ) ] spids: [-1 313] ) ] spids: [-1 319] ) ] spids: [269 270 321 -1] ) (case_arm pat_list: [{(OLDTEST)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$OLDTEST")} spids: [327] ) ] spids: [327] ) ] spids: [324 325 329 -1] ) (case_arm pat_list: [{(P_UID)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$P_UID")} spids: [335] ) ] spids: [335] ) ] spids: [332 333 337 -1] ) (case_arm pat_list: [{(PDU)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$PDU")} spids: [343] ) ] spids: [343] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(0)} {(-ne)} {(DQ ($ VSub_Name "$j"))}) (C {(test)} {(-f)} {(/usr/pdu/bin/pwd)}) ] op_id: Op_DAmp ) ] action: [(C {(echo)} {(DQ ("#define PDUBIN\t1"))})] spids: [-1 368] ) ] spids: [-1 377] ) ] spids: [340 341 378 -1] ) (case_arm pat_list: [{(POSIX)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$POSIX")} spids: [384] ) ] spids: [384] ) ] spids: [381 382 386 -1] ) (case_arm pat_list: [{(RAWONLY)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$RAWONLY")} spids: [392] ) ] spids: [392] ) ] spids: [389 390 394 -1] ) (case_arm pat_list: [{(RDS)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$RDS")} spids: [400] ) ] spids: [400] ) ] spids: [397 398 402 -1] ) (case_arm pat_list: [{(SEVENBIT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$SEVENBIT")} spids: [408] ) ] spids: [408] ) ] spids: [405 406 410 -1] ) (case_arm pat_list: [{(SUID_EXEC)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$SUID_EXEC")} spids: [416] ) ] spids: [416] ) ] spids: [413 414 418 -1] ) (case_arm pat_list: [{(TIMEOUT)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$TIMEOUT")} spids: [424] ) ] spids: [424] ) ] spids: [421 422 426 -1] ) (case_arm pat_list: [{(VSH)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:j) op: Equal rhs: {($ VSub_Name "$VSH")} spids: [432] ) ] spids: [432] ) ] spids: [429 430 434 -1] ) ] spids: [166 170 437] ) (Case to_match: {($ VSub_Name "$j")} arms: [ (case_arm pat_list:[{(0)}{(DQ )}] spids:[447451453-1]) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(echo)} {(DQ ("#define ") ($ VSub_Name "$i") ("\t") ($ VSub_Name "$j"))})] spids: [456 457 468 -1] ) ] spids: [440 444 471] ) ] spids: [132 473] ) spids: [81 -1] ) ] )