Skip to content

Evenlaxxus/flex-bison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

flex-bison

Prosty język programowania stworzony za pomocą Flex, Bison i C++.

Składnia

Instrukcje

  • Przypisanie wartości do zmiennej - variable_name = EQUATION ;
  • Wypisanie działania lub zmiennej
    • PRINT EQUATION ;
    • PRINT VARIABLE ;
  • Instrukcja warunkowa - IF CONDITION INSTRUCTION ;
  • Pętla while - WHIE VARIABLE ASSIGNMENT INSTRUCTION ;

Wyjaśnienie Symboli

  • EQUATION
    • liczba - liczba zmiennoprzecinkowa lub całkowita
    • zmienna
    • dodawanie - EQUATION + EQUATION
    • odejmowanie - EQUATION - EQUATION
    • dzielenie - EQUATION / EQUATION
    • mnożenie - EQUATION * EQUATION
    • potęgowanie - EQUATION ^ EQUATION
    • pierwiastek kwadratowy - EQUATION#
    • silnia - EQUATION!
    • reszta z dzielenia - EQUATION % EQUATION
  • CONDITION - EQUATION SIGN EQUATION gdzie SIGN należy do {<, >, <=, >=, !=, ==}
  • INSTRUCTION - pojedyncza instrukcja

Kolejność wykonywania działań

Kolejność wykonywania działań jest zaimplementowana przy użyciu odwrotnej notacji polskiej.

Ustalenie wagi znaków operacji:

    if(ch == "/" || ch == "*") return 2;
    else if(ch == "-" || ch == "+") return 1;

Funkcja zwracająca stos znaków:

std::stack<std::string> infix2postfix(std::string infix);

Przykładowy stos:

  • Rówanie wejściowe: 3+4+5/2*(2-4)
  • Odwrotna notacja polska: 3 4 + 5 2 / 2 4 - * +
  • Stos: 3 -> 4 -> + -> 5 -> 2 -> / -> 2 -> 4 -> - -> * -> +

Funkcjonalność

  • Rozwiązywanie prostych operacji matematycznych z poprawną kolejnością wykonywania działań
  • Wypisywanie wyników działań
  • Wykonywanie instrukcji na podstawie instrukcji warunkowej
  • Wykonywanie instrukcji w pętli while

Kompilacja

Skompilowano za pomocą

  • MinGW
  • Bison
  • Flex

Użyte komendy konsolowe

  • flex skaner.l
  • bison -dy parser.y
  • g++ lex.yy.c y.tab.c -o filename.exe

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published