Ajuda com o sed

1. Ajuda com o sed

danilo
danilosampaio

(usa Debian)

Enviado em 01/03/2013 - 10:44h

Olá Pessoal,

Estou precisando de uma força! estou fazendo um shell script básico, que analisa um código javascript. Tá faltando muito pouco para que o script faça o que precido. Seguinte: eu tenho o seguinte código js:


function Objeto(){
this.metodo1 = function(){

}
this.metodo2 = function(){

}
}

Objeto.prototype.metodo3 = function(){

}

function funcaoTeste(){

}


Identificar que o método 'metodo3' está dentro do escopo da classe 'Objeto' é fácil, pois a palavra 'prototype' é uma palavra chave fácil de identificar com o sed. Contudo, para identificar que o 'metodo1' e 'metodo2' estão no escopo da classe 'Objeto' é mais difícil, pois eu tenho verificar se o método está entre "Objeto(){" e a "}" que fecha a definição da classe. Antes de mais nada, adianto que esse script pode conter mais de uma classe, por isso eu não posso simplesmente verificar se o nome do método é precedido da palavra 'this'.

Alguém poderia me dá uma luz de como fazer isso com o sed? ou awk, o que funcionar tá bom!

Valeu.


  


2. Re: Ajuda com o sed

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 01/03/2013 - 11:29h

danilosampaio escreveu:

Olá Pessoal,

Estou precisando de uma força! estou fazendo um shell script básico, que analisa um código javascript. Tá faltando muito pouco para que o script faça o que precido. Seguinte: eu tenho o seguinte código js:


function Objeto(){
this.metodo1 = function(){

}
this.metodo2 = function(){

}
}

Objeto.prototype.metodo3 = function(){

}

function funcaoTeste(){

}


Identificar que o método 'metodo3' está dentro do escopo da classe 'Objeto' é fácil, pois a palavra 'prototype' é uma palavra chave fácil de identificar com o sed. Contudo, para identificar que o 'metodo1' e 'metodo2' estão no escopo da classe 'Objeto' é mais difícil, pois eu tenho verificar se o método está entre "Objeto(){" e a "}" que fecha a definição da classe. Antes de mais nada, adianto que esse script pode conter mais de uma classe, por isso eu não posso simplesmente verificar se o nome do método é precedido da palavra 'this'.

Alguém poderia me dá uma luz de como fazer isso com o sed? ou awk, o que funcionar tá bom!

Valeu.


Mais fácil fazer isso com uma porrada de grep e um ou outro cut ocasional:
 $ cat arquivo.script | cut -d'{' -f2 | cut -d'}' -f1 

Isso deve retornar tudo aquilo que estiver depois de um { e antes de um }


3. Re: Ajuda com o sed

danilo
danilosampaio

(usa Debian)

Enviado em 01/03/2013 - 13:22h

Caro lcavalheiro, obrigado pela resposta
mas não resolve o meu problema.
Na verdade, não quero pegar tudo que está entre '{}', eu preciso saber em qual definição de classe um determinado método se encontra.

OBS: o comando "cat arquivo.script | cut -d'{' -f2 | cut -d'}' -f1" retorna strings vazias.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts