…
این کامپایلر، کلاسهای ساخته شده در C++ را طی چند Pass به ساختارهای معادل آنها (شامل متدها، سازندهها، مخربها و …) در C تبدیل مینماید. Pass های اجرایی در این کامپایلر به عبارت زیر هستند:
۱- پیش پردازش Preprocess:
قالب برنامه ورودی را به شکلی مناسب اصلاح مینماید. مثلا حذف فاصلههای اضافی و خطوط خالی و قرار دادن هر دستور در یک خط مجزا.
۲- تجزیه Parse:
با برسی برنامه، Token ها را تشخیص داده و جدول نمادها (Symbol Table) را تشکیل میدهد. همچنین انواع دادهای جدید معرفی شده در برنامه، به Data type های پیشفرض، جهت استفاده، اضافه میگردند.
۳- ترجمه Translate:
با استفاده از جدول نمادها، برنامه را خط به خط ترجمه مینماید.
بدیهیست که این برنامه، فقط یک نمونه آموزشی و آزمایشی بوده و توانایی ترجمه انواع دستورات، اعلانها و سرآیندهای متفاوت موجود در Cpp را ندارد.
A high level C++ classes to c structs compiler. This program converts C++ classes to C structs, and has some limitations.
Features and limitations:
1. Multiple variable declaretion is illegal
Ex:
Legal: int a; int b; int c; Illegal: int a,b,c;
2. IF and THEN forward is illegal:
Ex:
Legal: if (num2==6) Illegal: if (num2==6) printf(“Its true!”);
printf(“Its true!”);
3. Int, float, void, class and struct datatypes are supported
4. Refference variable not supported
5. Only one default parameter is supported, no more
6. This is a symbolic translator and produced for educational project, so has bugs and limitations
Persian post in my blog, about Cpp2C
Screenshots:

