Your SlideShare is downloading. ×
0
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
[20110219] pfffについて
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[20110219] pfffについて

3,384

Published on

Python Hackathon 2011.02で発表したpfffの紹介。この時点ではまだバグが多いですが有用なツールだと思います。

Python Hackathon 2011.02で発表したpfffの紹介。この時点ではまだバグが多いですが有用なツールだと思います。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,384
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1  
  • 2. • • •  – •  – 
  • 3.  
  • 4. • • • 
  • 5. • • • • • 
  • 6. •  • •  • •  • •  • •  • •  • •  • •  • 
  • 7. •  • •  • •  • •  • •  • •  • •  • •  • 
  • 8. •  • •  • •  • •  • •  • •  • •  • •  • 
  • 9. • • • • • • • 
  • 10. • •  $ pfff -parse_php <dir or file>  
  • 11. • •  $ sgrep -e ‘strstr(...) == false’ *.php   $ find . name *.php | xargs grep ‘strstr(...) == false’    
  • 12. •  $ sgrep -e ‘foo(.*, 1, .*)’ *.php   $hoge  =  $a-­‐>foo($spam,  1,  $egg) //       $hoge  =  $a-­‐>foo($spam,                                    //   OK                                                                1,                                                                $egg)  
  • 13. • •  //remove_second_arg_foo.spatch foo(X -  ,Y ) //  remove_second_arg_foo_alt.spatch   -­‐        foo(X,Y)   +      foo(X)  
  • 14. •  $ spatch -c <patch> *.php  
  • 15. • • 
  • 16. •  function foo($avar) { return $avarr; } $  scheck  test.php   demos/scheck.php:4:9:  CHECK:  use  of  undefined  variable  $avarr   demos/scheck.php:3:13:  CHECK:  unused  Param  variable  $avar  
  • 17. • • •  – 
  • 18. Linux  2.6  
  • 19. Android  
  • 20. • •  – 
  • 21. • •  –  lang_xxx/parsing/lexer_xxx.mll•  –  lang_xxx/parsing/ast_xxx.ml•  –  lang_xxx/parsing/ast_xxx.ml
  • 22. • • • • 

×