-
Notifications
You must be signed in to change notification settings - Fork 0
/
bead.l
64 lines (53 loc) · 1.58 KB
/
bead.l
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
%option noyywrap c++ yylineno
%{
#include <iostream>
#include <stdlib.h>
#include "Parserbase.h"
%}
SZAMJEGY [0-9]
WS [ \t\n]
BETU [a-zA-Z]
%%
#.* // nem kell semmit csinalni
{SZAMJEGY}+ return Parser::SZAMKONSTANS;
PROGRAM return Parser::PROGRAM;
VALTOZOK: return Parser::VALTOZOK;
UTASITASOK: return Parser::UTASITASOK;
PROGRAM_VEGE return Parser::PROGRAM_VEGE;
HA return Parser::HA;
AKKOR return Parser::AKKOR;
KULONBEN return Parser::KULONBEN;
HA_VEGE return Parser::HA_VEGE;
CIKLUS return Parser::CIKLUS;
AMIG return Parser::AMIG;
CIKLUS_VEGE return Parser::CIKLUS_VEGE;
BE: return Parser::BE;
KI: return Parser::KI;
EGESZ return Parser::EGESZ;
LOGIKAI return Parser::LOGIKAI;
IGAZ return Parser::IGAZ;
HAMIS return Parser::HAMIS;
SKIP return Parser::SKIP;
":=" return Parser::ERTEKADAS;
"=" return Parser::EGYENLO;
"<" return Parser::KISEBB;
">" return Parser::NAGYOBB;
"<=" return Parser::KISEBBEGYENLO;
">=" return Parser::NAGYOBBEGYENLO;
"+" return Parser::PLUSZ;
"-" return Parser::MINUSZ;
"*" return Parser::SZORZAS;
"/" return Parser::OSZTAS;
"%" return Parser::MARADEK;
ES return Parser::ES;
VAGY return Parser::VAGY;
NEM return Parser::NEM;
"(" return Parser::BALZAROJEL;
")" return Parser::JOBBZAROJEL;
({BETU}|_)({BETU}|{SZAMJEGY}|_)* return Parser::AZONOSITO;
{WS}+ // feher szokozok: semmi teendo
. {
std::cerr << lineno() << "lexikalis hiba" << std::endl;
exit(1);
}
%%