From d4a9b1f71d957341f118c23fa6cbf9a0d6b85cc0 Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Wed, 30 Apr 2025 09:59:44 +0200 Subject: [PATCH] scanf bon --- src/main/java/TP2/asd/toLLVM_Visitor.java | 7 ++++++- src/main/java/TP2/llvm/Interface.java | 1 + .../TP2/llvm/PrettyprinterLLVM_Visitor.java | 6 ++++-- src/main/java/TP2/llvm/ProgramLLVM.java | 6 ++++++ tests/fragment1/read0 | Bin 0 -> 16112 bytes tests/fragment1/read1 | Bin 0 -> 16088 bytes tests/fragment1/read2 | Bin 0 -> 16120 bytes tests/testsAdvanced/portee | Bin 0 -> 16232 bytes 8 files changed, 17 insertions(+), 3 deletions(-) create mode 100755 tests/fragment1/read0 create mode 100755 tests/fragment1/read1 create mode 100755 tests/fragment1/read2 create mode 100755 tests/testsAdvanced/portee diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index 667909f..908b939 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -220,7 +220,12 @@ public class toLLVM_Visitor implements ProgramVisitor, for(int i = 0; i else return "i8"; } - - + @Override + public String visitPointerLLVM(PointerLLVMImp e, String h) { + return e.type().accept(this, h) + "*"; + } } diff --git a/src/main/java/TP2/llvm/ProgramLLVM.java b/src/main/java/TP2/llvm/ProgramLLVM.java index c1bacf0..4616fb1 100644 --- a/src/main/java/TP2/llvm/ProgramLLVM.java +++ b/src/main/java/TP2/llvm/ProgramLLVM.java @@ -224,4 +224,10 @@ public class ProgramLLVM { return v.visitCharLLVM(this, h); } } + + public static record PointerLLVMImp(TypeLLVM type) implements TypeLLVM{ + public S accept(TypeLLVMVisitor v, H h) { + return v.visitPointerLLVM(this, h); + } + } } diff --git a/tests/fragment1/read0 b/tests/fragment1/read0 new file mode 100755 index 0000000000000000000000000000000000000000..958a2210d661e95eff880bdece4c168492423e7d GIT binary patch literal 16112 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 literal 0 HcmV?d00001 diff --git a/tests/fragment1/read1 b/tests/fragment1/read1 new file mode 100755 index 0000000000000000000000000000000000000000..4a79e5f40c242b47ea85765d30183e8cfa6df093 GIT binary patch literal 16088 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 literal 0 HcmV?d00001 diff --git a/tests/fragment1/read2 b/tests/fragment1/read2 new file mode 100755 index 0000000000000000000000000000000000000000..04f77b09602d9a788844afa34dd5b735d6d3a4a5 GIT binary patch literal 16120 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 I1fin(D{5s7asU7T literal 0 HcmV?d00001