Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
IMplementacion de un parser

HOla a todos:
como parte de una tarea de la universidad, tengo que definir un estilo de programacion. Luego, una vez establecido este estilo de programacion tengo que utilizarlo siempre. El probelma viene dado en que tengo que hacer un programa que partiendo de este estilo de codigo cuente las Lineas de Codigo(LOC) de un fichero .pas que le entre. Para ello pense implementar un parser de codigo Object Pascal y emplearlo.. solo que no tengo ni idea de como hacer el parser o de donde buscarlo.
Si alguien sabe como resolver mi problema, agradezco la ayuda!

__________________
Muchas Gracias...
Responder Con Cita
  #2  
Antiguo 28-10-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Yo buscaría algo que exista, por lo menos para analizarlo. Busca en Torry.net!.. Yo utilicé uno, que no recuerdo el nombre (mwEdit creo), donde por un lado estaba el editor, y por otro el control que hacía el parseo. Entonces uno solo tenía que crear su propio Parser con el diccionario y la sintaxis que uno desea.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 28-10-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Pues si, creo que me puede servir.. solo que ya he caminado Torry.net completa y no lo encuentro.. podrias especificarme mejor como buscar?
__________________
Muchas Gracias...
Responder Con Cita
  #4  
Antiguo 28-10-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
A simple vista, esto esta basado en el componente que te comenté anteriormente:
http://cvs.sourceforge.net/viewcvs.py/synedit/SynEdit/
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 28-10-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Hace poco tiempo hice un compilador simple con instrucciones al estilo Object Pascal.

Puedes utilizar herramientas para generar automáticamente el compilador, para esto debes proporcionar la grámatica del lenguaje que quieres reconocer

Las más famosas herramientas son Lex para generar el analizador léxico (tokenizer) y YACC para generar el análizador sintáctico (Parser).

Están disponibles también para Delphi, te dejo algunas páginas en dónde puedes obtener información.

Rx de un compilador


Tutorial de Lex & Yacc
Genreración de Parsers de Gramaticas Libres de Contexto.


Turbo Pascal Lex & YACC

Espero que te sea útil, un saludo.
Responder Con Cita
  #6  
Antiguo 28-10-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Si todo esto te parece muy complicado, te dejo las funciones que utilicé como analizador léxico y sintáctico.

No está completo el código, no se puede subir porque excede el tamaño permitido, espero que esta parte te sirva para tomar algunas ideas.

Un saludo
Archivos Adjuntos
Tipo de Archivo: zip comipla.zip (6,7 KB, 118 visitas)

Última edición por Héctor Randolph fecha: 29-10-2005 a las 20:10:42. Razón: Añadir el código como adjunto.
Responder Con Cita
  #7  
Antiguo 28-10-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Si tiene que parsear codigo .pas, tengo uno hecho que podria ayudarte. Aunque lo correcto es darte la url, http://www.goldparser.com, es un excelente parser de gramaticas BNF, y tienen ya gramaticas de pascal previamente hechas.

Yo hice mi practica de compiladores usando goldparser, un assembly para .net que implementa el parser, c# para hacer el editor, y las gramaticas (modificadas en mi caso, un mix de c y pascal) para parsear.

Al principio todos los terminos como que confunden, pero con el tiempo te acostumbras a diferenciar cada cosa de la otra.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #8  
Antiguo 30-10-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
apuro...!!!!

Cita:
Empezado por hector
Si tiene que parsear codigo .pas, tengo uno hecho que podria ayudarte. Aunque lo correcto es darte la url, http://www.goldparser.com, es un excelente parser de gramaticas BNF, y tienen ya gramaticas de pascal previamente hechas.
Tienes razon... eso seria lo correcto; aunque en este caso te agrdeceria que nos saltaramos ese paso pues mi tarea es para este miercoles y todavia me faltan miles de cosas... pudieras darme un adelanto con un poco de codigo fuente???
__________________
Muchas Gracias...
Responder Con Cita
  #9  
Antiguo 31-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por bustio
aunque en este caso te agrdeceria que nos saltaramos ese paso pues mi tarea es para este miercoles
Hola.

No lo tomes personal, pero creo que si estas atrazado con las tareas, será porque no te has organizado bien para sacarlas, o porque estas abarcando muchos cursos o un tenes una carga inadecuada de trabajo/estudio.

Este Club Delphi no es "el rincon del vago" y particularmente no estamos interesados en ayudar a nadie con la tarea del colegio. Mas bien estamos interesados regularmente en ampliar la base de conocimiento de todos los miembros del club, y seguro que eso puede ayudarte a sacar las tareas. Podrías hacer muchas de ellas simplemente buscando por los foros, trucos o componentes que aqui se referencian.

Puedo dar fe de lo beneficioso que ha sido para mi, en lo profesional y fuera de ello, haber adoptado este estilo del que hablo: Aprender a hacer las cosas en lugar de buscarlas hechas.

Claro que no se trata de reinventar la rueda, pero si pretendes un titulo de ingeniero en ruedas, lo ideal es que sepas hacer una por tus propios medios, y tu tarea de la escuela seguramente va en esa misma línea.

Para concluir, recomendarte pedir un plazo extra y profundizar en el tema antes de entregar una tarea que no ha dejado nada a tu cerebro, ya que si seguis buscando, seguramente la encontrarás.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 07-12-2007
Avatar de makina
makina makina is offline
Miembro
 
Registrado: oct 2005
Ubicación: Mexico DF.
Posts: 27
Poder: 0
makina Va por buen camino
Saludos Héctor

Cita:
Empezado por Héctor Randolph Ver Mensaje
Si todo esto te parece muy complicado, te dejo las funciones que utilicé como analizador léxico y sintáctico.

No está completo el código, no se puede subir porque excede el tamaño permitido, espero que esta parte te sirva para tomar algunas ideas.

Un saludo
Hector, he revisado tu ejemplo y me parese muy interesante, cabe la posibilidad de que me puedas compartir el programa completo?, por el tamaño no hay problema, puedo habilitar un ftp o algun otro medio para este fin.

yo he tratado de hacer algo similar, y de verdad aprecio tu ayuda.

Gracias de antemano.
Responder Con Cita
  #11  
Antiguo 07-12-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Hola makina!

No hay problema, te puedo enviar el código completo. Por favor, si tienes alguna duda o comentario puedes hacerlo en este mismo hilo para darle seguimiento.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:37:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi