20 lines
500 B
Plaintext
20 lines
500 B
Plaintext
var program = <<'EOT'
|
|
func foo { }
|
|
func bar { }
|
|
|
|
foo(); foo(); foo()
|
|
bar(); bar();
|
|
EOT
|
|
|
|
var parser = Parser.new # initialize a new parser
|
|
parser.parse_script( code => program ) # parse the code
|
|
|
|
var data = Perl.to_sidef(parser{:vars}{:main}).flatten
|
|
|
|
data.sort_by { |v| -v{:count} }.first(10).each { |entry|
|
|
if (entry{:type} == :func) {
|
|
say ("Function `#{entry{:name}}` (declared at line",
|
|
" #{entry{:line}}) is used #{entry{:count}} times")
|
|
}
|
|
}
|