diff options
Diffstat (limited to 'Rakefile')
| -rw-r--r-- | Rakefile | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -63,3 +63,35 @@ end file 'build/stage2b' => ['build/stage2b.s', 'boot/common-boot.s'] do |t| sh CROSS_GCC, '-nostdlib', '-o', t.name, *t.prerequisites end + +desc 'Print remaining lines to rewrite' +task :statistics do + def is_false_positive(word) + word.start_with?('(*') || + word.start_with?('*)') || + ('A'..'Z').include?(word[0]) || + /^[[:alpha:]][[:digit:]]$/.match(word) + end + + lines = File.read('boot/stage2.elna') + .split("\n") + .select { |line| line.start_with? "\t" } + .map { |line| line.delete_prefix("\t").split(' ') } + .reject { |words| is_false_positive(words.first) } + .group_by do |words| + if words.first.length < 5 + case words.first + when 'goto' + 'Statements' + else + words.first + end + else + 'Statements' + end + end + + lines.each do |key, value| + puts "#{key}: #{value.count}" + end +end |
