# Formális nyelvek és fordítóprogramok (IP-18bFNYFPRG)

## Fordítóprogram részei

1. Lexikális elemző
2. Szintaktikus elemző
3. Szemantikus elemző
4. Fordító

## Szintaktikus elemzés

1. `[alma, körte, szilva]`
2. `char betuje(string s, int index); int osszeg(int x, int y);`
3. nemtom ugyanaz mint 2
4. `ha !x1 paros akkor !2y := 4`
    - **TOKENEK**!!
    - `"!"[a-z0-9]+` &rarr; `t_var`
    - `0|[1-9][0-9]*` &rarr; `t_num`
    - `ha` &rarr; `t_if`
    - `havege` &rarr; `t_endif`
    - `akkor` &rarr; `t_then`
    - `paros` &rarr; `t_even`
    - `paratlan` &rarr; `t_odd`
    - `:=` &rarr; `t_assign`
    - `[ \b\r]` &rarr;
      - fehérelválasztó
      - yep üres lett
    - **ÁLLÍTÁSOK**!!
      - Átalakítások
          | Ebből | Ebbe |
          | :---: | :--: |
          | `S`   | `STATEMENTS` -- *hogy ne visítson a program* |
          | `STATEMENTS` | `STATEMENT STATEMENTS\|`$\varepsilon$ |
          | `STATEMENT` | `IF\|ASSIGN` |
          | `IF` | `t_if RIGHT_VALUE CONDITION t_then STATEMENTS t_endif` |
          | `CONDITION` | `t_even\|t_odd` |
          | `ASSIGN` | `t_var t_assign RIGHT_VALUE` |
          | `RIGHT_VALUE` | `t_num\| t_var\|RIGHT_VALUE (t_add\|t_sub) RIGHT_VALUE` |

HF: Elöltesztelős ciklus

ZH-n ÁLTALÁNOS BLOKKÉPZŐ ELEM?? \{ \}

"Akkora picsa voltam a múlt héten, azóta azt mesélem. Valahogy ti kihozzátok belőlem"
