From a60e623af5eff3b0252cf6100cf0c366a9d3058b Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 26 Apr 2025 23:14:38 +0200 Subject: Implement simple binary expressions --- Rakefile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile index 5976113..e04bff1 100644 --- a/Rakefile +++ b/Rakefile @@ -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 -- cgit v1.2.3