










Sig: Usando Text::Balanced
Sup: Construcción de Analizadores Léxicos
Ant: La Clase Parse::CLex
Err: Si hallas una errata ...
lhp@nereida:/tmp/Parse-Flex-0.11/t$ cat -n cas.l
1 %{
2 #define YY_DECL char* yylex(void)
3 %}
4
5 %pointer
6 %option yylineno noyywrap
7
8 NUM [0-9]+
9 WORD [a-zA-Z][A-Za-z0-9_]*
10 EMAIL ({WORD}[.]?)+[@]({WORD}.)+[a-z]{2,3}
11
12 %%
13 {EMAIL} return "EMAIL" ;
14 {NUM} return "NUM" ;
15 {WORD} return "WORD" ;
16 [a-zA-Z]/\ return "CHAR" ;
17 \n
18 [\t ]
19 .
20 <<EOF>> return "" ;
21 %%
22
lhp@nereida:/tmp/Parse-Flex-0.11/t$ makelexer.pl cas.l
lhp@nereida:/tmp/Parse-Flex-0.11/t$ ls -ltr | tail -2
-rw-r--r-- 1 lhp lhp 1933 2006-06-28 19:07 Flexer28424.pm
-rwxr-xr-x 1 lhp lhp 38077 2006-06-28 19:07 Flexer28424.so
lhp@nereida:/tmp/Parse-Flex-0.11/t$ perl -MFlexer28424 -de 0
Loading DB routines from perl5db.pl version 1.28
main::(-e:1): 0
DB<1> $x = gen_walker()
DB<2> x $x->()
tut@titi.top
0 'EMAIL'
1 'tut@titi.top'
DB<3> x $x->()
funchal
0 'WORD'
1 'funchal'
DB<4> x $x->()
432
0 'NUM'
1 432
DB<5> x $x->()
;
.:::
fin
0 'WORD'
1 'fin'
DB<6> q











Sig: Usando Text::Balanced
Sup: Construcción de Analizadores Léxicos
Ant: La Clase Parse::CLex
Err: Si hallas una errata ...
Casiano Rodríguez León
2012-05-22