From c20d9b7240033b462b33030ba4946135bc7d7fef Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Tue, 25 Nov 2025 08:03:05 +0100 Subject: Set expression type for enumeration values --- Rakefile | 46 +++++++++++----------------------------------- 1 file changed, 11 insertions(+), 35 deletions(-) (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile index 54c3bd3..9edd271 100644 --- a/Rakefile +++ b/Rakefile @@ -40,43 +40,19 @@ end desc 'Convert previous stage language into the current stage language' task :convert do - File.open('boot/stage16.elna', 'w') do |current_stage| - skip = false - - File.readlines('boot/stage15.elna').each do |line| - if line.strip == 'type' - current_stage << <<~SNIP - type - _elna_tac_declaration = record - next: Word; - name: Word; - length: Word; - body: Word - end; - _integer_literal_node = record - kind: Word; - value: Word; - length: Word - end; - SNIP - elsif line.start_with?('proc _elna_tac_declaration_size') - skip = true - elsif line.start_with?('proc _elna_tac_declaration_get_') - skip = true - elsif line.start_with?('proc _elna_tac_declaration_set_') - skip = true - elsif line.start_with?('proc _integer_literal_node_size') - skip = true - elsif line.start_with?('proc _integer_literal_node_get_') - skip = true - elsif line.start_with?('proc _integer_literal_node_set_') - skip = true - elsif line.start_with?('end') && skip - skip = false - elsif !skip + File.open('boot/stage17/cl.elna', 'w') do |current_stage| + File.readlines('boot/stage16/cl.elna').each do |line| current_stage << line - end end + current_stage << <<~STAGE + + proc f(x: ElnaTreeExpression); + var + y: Word; + begin + y := x.kind + end; + STAGE end end -- cgit v1.2.3