summaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile45
1 files changed, 6 insertions, 39 deletions
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