[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Analisador Fex lexico URGENTE
From: |
Rafael Yahoo |
Subject: |
RES: [shell-script] Analisador Fex lexico URGENTE |
Date: |
Tue, 8 May 2007 11:54:35 -0300 |
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 [mailto:address@hidden]
Em nome de Darlon
Enviada em: Monday, May 07, 2007 1:52 PM
Para: address@hidden
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]