refactor: modularize parser and AST components #68
No reviewers
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#68
Loading…
Reference in New Issue
No description provided.
Delete Branch "feature/parser-modularization"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PR Açıklaması: Parser ve AST Bileşenlerinin Modülerleştirilmesi
Açıklama
Bu PR,
src/parser/dizini altındaki devasaast.hppveparser.hppdosyalarını mantıksal parçalara ayırarak kodun okunabilirliğini ve bakımını kolaylaştırmayı amaçlar. Kodun işlevselliği korunmuş, sadece dosya yapısı modüler hale getirilmiştir.Önemli Değişiklikler
1. AST (Soyut Sözdizim Ağacı) Modülerleştirme
ast.hppdosyası artık bir aggregator (toplayıcı) görevi görüyor ve aşağıdaki yeni dosyalardan bileşenleri dahil ediyor:ast_node.hpp: TemelASTNodesınıfı veASTKindenum'u.ast_expr.hpp:LiteralNode,BinaryExpressionNode,CallExpressionNodegibi ifade düğümleri.ast_stmt.hpp:BlockNode,IfStatementNode,WhileStatementNodegibi deyim (statement) düğümleri.ast_decl.hpp:FunctionDeclNode,VariableDeclNode,StructDeclNodegibi deklarasyon düğümleri.ast_json.hpp: JSON serileştirme için yardımcı fonksiyonlar (childrenToJson,jsonEscapevb.).2. Parser Modülerleştirme
Parser mantığı da benzer şekilde parçalara ayrıldı:
parser_base.hpp:Parsersınıfı tanımı ve üye değişkenleri.parser_core.hpp: Pratt Parser ana döngüsü, NUD ve LED mantığı.parser_decl.hpp: Fonksiyon, değişken ve struct deklarasyonlarının ayrıştırılması.parser_stmt.hpp: Deyimlerin (if, for, while, return vb.) ayrıştırılması.Teknik Avantajlar
Notlar
Final.sqtgibi örnek dosyaların ayrıştırılması sorunsuz çalışmaya devam etmektedir.