Kihagyás

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
  • g++ és make kelleni 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/