Skip to content

miskrz/TKiK-C-to-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Konwerter - C/Python

Dane studenta(-ów)

  • Michał Krzempek
  • Kacper Machnik
  • Tomasz Madeja

Dane kontaktowe

Założenia programu

  1. Napisanie programu, który przekształci plik z języka C na język Python.
  2. Rodzaj translatora: kompilator
  3. Wynik działania programu: Kompilator języka C do języka Python
  4. Język implementacji: C#
  5. Sposób realizacji skanera/parsera: Antlrv4

Spis tokenów

C_Tokens

Gramatyka przetwarzanego formatu

C_Grammar

Informacja o stosowanych generatorach skanerów/parserów, pakietach zewnętrznych

Krótka instrukcja obsługi:

Uruchamianie

  1. Do samego uruchomienia wymagany są powyższe pakiety.
  2. Aby uruchomić aplikację należy, po pobraniu repozytorium, komendą zmienić aktualny folder na Website (cd Website), następnie uruchomić aplikację po wpisaniu dotnet run.
  3. Program powinien się uruchomić i wyświetlić link do strony.
  4. Szczegółowy opis korzystania ze strony znajduje się poniżej.

Ewentualne modyfikacje

  1. Aby modyfikować gramatykę należy pobrać antlr4 oraz przy pomocy np. NuGet'a zainstalować pakiet Antlr4.Runtime.Standard
  2. Generowanie potrzebnych plików (Parser, Listener, Visitor, itp.) do działania następuje po użyciu skrótu klawiszowego ctrl + shift + G.

Przykład użycia:

#include <stdio.h>

int main(void) {
    int i = 0;
    
    return 0;
}

Gramatyka

Przykład generowanego drzewa:

Parse Tree Example

Przykładowe możliwości programu

Powyższy program:

simpletest

Przykładowy program ze strukturą, scanf i printf:

advancedtest

GUI

  1. Ręczne wpisywanie bądź wczytywanie danych z pliku (format .c lub .txt)
  2. Zapis do schowka lub zapis do pliku (pobiera plik output.py)
  3. Przycisk "Konwertuj", który wywołuje funkcję konwertującą
  4. Przycisk "Github" - link do repozytorium
  5. Kolorowanie składni w obu okienkach (Wejście/Wyjście)
  6. Obsługa błędów - w razie błędu w gramatyce, zmienia kolor linii, w której znaleziono błąd na czerwony, a dokładniejsze informacje umieszcza w okienku "Błędy" error

Dodatkowe informacje o projekcie

  • Kompilator obsługuje wszystkie podstawowe funkcjonalności języka C jak np.: funkcje, deklaracja, inicjalizacja, tablice, struktury, funkcje (if, else, for, while, do while, switch) i wiele więcej
  • Kompilator obsługuje również wybrane dodatkowe funkcje biblioteczne: scanf, printf, srand, rand, strcmp, strcpy

Link do strony na wiki

About

C to python program

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors