checking for format strings

Summary: Add a new check in scheck: for certain functions, check that the number of arguments matches the format string

Test Plan: ./scheck tests/php/scheck/format_string.php

Reviewers: pad, pieter, mathieubaudet

Differential Revision: https://phabricator.fb.com/D872762
pfff: support for namespace part1 (lexing)

Summary: Some people on github asked for namespace support in the pfff tools.

Test Plan: $ ~/pfff/pfff -tokens_php namespace.php

Reviewers: jiaol, pieter, julienv, amenghra, glevi, mathieubaudet, zoel

Reviewed By: pieter

CC: ptarjan, jdelong, andrewparoski

Differential Revision: https://phabricator.fb.com/D872635
pfff: support for namespace part2 (parsing)

Summary: Some people on github asked for namespace support in the pfff tools.

Test Plan: pfff -parse_php namespace.php now works

Reviewers: jiaol, pieter, julienv, amenghra, glevi, mathieubaudet, zoel

Reviewed By: pieter

CC: ptarjan, jdelong, andrewparoski

Differential Revision: https://phabricator.fb.com/D872636
* lang_php/analyze/foundation/graph_code_php.ml: fix unit test
sgrep/spatch: factorize the code of fuzzy parsing of ml and PHP

Summary: This will make it easier to also fuzzy parse other languages like Js or Java.

Test Plan: make test

Reviewers: jiaol, pieter, julienv, amenghra, mathieubaudet

Reviewed By: pieter

Differential Revision: https://phabricator.fb.com/D871515
sgrep: support for Java via fuzzy parsing

Test Plan:
$ ~/pfff/sgrep -lang java -e 'class $X { ... }' Foo.java
/data/users/pad/github/pfff/tests/java/sgrep/Foo.java:1
 class Foo
 {
   public static void main(String args[])
   {
     System.out.println("Hello World!");
   }
 }

Reviewers: jiaol, pieter, julienv, amenghra, mathieubaudet

Reviewed By: pieter

Differential Revision: https://phabricator.fb.com/D871562
sgrep: support for Javascript via fuzzy parsing

Summary:
I used perl -p -i -e s/.../ recently and got a few false positives
so I need sgrep/spatch to work on more languages.

Test Plan:
$ ~/pfff/sgrep -lang js -e 'var $X = { ... }' dom.js
/data/users/pad/github/pfff/tests/js/sgrep/dom.js:1
 var DOM = {
   find : function(element, selector_str) {
   },
   setContent : function(el, content) {
   }
 };

Reviewers: jiaol, pieter, julienv, amenghra, mathieubaudet

Reviewed By: pieter

Differential Revision: https://phabricator.fb.com/D871605
* demos/Makefile: misc
spatch: support for javascript and java via fuzzy parsing

Test Plan: make test

Reviewers: jiaol, pieter, julienv, amenghra, mathieubaudet

Reviewed By: pieter

Differential Revision: https://phabricator.fb.com/D871636
Merge branch 'master' of github.com:facebook/pfff
* main_spatch.ml: fix
* main_spatch.ml: misc
* main_spatch.ml: comment
* h_program-lang/archi_code.mli: estet
* h_program-lang/archi_code_parse.ml: estet
* h_program-lang/big_grep.ml: estet
* h_program-lang/coverage_code.ml: estet
* h_program-lang/graph_code_opti.mli: estet
* h_program-lang/dependencies_matrix_code.mli: estet
* h_program-lang/graph_code_prolog.mli: