Prosty język programowania stworzony za pomocą Flex, Bison i C++.
- 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 ;
- 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
gdzieSIGN
należy do {<
,>
,<=
,>=
,!=
,==
} - INSTRUCTION - pojedyncza instrukcja
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 -> - -> * -> +
- 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
- MinGW
- Bison
- Flex
- flex skaner.l
- bison -dy parser.y
- g++ lex.yy.c y.tab.c -o
filename.exe