(List (= scope= flags=0 words=[] bindings=[('BASE_URL', {[DQ [LIT_CHARS "https://code.google.com/p/v8/source/list"]]})]) (= scope= flags=0 words=[] bindings=[('VERSION', {[DQ [LIT_CHARS src/version.cc]]})]) (= scope= flags=0 words=[] bindings=[('MAJOR', {[DQ [LIT_CHARS MAJOR_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('MINOR', {[DQ [LIT_CHARS MINOR_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('BUILD', {[DQ [LIT_CHARS BUILD_NUMBER]]})]) (= scope= flags=0 words=[] bindings=[('PATCH', {[DQ [LIT_CHARS PATCH_LEVEL]]})]) (= scope= flags=0 words=[] bindings=[('V8', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})][LIT_CHARS /..]]}) (Com {[LIT_CHARS pwd]}) )]]})]) (Com {[LIT_CHARS cd]} {[VarSub V8]}) (FunctionDef usage [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "usage: "][VarSub 0][LIT_CHARS " OPTIONS\n"][LIT_CHARS "\n"][LIT_CHARS "Fetches V8 revision information from a git-svn checkout.\n"][LIT_CHARS "\n"][LIT_CHARS "OPTIONS:\n"][LIT_CHARS " -h Show this message.\n"][LIT_CHARS "\n"][LIT_CHARS " -i Print revision info for all branches matching the V8 version.\n"][LIT_CHARS " Example usage: "][VarSub 0][LIT_CHARS " -i 3.19.10"][LIT_OTHER "$"][LIT_CHARS "\n"][LIT_CHARS " Output format: [Git hash] [SVN revision] [V8 version]\n"][LIT_CHARS "\n"][LIT_CHARS " -v Print the V8 version tag for a trunk SVN revision.\n"][LIT_CHARS " Example usage: "][VarSub 0][LIT_CHARS " -v 14981\n"][LIT_CHARS " Output format: [V8 version]\n"][LIT_CHARS "\n"][LIT_CHARS " -m Print all patches that were merged to the specified V8 branch.\n"][LIT_CHARS " Example usage: "][VarSub 0][LIT_CHARS " -m 3.18\n"][LIT_CHARS " Output format: [V8 version] [SVN revision] [SVN patch merged]*.\n"][LIT_CHARS "\n"][LIT_CHARS " -p Print all patches merged to a specific V8 point-release.\n"][LIT_CHARS " Example usage: "][VarSub 0][LIT_CHARS " -p 3.19.12.1\n"][LIT_CHARS " Output format: [SVN patch merged]*\n"][LIT_CHARS "\n"][LIT_CHARS " -u Print a link to all SVN revisions between two V8 revision tags.\n"][LIT_CHARS " Example usage: "][VarSub 0][LIT_CHARS " -u 3.19.10:3.19.11\n"]]} 0), > ) ) (FunctionDef tags [] (Com {[LIT_CHARS git]} {[LIT_CHARS for-each-ref]} {[LIT_CHARS --format] [LIT_OTHER "="] [DQ [LIT_CHARS "%(objectname) %(refname:short)"]]} {[LIT_CHARS refs/remotes/svn]}) ) (FunctionDef tag_revision [] (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [DQ [LIT_CHARS " "]]} {[LIT_CHARS -f1]}) ) (FunctionDef tag_log [] (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --format] [LIT_OTHER "="] [DQ [LIT_CHARS "%h %ci %ce %s"]]} {[LIT_CHARS -1]} {[VarSub 1]}) ) (FunctionDef v8_hash [] (Pipeline (Com {[LIT_CHARS tags]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS svn/tags/][VarSub 1][LIT_OTHER "$"]]}) (Com {[LIT_CHARS tag_revision]}) ) ) (FunctionDef point_merges [] (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "r[0-9]"][\ LIT_ESCAPED_CHAR "\\+"]]}) ) ) (FunctionDef hash_to_svn [] (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS svn]} {[LIT_CHARS log]} {[LIT_CHARS -1]} {[LIT_CHARS --oneline]} {[VarSub 1]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [DQ [LIT_CHARS " "]]} {[LIT_CHARS -f1]}) ) ) (FunctionDef tag_version [] (Pipeline (Com {[LIT_CHARS tags]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS svn/tags/] [VarSub 1]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS tag]}) (List (= scope= flags=0 words=[] bindings=[('id', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub tag]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "[^/]*"][LIT_OTHER "$"]]}) )]})]) (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub tag]}) (Com {[LIT_CHARS tag_revision]}) )]})]) (= scope= flags=0 words=[] bindings=[('svn', {[ComSub (Com {[LIT_CHARS hash_to_svn]} {[VarSub rev]})]})]) (Com {[LIT_CHARS echo]} {[VarSub rev]} {[VarSub svn]} {[VarSub id]}) ) ) ) ) (FunctionDef svn_rev [] (Com {[LIT_CHARS git]} {[LIT_CHARS svn]} {[LIT_CHARS find-rev]} {[VarSub 2]} {[LIT_CHARS svn/] [VarSub 1]}) ) (FunctionDef v8_rev [] (List (Com {[LIT_CHARS cd]} {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --show-toplevel]})]}) (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS show]} {[VarSub 1] [LIT_OTHER ":"] [VarSub VERSION]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "#define"]]}) (Com {[LIT_CHARS grep]} {[DQ [VarSub MAJOR][\ LIT_ESCAPED_CHAR "\\|"][VarSub MINOR][\ LIT_ESCAPED_CHAR "\\|"][VarSub BUILD][\ LIT_ESCAPED_CHAR "\\|"][VarSub PATCH]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "[0-9]"][\ LIT_ESCAPED_CHAR "\\+"][LIT_OTHER "$"]]}) (Com {[LIT_CHARS tr]} {[DQ [\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS n]]} {[DQ [LIT_CHARS .]]}) )]})]) (Com {[LIT_CHARS echo]} {[VarSub rev transform_ops=[VS_UNARY_PERCENT {[LIT_CHARS "?"]}]]}) ) ) (FunctionDef merges_to_branch [] (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cherry]} {[LIT_CHARS -v]} {[LIT_CHARS svn/trunk]} {[LIT_CHARS svn/] [VarSub 1]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS merge]}) (List (= scope= flags=0 words=[] bindings=[('h', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub merge]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [DQ [LIT_CHARS " "]]} {[LIT_CHARS -f2]}) )]})]) (= scope= flags=0 words=[] bindings=[('svn', {[ComSub (Com {[LIT_CHARS svn_rev]} {[VarSub 1]} {[VarSub h]})]})]) (= scope= flags=0 words=[] bindings=[('merges', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub merge]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "r[0-9]"][\ LIT_ESCAPED_CHAR "\\+"]]}) )]})]) (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Com {[LIT_CHARS v8_rev]} {[VarSub h]})]})]) (Com {[LIT_CHARS echo]} {[VarSub rev]} {[LIT_CHARS r] [VarSub svn]} {[VarSub merges]}) ) ) ) ) (FunctionDef url_for [] (List (= scope= flags=0 words=[] bindings=[('first', {[ComSub (Com {[LIT_CHARS svn_rev]} {[LIT_CHARS trunk]} {[ComSub (Com {[LIT_CHARS v8_hash]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [DQ [LIT_CHARS ":"]]} {[LIT_CHARS -f1]}) )]})]})]})]) (= scope= flags=0 words=[] bindings=[('last', {[ComSub (Com {[LIT_CHARS svn_rev]} {[LIT_CHARS trunk]} {[ComSub (Com {[LIT_CHARS v8_hash]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [DQ [LIT_CHARS ":"]]} {[LIT_CHARS -f2]}) )]})]})]})]) (= scope= flags=0 words=[] bindings=[('num', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub last]}} {A Atom NODE_ARITH_WORD {[VarSub first]}}}]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub BASE_URL][LIT_CHARS "?num="][VarSub num][LIT_CHARS "&start="][VarSub last]]}) ) ) (While (Com {[LIT_CHARS getopts]} {[DQ [LIT_CHARS ":hi:v:m:p:u:"]]} {[LIT_CHARS OPTION]}) (Case to_match={[VarSub OPTION]}, pat_word_list=[[{[LIT_CHARS h]}], [{[LIT_CHARS i]}], [{[LIT_CHARS v]}], [{[LIT_CHARS m]}], [{[LIT_CHARS p]}], [{[LIT_CHARS u]}], [{[LIT_OTHER "?"]}]] (List (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) (Com {[LIT_CHARS tag_version]} {[VarSub OPTARG]}) (Com {[LIT_CHARS v8_rev]} {[ComSub (Com {[LIT_CHARS svn_rev]} {[LIT_CHARS trunk]} {[LIT_CHARS r] [VarSub OPTARG]})]}) (Com {[LIT_CHARS merges_to_branch]} {[VarSub OPTARG]}) (Com {[LIT_CHARS echo]} {[ComSub (Com {[LIT_CHARS point_merges]} {[DQ [ComSub (Com {[LIT_CHARS tag_log]} {[ComSub (Com {[LIT_CHARS v8_hash]} {[VarSub OPTARG]})] [LIT_OTHER "^"] [LIT_CHARS 1]})]]})]}) (Com {[LIT_CHARS url_for]} {[VarSub OPTARG]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Illegal option: -"][VarSub OPTARG]]}) (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) )