Fordítóprogramok rész
Előző feladat
\[
\begin{array}{ccllll}S&\to&n\,M\,c\,p \\ M &\to& U&|\;UM \\ U&\to&sp&|aea&|aek&|\;S\end{array}
\]
\(T= \{n,\,c,\,a,\,k,\,s,\,e,\,p\}\)
- \(a:\quad x\,(0|10)^*\,|\,1?\)
- \(k:\quad 0\,|\,1[01]^*\)
- \(n:\)
"{"
Pl
\[
\{SKIP;\;x1=100;\;x01=x1;\};
\]
\[
n\,s\,p\,a\,e\,k\,p\,a\,e\,a\,p\,c\,p
\]
Gyakorlati rész
- Pandora csatlakozás szükséges
- Csak ott van
flex
- Csak ott van
g++ésmakekelleni fog
while: lex.yy.cc while.cc
g++ lex.yy.cc while.cc -o while
lex.yy.cc: while.l
flex while.l
.PONY: clean
clean:
rm -f flex.yy.cc while
%option noyywrap c++
%{
#include <iostream>
#include <stream>
using namespace std;
%}
%%
%%
int main()
{
ifstream in ("input.txt");
yyFlexLexer fl(&in, &cout);
fl.yylex();
return 0;
}
%{...%}részek a lexikális elemző utasításai elé kerülnek be
%%pedig extra deklarációs utasításokat helyezi be
https://www.geeksforgeeks.org/flex-fast-lexical-analyzer-generator/