fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2)

Sorun: unary ! dalı emitLoadSlot ile operandı kopyalıyordu — terslemiyordu.
Sabitlerde sabit katlama doğru çalışıyordu; değişken operandlar her zaman
orijinal değeri döndürüyordu.

Düzeltme: BANG case'i EQUAL_EQUAL(operand, 0) olarak üretiliyor.
  !x → slots[result] = (slots[operand] == 0) ? 1 : 0
Sonuç her zaman 0 ya da 1; bool int olarak temsil edilmesiyle tutarlı.
~ (B2/F2 kapsamı dışı) eski TODO dalında kalmaya devam ediyor.

Test: tests/golden/logic/not_operator.sqt — değişken operandla !0→1,
!5→0, !!5→1, !!0→0, if(!x) dallanma. 17/17 test yeşil.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
saqut 2026-06-19 16:15:46 +03:00
parent 450f16008f
commit 7c93f12304
9 changed files with 148 additions and 91 deletions

Binary file not shown.

View File

@ -11,14 +11,14 @@
9 9708 1781873515651752771 CMakeFiles/saqut.dir/src/parser/nodes/binary_expr.cpp.o 5cc8b697133bcf64
9 7206 1781873515651861333 CMakeFiles/saqut.dir/src/parser/nodes/declarations.cpp.o c3d262615ede4c95
9 4452 1781874491015670524 CMakeFiles/saqut.dir/src/main.cpp.o 3cfef7a665d5bf87
4452 4694 1781874495457230305 saqut f2e198803c4dbffb
0 22 1781874572087843675 build.ninja 1876a59d627a585
0 22 1781874572087777897 /home/saqut/Masaüstü/saqutcompiler/build/cmake_install.cmake 1876a59d627a585
2704 2946 1781874878915205117 saqut f2e198803c4dbffb
0 22 1781874924882965311 build.ninja 1876a59d627a585
0 22 1781874924882905555 /home/saqut/Masaüstü/saqutcompiler/build/cmake_install.cmake 1876a59d627a585
8261 13474 1781873523902721486 CMakeFiles/saqut.dir/src/symbol/symbol_collector.cpp.o ec4e483b8ddb4007
5962 11851 1781873521603816495 CMakeFiles/saqut.dir/src/semantic/structural_validator.cpp.o 248faa3675024351
7206 12730 1781873522847765087 CMakeFiles/saqut.dir/src/semantic/type_checker.cpp.o b29c133293d988b0
9874 11363 1781873525515654821 CMakeFiles/saqut.dir/src/vm/interpreter.cpp.o b7dd80e002d68a1d
9 1858 1781873515651218159 CMakeFiles/saqut.dir/src/ir/ir_function.cpp.o 10f5e8dfd1461d69
9 1821 1781873515651428931 CMakeFiles/saqut.dir/src/ir/ir_program.cpp.o 9518231d970828da
9 2803 1781874491014415953 CMakeFiles/saqut.dir/src/ir/ir_generator.cpp.o 10a1ed4e1f52e530
0 8 1781874491005416329 /home/saqut/Masaüstü/saqutcompiler/build/CMakeFiles/cmake.verify_globs 1813c41e0f312d7e
9 2704 1781874876220317748 CMakeFiles/saqut.dir/src/ir/ir_generator.cpp.o 10a1ed4e1f52e530
1 8 1781874876212318082 /home/saqut/Masaüstü/saqutcompiler/build/CMakeFiles/cmake.verify_globs 1813c41e0f312d7e

View File

@ -7,6 +7,7 @@ set(OLD_GLOB
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/basic.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/precedence.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/fibonacci/fib.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/not_operator.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/basic.sqt"
"/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/do_while_once.sqt"

View File

@ -12,6 +12,8 @@ add_test(golden_arithmetic_precedence "/usr/bin/cmake" "-DBINARY=/home/saqut/Mas
set_tests_properties(golden_arithmetic_precedence PROPERTIES _BACKTRACE_TRIPLES "/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;51;add_test;/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;0;")
add_test(golden_fibonacci_fib "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/fibonacci/fib.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/fibonacci/fib.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake")
set_tests_properties(golden_fibonacci_fib PROPERTIES _BACKTRACE_TRIPLES "/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;51;add_test;/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;0;")
add_test(golden_logic_not_operator "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/not_operator.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/not_operator.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake")
set_tests_properties(golden_logic_not_operator PROPERTIES _BACKTRACE_TRIPLES "/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;51;add_test;/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;0;")
add_test(golden_logic_short_circuit "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake")
set_tests_properties(golden_logic_short_circuit PROPERTIES _BACKTRACE_TRIPLES "/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;51;add_test;/home/saqut/Masaüstü/saqutcompiler/CMakeLists.txt;0;")
add_test(golden_loops_basic "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/basic.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/basic.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake")

View File

@ -1,19 +1,20 @@
unit_tests 12 0.383222
golden_arithmetic_basic 12 0.00103142
golden_fibonacci_fib 12 0.000916418
golden_string_hello 12 0.000742352
golden_arithmetic_precedence 11 0.000902075
golden_loops_basic 11 0.000863198
golden_loops_do_while_once 11 0.000996616
unit_tests 13 0.352436
golden_arithmetic_basic 13 0.000652347
golden_fibonacci_fib 13 0.000724591
golden_string_hello 13 0.00072588
golden_arithmetic_precedence 12 0.000714208
golden_loops_basic 12 0.000810632
golden_loops_do_while_once 12 0.000818169
golden_opt_dce 2 0.00441751
golden_opt_folding 2 0.00456844
golden_opt_dce_ir_opt 9 0.00109281
golden_opt_folding_ir_opt 9 0.00105492
golden_opt_run_opt 7 0.00244026
golden_opt_run_opt_run_opt 7 0.0014659
golden_logic_short_circuit 3 0.00318302
golden_loops_do_while_truthy 2 0.00508981
golden_loops_for_break_continue 1 0.0102576
golden_loops_nested_break 1 0.00991625
golden_loops_while_break_continue 1 0.00901491
golden_opt_dce_ir_opt 10 0.00095937
golden_opt_folding_ir_opt 10 0.000934146
golden_opt_run_opt 8 0.00122626
golden_opt_run_opt_run_opt 8 0.00120176
golden_logic_short_circuit 4 0.00248143
golden_loops_do_while_truthy 3 0.00308889
golden_loops_for_break_continue 2 0.00483077
golden_loops_nested_break 2 0.0049106
golden_loops_while_break_continue 2 0.00473685
golden_logic_not_operator 1 0.00930197
---

View File

@ -1,10 +1,10 @@
Start testing: Jun 19 16:09 +03
Start testing: Jun 19 16:15 +03
----------------------------------------------------------
1/16 Testing: unit_tests
1/16 Test: unit_tests
1/17 Testing: unit_tests
1/17 Test: unit_tests
Command: "/usr/bin/bash" "/home/saqut/Masaüstü/saqutcompiler/tests/run.sh"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"unit_tests" start time: Jun 19 16:09 +03
"unit_tests" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
=== test_type ===
@ -21,236 +21,251 @@ test.sqt:12:1: uyarı [W001]: y kullanılmıyor
test_diagnostic: TUM TESTLER GECTI
=== TUM TESTLER GECTI ===
<end of output>
Test time = 4.60 sec
Test time = 4.58 sec
----------------------------------------------------------
Test Passed.
"unit_tests" end time: Jun 19 16:09 +03
"unit_tests" end time: Jun 19 16:15 +03
"unit_tests" time elapsed: 00:00:04
----------------------------------------------------------
2/16 Testing: golden_arithmetic_basic
2/16 Test: golden_arithmetic_basic
2/17 Testing: golden_arithmetic_basic
2/17 Test: golden_arithmetic_basic
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/basic.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/basic.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_arithmetic_basic" start time: Jun 19 16:09 +03
"golden_arithmetic_basic" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_arithmetic_basic" end time: Jun 19 16:09 +03
"golden_arithmetic_basic" end time: Jun 19 16:15 +03
"golden_arithmetic_basic" time elapsed: 00:00:00
----------------------------------------------------------
3/16 Testing: golden_arithmetic_precedence
3/16 Test: golden_arithmetic_precedence
3/17 Testing: golden_arithmetic_precedence
3/17 Test: golden_arithmetic_precedence
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/precedence.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/arithmetic/precedence.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_arithmetic_precedence" start time: Jun 19 16:09 +03
"golden_arithmetic_precedence" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_arithmetic_precedence" end time: Jun 19 16:09 +03
"golden_arithmetic_precedence" end time: Jun 19 16:15 +03
"golden_arithmetic_precedence" time elapsed: 00:00:00
----------------------------------------------------------
4/16 Testing: golden_fibonacci_fib
4/16 Test: golden_fibonacci_fib
4/17 Testing: golden_fibonacci_fib
4/17 Test: golden_fibonacci_fib
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/fibonacci/fib.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/fibonacci/fib.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_fibonacci_fib" start time: Jun 19 16:09 +03
"golden_fibonacci_fib" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_fibonacci_fib" end time: Jun 19 16:09 +03
"golden_fibonacci_fib" end time: Jun 19 16:15 +03
"golden_fibonacci_fib" time elapsed: 00:00:00
----------------------------------------------------------
5/16 Testing: golden_logic_short_circuit
5/16 Test: golden_logic_short_circuit
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
5/17 Testing: golden_logic_not_operator
5/17 Test: golden_logic_not_operator
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/not_operator.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/not_operator.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_logic_short_circuit" start time: Jun 19 16:09 +03
"golden_logic_not_operator" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_logic_short_circuit" end time: Jun 19 16:09 +03
"golden_logic_not_operator" end time: Jun 19 16:15 +03
"golden_logic_not_operator" time elapsed: 00:00:00
----------------------------------------------------------
6/17 Testing: golden_logic_short_circuit
6/17 Test: golden_logic_short_circuit
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/logic/short_circuit.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_logic_short_circuit" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_logic_short_circuit" end time: Jun 19 16:15 +03
"golden_logic_short_circuit" time elapsed: 00:00:00
----------------------------------------------------------
6/16 Testing: golden_loops_basic
6/16 Test: golden_loops_basic
7/17 Testing: golden_loops_basic
7/17 Test: golden_loops_basic
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/basic.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/basic.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_basic" start time: Jun 19 16:09 +03
"golden_loops_basic" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_basic" end time: Jun 19 16:09 +03
"golden_loops_basic" end time: Jun 19 16:15 +03
"golden_loops_basic" time elapsed: 00:00:00
----------------------------------------------------------
7/16 Testing: golden_loops_do_while_once
7/16 Test: golden_loops_do_while_once
8/17 Testing: golden_loops_do_while_once
8/17 Test: golden_loops_do_while_once
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/do_while_once.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/do_while_once.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_do_while_once" start time: Jun 19 16:09 +03
"golden_loops_do_while_once" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_do_while_once" end time: Jun 19 16:09 +03
"golden_loops_do_while_once" end time: Jun 19 16:15 +03
"golden_loops_do_while_once" time elapsed: 00:00:00
----------------------------------------------------------
8/16 Testing: golden_loops_do_while_truthy
8/16 Test: golden_loops_do_while_truthy
9/17 Testing: golden_loops_do_while_truthy
9/17 Test: golden_loops_do_while_truthy
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/do_while_truthy.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/do_while_truthy.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_do_while_truthy" start time: Jun 19 16:09 +03
"golden_loops_do_while_truthy" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_do_while_truthy" end time: Jun 19 16:09 +03
"golden_loops_do_while_truthy" end time: Jun 19 16:15 +03
"golden_loops_do_while_truthy" time elapsed: 00:00:00
----------------------------------------------------------
9/16 Testing: golden_loops_for_break_continue
9/16 Test: golden_loops_for_break_continue
10/17 Testing: golden_loops_for_break_continue
10/17 Test: golden_loops_for_break_continue
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/for_break_continue.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/for_break_continue.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_for_break_continue" start time: Jun 19 16:09 +03
"golden_loops_for_break_continue" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_for_break_continue" end time: Jun 19 16:09 +03
"golden_loops_for_break_continue" end time: Jun 19 16:15 +03
"golden_loops_for_break_continue" time elapsed: 00:00:00
----------------------------------------------------------
10/16 Testing: golden_loops_nested_break
10/16 Test: golden_loops_nested_break
11/17 Testing: golden_loops_nested_break
11/17 Test: golden_loops_nested_break
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/nested_break.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/nested_break.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_nested_break" start time: Jun 19 16:09 +03
"golden_loops_nested_break" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_nested_break" end time: Jun 19 16:09 +03
"golden_loops_nested_break" end time: Jun 19 16:15 +03
"golden_loops_nested_break" time elapsed: 00:00:00
----------------------------------------------------------
11/16 Testing: golden_loops_while_break_continue
11/16 Test: golden_loops_while_break_continue
12/17 Testing: golden_loops_while_break_continue
12/17 Test: golden_loops_while_break_continue
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/while_break_continue.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/loops/while_break_continue.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_loops_while_break_continue" start time: Jun 19 16:09 +03
"golden_loops_while_break_continue" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_loops_while_break_continue" end time: Jun 19 16:09 +03
"golden_loops_while_break_continue" end time: Jun 19 16:15 +03
"golden_loops_while_break_continue" time elapsed: 00:00:00
----------------------------------------------------------
12/16 Testing: golden_opt_dce_ir_opt
12/16 Test: golden_opt_dce_ir_opt
13/17 Testing: golden_opt_dce_ir_opt
13/17 Test: golden_opt_dce_ir_opt
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/dce.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/dce.ir_opt.expected" "-DCOMMAND=ir" "-DOPTIMIZED=1" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_opt_dce_ir_opt" start time: Jun 19 16:09 +03
"golden_opt_dce_ir_opt" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_opt_dce_ir_opt" end time: Jun 19 16:09 +03
"golden_opt_dce_ir_opt" end time: Jun 19 16:15 +03
"golden_opt_dce_ir_opt" time elapsed: 00:00:00
----------------------------------------------------------
13/16 Testing: golden_opt_folding_ir_opt
13/16 Test: golden_opt_folding_ir_opt
14/17 Testing: golden_opt_folding_ir_opt
14/17 Test: golden_opt_folding_ir_opt
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/folding.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/folding.ir_opt.expected" "-DCOMMAND=ir" "-DOPTIMIZED=1" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_opt_folding_ir_opt" start time: Jun 19 16:09 +03
"golden_opt_folding_ir_opt" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_opt_folding_ir_opt" end time: Jun 19 16:09 +03
"golden_opt_folding_ir_opt" end time: Jun 19 16:15 +03
"golden_opt_folding_ir_opt" time elapsed: 00:00:00
----------------------------------------------------------
14/16 Testing: golden_opt_run_opt
14/16 Test: golden_opt_run_opt
15/17 Testing: golden_opt_run_opt
15/17 Test: golden_opt_run_opt
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/run_opt.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/run_opt.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_opt_run_opt" start time: Jun 19 16:09 +03
"golden_opt_run_opt" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.02 sec
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_opt_run_opt" end time: Jun 19 16:09 +03
"golden_opt_run_opt" end time: Jun 19 16:15 +03
"golden_opt_run_opt" time elapsed: 00:00:00
----------------------------------------------------------
15/16 Testing: golden_opt_run_opt_run_opt
15/16 Test: golden_opt_run_opt_run_opt
16/17 Testing: golden_opt_run_opt_run_opt
16/17 Test: golden_opt_run_opt_run_opt
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/run_opt.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/opt/run_opt.run_opt.expected" "-DOPTIMIZED=1" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_opt_run_opt_run_opt" start time: Jun 19 16:09 +03
"golden_opt_run_opt_run_opt" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_opt_run_opt_run_opt" end time: Jun 19 16:09 +03
"golden_opt_run_opt_run_opt" end time: Jun 19 16:15 +03
"golden_opt_run_opt_run_opt" time elapsed: 00:00:00
----------------------------------------------------------
16/16 Testing: golden_string_hello
16/16 Test: golden_string_hello
17/17 Testing: golden_string_hello
17/17 Test: golden_string_hello
Command: "/usr/bin/cmake" "-DBINARY=/home/saqut/Masaüstü/saqutcompiler/build/saqut" "-DSOURCE=/home/saqut/Masaüstü/saqutcompiler/tests/golden/string/hello.sqt" "-DEXPECTED=/home/saqut/Masaüstü/saqutcompiler/tests/golden/string/hello.expected" "-P" "/home/saqut/Masaüstü/saqutcompiler/cmake/run_golden.cmake"
Directory: /home/saqut/Masaüstü/saqutcompiler/build
"golden_string_hello" start time: Jun 19 16:09 +03
"golden_string_hello" start time: Jun 19 16:15 +03
Output:
----------------------------------------------------------
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Passed.
"golden_string_hello" end time: Jun 19 16:09 +03
"golden_string_hello" end time: Jun 19 16:15 +03
"golden_string_hello" time elapsed: 00:00:00
----------------------------------------------------------
End testing: Jun 19 16:09 +03
End testing: Jun 19 16:15 +03

View File

@ -409,8 +409,13 @@ int IRGenerator::generateExpression(ASTNode* node) {
int zeroSlot = freshSlot();
emitLoadConst(zeroSlot, 0);
emitBinaryOp(Opcode::SUB, resultSlot, zeroSlot, operandSlot);
} else if (bin->Operator == TokenType::BANG) {
// !x → (x == 0): sıfırsa 1, değilse 0 — her zaman 0 ya da 1
int zeroSlot = freshSlot();
emitLoadConst(zeroSlot, 0);
emitBinaryOp(Opcode::EQUAL_EQUAL, resultSlot, operandSlot, zeroSlot);
} else {
// Diğer unary operatörler → TODO
// Diğer unary operatörler (ör. ~) → TODO
emitLoadSlot(resultSlot, operandSlot);
}
return resultSlot;

View File

@ -0,0 +1,5 @@
1
0
1
0
1

View File

@ -0,0 +1,28 @@
// ! operatörü golden testi — değişken operandlar (bozuk olan yol).
// Sabit operandlar sabit katlama tarafından derleme zamanında hesaplanır;
// bu test IR üretim yolunu zorlayan değişken operandlar kullanır.
//
// Tanım: !x → sıfırsa 1, değilse 0. Sonuç her zaman 0 ya da 1.
int main() {
int z = 0;
int n = 5;
// Temel: !0 → 1, !5 → 0
print(!z);
print(!n);
// Çift değil normalleştirme: !!5 → 1, !!0 → 0
print(!!n);
print(!!z);
// if (!x) dallanma: z=0 iken gövde çalışmalı, n=5 iken çalışmamalı
if (!z) {
print(1);
}
if (!n) {
print(0);
}
return 0;
}