shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Moderação] Analisador Fex lexico URGENTE


From: Julio C. Neves
Subject: [Moderação] Analisador Fex lexico URGENTE
Date: Tue, 8 May 2007 17:14:27 -0300

Rafael,
isso é uma lista sobre shell e onde se fala somente sobre esta linguafem.
Repare que no rodapé de todas as msgs vem escrito o seguinte:
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Porém, como sou um cara legal ;-), vou dar-lhe outra oportunidade, mas,
enquanto isso, sinta-se advertido.

Abração,
Julio
:wq



Em 08/05/07, Rafael Yahoo <address@hidden> escreveu:
>
>   Turma eu tenho um grande problema em maos e nao sei como trata-lo fiz de
> tudo mas nao sou tao bom assim para escrever um codigo que reconheca todos
> os simbolos , constants numericas, etc.
>
> Alguém ai jah fez ou tem conhecimento sobre analisador LEXICO, FLEX? Tem
> como me ajudar com esse código?
>
> Muito obrigado mesmooooo!!!
>
> Abraço Rafael Torres de Almeida
>
> #include<stdlib.h>
>
> #include<stdio>
>
> %{
>
> int num_linha = 1, num_carac = 0;
>
> %}
>
> %option noyywrap
>
> DIG [0-9]
>
> ID [a-zA-Z][a-zA-Z0-9]*
>
> SIM
>
> "="|"+"|"-"|"*"|"/"|"{"|"}"|"("|")"|";"|"++"|"+="|"--"|"-="|"->"|"."|\"|"'"|
> \\
>
> %%
>
> {SIM} {
>
> ++num_carac;
>
> printf("Classe: Simbolos \n");
>
> printf("Valor: %s
> \n", yytext);
>
> printf("Posicao: Lin %d , Col %d \n", num_linha, num_carac);
>
> }
>
> {DIG}* {
>
> ++num_carac;
>
> printf("Classe: Constante Numerica
> \n");
>
> printf("Valor: %s (%d)\n", yytext);
>
> printf("Posicao: Lin %d , Col %d \n", num_linha, num_carac);
>
> }
>
> {ID} {
>
> ++num_carac;
>
> printf("Classe: Identificador
> \n");
>
> printf("Valor:
> %s \n", yytext);
>
> printf("Posicao: Lin %d , Col
> %d \n", num_linha, num_carac);
>
> }
>
> \n {
>
> ++num_linha;
>
> num_carac = 0;
>
> }
>
> . {
>
> ++num_carac;
>
> printf("Caracter
> Desconhecido: %s\n", yytext );
>
> }
>
> %%
>
> main( argc, argv )
>
> int argc;
>
> char **argv;
>
> {
>
> ++argv, --argc;
>
> if ( argc > 0 ){
>
> yyin = fopen( argv[0], "r" );
>
> }
>
> else{
>
> yyin = stdin;
>
> }
>
> yylex();
>
> }
>
> _____
>
> De: address@hidden <shell-script%40yahoogrupos.com.br>[mailto:
> address@hidden <shell-script%40yahoogrupos.com.br>]
> Em nome de Darlon
> Enviada em: Monday, May 07, 2007 1:52 PM
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: Re: [shell-script] tr? awk? cut?
>
> Tenta esse
>
> awk -F ":" '{split($2,x,","); for (i in x) print $1 >> x[i]}' arquivo
>
> On 5/7/07, Tiago Barcellos Peczenyj <tiago.peczenyj@
> <mailto:tiago.peczenyj%40gmail.com> gmail.com> wrote:
> >
> > Uma das formas poderia ser esta
> >
> > awk 'BEGIN{FS="[:,]"} # separador de campo : ou ,
> > {
> > for(i=2;i<=NF;i++){ # varre todas as 'tags' $1 é o
> > usuario
> > A[$i]++ # contamos quantas vezes
> > aparece o nome da 'tag'
> > if (A[$i] == 1) print $i > $i".txt" # se 1* vez imprime cabeçalho
> > print $1 >> $i".txt" # adiciona nome
> > }
> > }' arquivo
> >
> > use com cuidado ;-)
> >
> > On 5/7/07, Pedro Drimel <pedrodrimel@ <mailto:pedrodrimel%40gmail.com>
> gmail.com <pedrodrimel%40gmail.com>>
> > wrote:
> > >
> > > Bom dia a todos...
> > >
> > > Tenho um arquivo na seguinte estrutura
> > >
> > > usuario1:abc,xxx,zzz
> > > usuario2:xxx
> > > usuario3:zzz
> > > usuario4:xxx,abc
> > >
> > > preciso gerar um arquivo ou até varios (abc.txt xxx.txt) contendo
> > >
> > > abc
> > > usuario1
> > > usuario4
> > >
> > > xxx
> > > usuario1
> > > usuario2
> > > usuario4
> > >
> > > zzz
> > > usuario1
> > > usuario3
> > >
> > > Alguma idéia?
> > >
> > > Obrigado.
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> ----------------------------------------------------------
> O sistema pediu:"Requires Windows 9x, Windows 2000 or better".
> Então eu instalei Linux.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]