From a00f0d57b843736d603d749fc269d0208cec4e76 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 30 Jan 2026 23:21:19 +0100 Subject: Lower global static array and record access --- Rakefile | 45 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile index ae7f27f..4ea6030 100644 --- a/Rakefile +++ b/Rakefile @@ -38,47 +38,14 @@ end desc 'Convert previous stage language into the current stage language' task :convert do - File.open('boot/stage19/cl.elna', 'w') do |current_stage| - File.readlines('boot/stage18/cl.elna').each do |line| - current_stage << "\tf();\n" if line.include? "if _compile() then" + File.open('boot/stage20/cl.elna', 'w') do |current_stage| + File.readlines('boot/stage19/cl.elna').each do |line| + if line.include? "_assign_at(@classification, 1, ElnaLexerClass.eof)" + current_stage << "\tclassification[1] := ElnaLexerClass.eof;\n" + else current_stage << line - if line == "type\n" - current_stage << <<-RECORD - Pair = record - first: Word; - second: Word - end; - R1 = record - field1: Word; - field2: [4]Word; - field3: Word - end; - R2 = record - field1: Word; - field3: Word; - field4: Word; - field5: Word; - field6: Word; - field2: Word - end; - - RECORD - end + end end - current_stage << <<~EPILOGUE - - proc f(); - var - v1: Word; - r: ^R1; - begin - r := malloc(#size(R1)); - - v1 := r^.field2[2]; - - printf("# %i\\n\\0", v1) - end; - EPILOGUE end end -- cgit v1.2.3