Trying again, after fixing problem with replacement string size, to submit nested command variable change from r523 that was rolled back.  Tested with test case on Linux, Mac, and Windows.
Trying again, after fixing problem with replacement string size, to submit
nested command variable change from r523 that was rolled back.  Tested
with test case on Linux, Mac, and Windows.

Original description of r523:

Here's a fix for the paren matching in <!() expansions.  It now will correctly
match parens within a command substitution, although there is no way to escape
parens, so you couldn't currently have a command substitution like <!(echo ")")
or <!(echo \)), but that could be added later.

In addition to the paren matching, I also do recursive expansion of <!()
expansions (but NOT other variable substitutions), because without that, having
parens in a command wouldn't provide a lot of benefit.  This means you can do
things like <!(cp <@(_inputs) <(outdir)) and it will work.  Nested expansions
like <!(cp <!(ls /tmp) outdir) also work.

This change shouldn't affect any existing gyp files because parens in a
command were strictly verboten before, so there can't be any (well, any
that work already anyhow).

Original Review URL: http://codereview.chromium.org/131048

Review URL: http://codereview.chromium.org/160111

git-svn-id: e7e1075985beda50ea81ac4472467b4f6e91fc78@555 78cadc50-ecff-11dd-a971-7dbc132099af

okumura/gyp,Omegaphora/external_chromium_org_tools_gyp,luvit/gyp,sanyaade-teachings/gyp,ttyangf/pdfium_gyp,pyokagan/gyp,chromium/gyp,pyokagan/gyp,geekboxzone/lollipop_external_chromium_org_tools_gyp,sloanyang/gyp,sanyaade-teachings/gyp,Chilledheart/gyp,channing/gyp,clar/gyp,pyokagan/gyp,ryfx/gyp,Danath/gyp,msc-/gyp,LazyCodingCat/gyp,erikge/watch_gyp,openpeer/webrtc-gyp,yinquan529/platform-external-chromium_org-tools-gyp,azunite/gyp,sport-monkey/GYP,AWhetter/gyp,AOSPU/external_chromium_org_tools_gyp,Danath/gyp,channing/gyp,yangrongwei/gyp,luvit/gyp,cysp/gyp,erikge/watch_gyp,azunite/gyp_20150930,alexcrichton/gyp,svn2github/gyp,okwasi/gyp,Chilledheart/gyp,yinquan529/platform-external-chromium_org-tools-gyp,AOSPU/external_chromium_org_tools_gyp,lianliuwei/gyp,ryfx/gyp,mapbox/gyp,ttyangf/pdfium_gyp,brson/gyp,Chilledheart/gyp,sdklite/gyp,yangrongwei/gyp,okwasi/gyp,carlTLR/gyp,mapbox/gyp,azunite/gyp_20150930,Omegaphora/external_chromium_org_tools_gyp,duanhjlt/gyp,bnq4ever/gypgoogle,AOSPU/external_chromium_org_tools_gyp,azunite/gyp_20150930,cchamberlain/gyp,dougbeal/gyp,duanhjlt/gyp,lianliuwei/gyp,yangrongwei/gyp,yinquan529/platform-external-chromium_org-tools-gyp,MIPS/external-chromium_org-tools-gyp,springmeyer/gyp,bnoordhuis/gyp,openpeer/webrtc-gyp,okwasi/gyp,android-ia/platform_external_chromium_org_tools_gyp,alexcrichton/gyp,trafi/gyp,sfiera/gyp,enkripsi/gyp,kevinchen3315/gyp-git,adblockplus/gyp,mumble-voip/libmumble-gyp,cysp/gyp,clar/gyp,dougbeal/gyp,openpeer/webrtc-gyp,mistydemeo/gyp,channing/gyp,openpeer/webrtc-gyp,android-ia/platform_external_chromium_org_tools_gyp,tarc/gyp,Jack-Q/GYP-copy,lianliuwei/gyp,amoikevin/gyp,xin3liang/platform_external_chromium_org_tools_gyp,sdklite/gyp,mgamer/gyp,amoikevin/gyp,alexcrichton/gyp,yinquan529/platform-external-chromium_org-tools-gyp,MIPS/external-chromium_org-tools-gyp,chromium/gyp,msc-/gyp,cysp/gyp,omasanori/gyp,Jack-Q/GYP-copy,ttyangf/gyp,bdarnell/gyp,springmeyer/gyp,turbulenz/gyp,cchamberlain/gyp,luvit/gyp,IllusionRom-deprecated/android_platform_external_chromium_org_tools_gyp,omasanori/gyp,cchamberlain/gyp,trafi/gyp,sport-monkey/GYP,okwasi/gyp,pyokagan/gyp,sloanyang/gyp,AWhetter/gyp,ttyangf/pdfium_gyp,svn2github/gyp,sdklite/gyp,pandaxcl/gyp,mgamer/gyp,luvit/gyp,clar/gyp,adblockplus/gyp,IllusionRom-deprecated/android_platform_external_chromium_org_tools_gyp,svn2github/gyp,sdklite/gyp,bnq4ever/gypgoogle,Danath/gyp,sfiera/gyp,svn2github/kgyp,erikge/watch_gyp,sanyaade-teachings/gyp,bnoordhuis/gyp,svn2github/kgyp,bulldy80/gyp_unofficial,turbulenz/gyp,mkrautz/gyp-libmumble,enkripsi/gyp,cchamberlain/gyp,azunite/gyp,Omegaphora/external_chromium_org_tools_gyp,amoikevin/gyp,MIPS/external-chromium_org-tools-gyp,lianliuwei/gyp,okumura/gyp,pandaxcl/gyp,AWhetter/gyp,bulldy80/gyp_unofficial,AWhetter/gyp,lukeweber/gyp-override,sdklite/gyp,mkrautz/gyp-libmumble,bpsinc-native/src_tools_gyp,lukeweber/gyp-override,turbulenz/gyp,LazyCodingCat/gyp,svn2github/kgyp,msc-/gyp,brson/gyp,azunite/gyp,azunite/gyp,saghul/gyn,clar/gyp,trafi/gyp,Phuehvk/gyp,bnq4ever/gypgoogle,mkrautz/gyp-libmumble,mgamer/gyp,bulldy80/gyp_unofficial,duanhjlt/gyp,alexcrichton/gyp,msc-/gyp,bpsinc-native/src_tools_gyp,kevinchen3315/gyp-git,Danath/gyp,azunite/gyp,yjhjstz/gyp,azunite/gyp_20150930,Danath/gyp,cysp/gyp,brson/gyp,geekboxzone/lollipop_external_chromium_org_tools_gyp,pandaxcl/gyp,ryfx/gyp,saghul/gyn,bnoordhuis/gyp,dougbeal/gyp,bnq4ever/gypgoogle,msc-/gyp,chromium/gyp,trafi/gyp,springmeyer/gyp,mgamer/gyp,erikge/watch_gyp,ttyangf/gyp,lukeweber/gyp-override,ttyangf/pdfium_gyp,saghul/gyn,cysp/gyp,sport-monkey/GYP,turbulenz/gyp,amoikevin/gyp,springmeyer/gyp,svn2github/gyp,saghul/gyn,enkripsi/gyp,yjhjstz/gyp,yjhjstz/gyp,carlTLR/gyp,yangrongwei/gyp,duanhjlt/gyp,bulldy80/gyp_unofficial,omasanori/gyp,ttyangf/gyp,Phuehvk/gyp,sloanyang/gyp,adblockplus/gyp,svn2github/kgyp,brson/gyp,bulldy80/gyp_unofficial,ttyangf/pdfium_gyp,tarc/gyp,pandaxcl/gyp,geekboxzone/lollipop_external_chromium_org_tools_gyp,android-ia/platform_external_chromium_org_tools_gyp,bdarnell/gyp,mgamer/gyp,kevinchen3315/gyp-git,tarc/gyp,LazyCodingCat/gyp,sfiera/gyp,duanhjlt/gyp,mapbox/gyp,lukeweber/gyp-override,sanyaade-teachings/gyp,tarc/gyp,erikge/watch_gyp,carlTLR/gyp,saghul/gyn,bnoordhuis/gyp,azunite/gyp_20150930,adblockplus/gyp,ttyangf/gyp,mkrautz/gyp-libmumble,Phuehvk/gyp,clar/gyp,xin3liang/platform_external_chromium_org_tools_gyp,LazyCodingCat/gyp,LazyCodingCat/gyp,openpeer/webrtc-gyp,bpsinc-native/src_tools_gyp,Phuehvk/gyp,enkripsi/gyp,geekboxzone/lollipop_external_chromium_org_tools_gyp,dougbeal/gyp,mistydemeo/gyp,Chilledheart/gyp,channing/gyp,turbulenz/gyp,mistydemeo/gyp,trafi/gyp,mistydemeo/gyp,pyokagan/gyp,bpsinc-native/src_tools_gyp,ryfx/gyp,android-ia/platform_external_chromium_org_tools_gyp,carlTLR/gyp,adblockplus/gyp,ryfx/gyp,mumble-voip/libmumble-gyp,sanyaade-teachings/gyp,bnoordhuis/gyp,bdarnell/gyp,yjhjstz/gyp,svn2github/gyp,omasanori/gyp,sport-monkey/GYP,cchamberlain/gyp,springmeyer/gyp,chromium/gyp,chromium/gyp,mapbox/gyp,bdarnell/gyp,mapbox/gyp,bnq4ever/gypgoogle,okumura/gyp,mumble-voip/libmumble-gyp,carlTLR/gyp,xin3liang/platform_external_chromium_org_tools_gyp,Jack-Q/GYP-copy,MIPS/external-chromium_org-tools-gyp,ttyangf/gyp,amoikevin/gyp,svn2github/kgyp,Phuehvk/gyp,IllusionRom-deprecated/android_platform_external_chromium_org_tools_gyp,xin3liang/platform_external_chromium_org_tools_gyp,enkripsi/gyp,yjhjstz/gyp,AWhetter/gyp,Jack-Q/GYP-copy,AOSPU/external_chromium_org_tools_gyp,okumura/gyp,IllusionRom-deprecated/android_platform_external_chromium_org_tools_gyp,tarc/gyp,pandaxcl/gyp,sloanyang/gyp,kevinchen3315/gyp-git,Chilledheart/gyp,sport-monkey/GYP,dougbeal/gyp,mumble-voip/libmumble-gyp,Jack-Q/GYP-copy,Omegaphora/external_chromium_org_tools_gyp