Académique Documents
Professionnel Documents
Culture Documents
Antes de Comear
Instalar a JDK Instalar o Eclipse IDE (JDT) Instalar o JFLEX e o CUP Instalar o JFLEX e CUP Plugin
http !!cup"le#"eclipse$source%orge$net!up&ate
Per(ite especi%icar analisa&ores l)#icos *era u( analisa&or l)#ico+ escrito e( Ja,a -ers.o (o&erna &o Le# e ,ers.o e%iciente &e JLe#
JFLEX 0nalisa&or L)#ico (Yylex. ava) !om"ilador Java # ava$%
Especi%ica/.o L)#ica
'
Especificaes JFlex
1. cdigo do usurio && 2. diretivas do JFlex e definies regulares && 3. regras
C2&igo &o Usu3rio pac4age e i(ports De%ini/.o &e classes utilit3rias Direti,as Custo(i5a/.o &a classe parser gera&a$ De%ini/6es regulares au#iliares 7egra
Exemplo
'' !(di)o do usu*rio "a$+a)e exem"lo.lex, im"or- exem"lo.-o+en.., && ''/ire-ivas do Jflex &fun$-ion "roximo0o+en &-y"e 0o+en
Exemplo
''!(di)o in$lu1do a $lasse do "arser. &2"riva-e 0abelaSimbolos -abela, "ubli$ Yylex#-abelaSimbolos -abela% 2 -3is.-abela 4 -abela, "riva-e in- ins-alar5d#S-rin) id% 2...6 ''ins- na -abela &6
Exemplo
''defini78es re)ulares auxiliares delim49: :-:n:r; ws42delim6< le-ra49a=>A=?; di)i-o49@=A; id42le-ra6#2le-ra6B2di)i-o6%. numero42di)i-o6< #:.2di)i-o6<%C #E9<:=;C 2di)i-o6<%C
Exemplo
''De)ras && 2ws6 26 if 2re-urn new 0o+en#sym.5F%,6 2id6 2in- i 4 ins-alar5d#yy-ex-#%%, re-urn new 0o+en#sym.5/Enew 5n-e)er#i%%,6 2numero6 2re-urn new 0o+en#sym.FGME new /ouble#yy-ex-#%%%,6 HIH 2re-urn new 0o+en#sym.L0%,6 HI4H 2re-urn new 0o+en#sym.LE%,6 ... ... . 2sys-em.ou-."rin-ln#H$ara$-. des$on3e$idoH%,6
<
O . tudo menos :n O H....H string sem escape, exceto para H e \ O 2nome6 macro O 9bde:n;E 9a=>A=?;E 9a=>@=A; 9Ja=>; '' 0udo $om ex$e7Po de a=> @ classes de caracteres
1E
Iutro tentati,a H'.H 9J.;. H.H #9J'; 9J.;. H.H%. H'Q A-ividade R valendo "on-o "ara "ro e-oS Desolver esse "roblema "ara a "r(xima aula.
11
Estados
Fistura &e E#p$ 7eg$ co( esta&os (autL(atos) Especi%ica/6es (ais operacionais Mo entanto+ as ,e5es (ais a&eJua&as$ I!TMMEF0L 2 H.'H 2yybe)in# YY5F505AL% , 6 9J; 2 '.nada.' 6 6 I/T!=!TMMEF0L 2 Q@"aramH 2.... 6 ... 6
1'
IYY5F505ALL 2 if 2re-urn new 0o+en...6 2id6 2re-urn new 0o+en ... 6 H'.H 2yybe)in#!TMMEF0%,6 H'..H 2yybe)in# /T!=!TMMEF0%,6 ... 6
Exerc"cio
0ti,i&a&e 2 -alen&o ponto para o pro8eto$ Co(o po&eria especi%icar co(ent3rios aninha&os usan&o esta&osH
11
! operador de loo#a$ead
e'f Casa u( e #onde e uma ex"ressPo re)ular% segui&o &e u( f$ I te#to relati,o ao f n.o ) consu(i&o eK Casa co( e segui&o &e #o"erador de fim de lin3a%.
19
Le#
Pri(eira %erra(enta neste estilo$ *era C e CNN *era&or &e 0nalisa&or L)#ico e Aint3tico (2 e( 1)$ CI%icialD &a Aun$ Ainta#e &as e#p$ regulares &i%erente$ Po&er &e e#press.o eJuipar3,el$ 2 e( 1
J0-0CC
AaOleCC
1:
&arefa
0ti,i&a&e ' (,alen&o ponto para o pro8eto)$ De%inir para a linguage( &a Plti(a aula o analisa&or l)#ico$ To4ens
i%+ i&enti%ica&ores+ liteirais nu()ricos+ opera&ores e &eli(ita&ores$ -er sli&e le#ico$ppt Entrega &as ' ati,i&a&es (E<!set)$
1;