elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  contador de lineas logicas de codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: contador de lineas logicas de codigo  (Leído 9,930 veces)
minerva86

Desconectado Desconectado

Mensajes: 5


Ver Perfil
contador de lineas logicas de codigo
« en: 7 Marzo 2009, 17:10 »

Hola que tal 

Necesito ayuda con un codigo que me lea un archivo .java y que luego me cuente cuantas lineas fisicas tengo(total de lineas de código) y luego que me cuente las lineas lógicas es decir(num. de sentencias y sus nombres ,num de  clases y sus nombres, funciones y sus nombres, num. métodos y sus nombres).


este es el código del contador de lineas logicas, pero ahora debo adecuerla con las especificaciones anteriores, ojala me puedan echar la mano.  :)

import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;

/**
 *
 * @author Administrador
 */
public class ContadorLineas {
public int conta(File file) {
      System.out.println("Cargando... " + file.getName());
      int conta = 0;
      //    Obtener todos los archivos en el directorio actual
      if (file.isDirectory()) {
         // Obteniendo el archivo para cargarlo
      conta = recurseDirectory(file, conta);
      } else {
         // Le decimos que este es el archivo que queremos para contarlo.
         conta = LineasContadasen(file);
      }
      return conta;
   }

   /**
    * Cuenta codigo excluyendo comentarios y lineas blancas en un archivo dado
    *
    * @param file
    * @return int
    */
   public int LineasContadasen(File file) {
      int conta = 0;
      System.out.println("Contando... " + file.getName());
      try {
         BufferedReader reader = new BufferedReader(new FileReader(file.getAbsolutePath()));
         String linea = null;
         do {
            linea = reader.readLine();
            if (linea != null && linea.indexOf("*") == -1 && linea.indexOf("//") == -1 && linea.length() > 0)
                   conta++;
         } while (linea != null);
      } catch (Exception e) {
         e.printStackTrace();
      }
      return conta;
   }

   public int recurseDirectory(File file, int conta) {
      File[] files = file.listFiles(new FileFilter() {
         public boolean accept(File file) {
            if (file.getName().indexOf(".java") != -1 || file.isDirectory()) {
               return true;
            } else {
               return false;
            }
         }
      });
      for (int i = 0; i < files.length; i++) {
         conta += conta(files);
      }
      return conta;
   }

   public static void main(String[] args)
    {
       ContadorLineas lc = new ContadorLineas();
      System.out.println("Lineas Contadas = " + lc.conta(new File("C:\\Documents and Settings\\Administrador" +
                "\\Mis documentos\\NetBeansProjects\\ContadorLineas" +
                "\\src\\ContadorLineas.java")));
}
}


En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: contador de lineas logicas de codigo
« Respuesta #1 en: 7 Marzo 2009, 21:27 »

te tendrás que hacer un parser para contar las sentencias de java. Con jack o con lo que quieras.


En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
minerva86

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: contador de lineas logicas de codigo
« Respuesta #2 en: 8 Marzo 2009, 16:47 »

mira soy novata en java y la verdad se poco de metodos y de parser menos jeje, si me pudieras ayudar  :P
En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: contador de lineas logicas de codigo
« Respuesta #3 en: 8 Marzo 2009, 17:10 »

Bienvenida. Lee las normas,  un manual de jack, o de la alternativa a yacc y lex para java que prefieras, creo que jack es la más popular.

Cuando tengas dudas concretas las preguntas.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
minerva86

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: contador de lineas logicas de codigo
« Respuesta #4 en: 8 Marzo 2009, 20:37 »

A que te refieres con el manual de jack
En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: contador de lineas logicas de codigo
« Respuesta #5 en: 16 Marzo 2009, 22:30 »

Pues al manual...

Mira aquí tienes una lista de herramientas para construir analizadores sintácticos en java:
http://java-source.net/open-source/parser-generators

Y aquí otra:
http://catalog.compilertools.net/java.html

El manual de jack va a ser que no es tan fácil de encontrar como creía, después de un rato buscándolo no lo he encontrado. El hacer un parser tampoco es tan fácil, es una tarea para segundo o tercero de carrera, en primero te puede costar mucho hacerlo.

Lee las normas, deberías editar el mensaje original.

Y también necesitas una lista con las sentencias de java, para poder ponerle los nombres conforme a ése esquema de nombrado, porque no sé si serías capaz de hacerlo a mano, es decir, sin un programa, pero es muy difícil hacer con un programa algo que no puedes hacer a mano a menos que te metas en algo de redes de neuronas artificiales, algoritmos genéticos y otras formas de aprendizaje automático.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines