gogrep
1.0.0
GO111MODULE=on go get mvdan.cc/gogrep
Cari kode Go menggunakan pohon sintaksis.
gogrep -x 'if $x != nil { return $x, $*_ }'
Perhatikan bahwa proyek ini tidak lagi dikembangkan . Lihat #64 untuk lebih jelasnya.
usage: gogrep commands [packages]
Sebuah perintah berbentuk "-A pattern", dimana -A adalah salah satu dari:
-x find all nodes matching a pattern
-g discard nodes not matching a pattern
-v discard nodes matching a pattern
-a filter nodes by certain attributes
-s substitute with a given syntax tree
-w write source back to disk or stdout
Pola adalah bagian dari kode Go yang mungkin berisi wildcard. Ini bisa berupa:
a statement (many if split by semicolons)
an expression (many if split by commas)
a type expression
a top-level declaration (var, func, const)
an entire file
Wildcard terdiri dari $
dan nama. Semua karakter pengganti dengan nama yang sama dalam ekspresi harus cocok dengan node yang sama, kecuali "_". Contoh:
$x.$_ = $x // assignment of self to a field in self
Jika *
sebelum namanya, maka akan cocok dengan sejumlah node mana pun. Contoh:
fmt.Fprintf(os.Stdout, $*_) // all Fprintfs on stdout
*
juga dapat digunakan untuk mencocokkan node opsional, seperti:
for $*_ { $*_ } // will match all for loops
if $*_; $b { $*_ } // will match all ifs with condition $b
Node yang dihasilkan dari penerapan perintah akan dicetak baris demi baris ke output standar.
Berikut dua contoh sederhana operan -a:
gogrep -x '$x + $y' // will match both numerical and string "+" operations
gogrep -x '$x + $y' -a 'type(string)' // matches only string concatenations