global kdir := $(1:-../kernel) global scriptdir := $[dirname $0] global udir := $[dirname $scriptdir] cat $scriptdir/kernel-files.txt | \ shell {while read l r { global left := $[eval echo $l] global right := $[eval echo $r] # echo $left $right diff -up $left $right }} (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kdir) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(..) (Lit_Slash /) (kernel)}) spids: [1 7] ) } spids: [0] ) ] spids: [0] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:scriptdir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number "$0")})]) left_token: spids: [10 14] ) } spids: [9] ) ] spids: [9] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:udir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Name "$scriptdir")})]) left_token: spids: [17 21] ) } spids: [16] ) ] spids: [16] ) (Pipeline children: [ (C {(cat)} {($ VSub_Name "$scriptdir") (/kernel-files.txt)}) (Subshell child: (While cond: [(Sentence child:(C {(read)} {(l)} {(r)}) terminator:)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:left) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(eval)} {(echo)} {($ VSub_Name "$l")})] ) left_token: spids: [45 51] ) } spids: [44] ) ] spids: [44] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:right) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(eval)} {(echo)} {($ VSub_Name "$r")})] ) left_token: spids: [55 61] ) } spids: [54] ) ] spids: [54] ) (C {(diff)} {(-up)} {($ VSub_Name "$left")} {($ VSub_Name "$right")}) ] spids: [41 75] ) ) spids: [31 76] ) ] negated: False ) ] )