Giter Site home page Giter Site logo

mc910-proj's Introduction

Grupo 18
061358 - Gustavo Serra Scalet
063462 - Otávio Busatto Pontes

Usamos para gerar o lexer e parser a ferramenta PLY, que usa a linguagem de programação Python. Implementamos um parser que trata todas as situações ilustradas no exemplo.cpl colocado no site da disciplina, exibindo uma página de notícias semelhante a página colocada no site da disciplina. Parseamos um pouco do formato do WIKI, sendo as tags de título, recuo, link visualizáveis.
Para isso criamos 2 parsers. Um que trata o arquivo cpl, independente da formatação WIKI. E outro que trata a formatação WIKI em uma string. A vantagem dessa abordagem é que caso se deseje usar o cpl com outro tipo de formatação de textos isso é possível. E o mesmo ocorre se quisermos usar o parser de WIKI para alguma outra aplicação. 
Para exibir a notícia tomamos o seguinte padrão: as notícias são exibidas na ordem que aparecem em structure e são exibidas nas colunas indicadas no colchete do item. Caso a coluna esteja ocupada ou então seja menor que a coluna da notícia anterior, uma nova linha é criada. Quando existe um campo text no content da notícia, criamos um link no título, que abre uma janela, que contém seu o título e text. Criamos uma extensão ao cpl, permitindo que se manipule o conteúdo exibido na janela exibida ao clicar no título. basta iniciar uma declaração com window.noticia.campo. Com isso o campo indicado da noticia é exibido na janela. O arquivo exemplo_completo2.cpl usa esse recurso. Outra extensão é que nosso arquivo cpl não está limitado aos campos indicados no arquivo de exemplo. Qualquer campo pode ser criado e adicionado ao cpl e exbido normalmente no espaço da notícia. Isso pode ser notado também no exemplo_completo2.cpl.
Outra extensão é a criação do campo full_image. Nesse campo a imagem é exibida em seu tamanho natural e não reduzida ao lado do texto. 
	
Executando o Parser:
Entre na pasta src e rode:
./cplhtml.py path/nome_arquivo.cpl
O programa cria um arquivo html chamado path/nome_arquivo.html com o conteúdo gerado. As imagens e estilos css devem estar na mesma pasta que o nome_arquivo.cpl para funcionar.
Para rodar nosso exemplo rode:
./cplhtml.py ../files/exemplo_completo2.cpl

Arquivos do projeto

|-- README           # Esse informativo
|-- files            # arquivos gerais
|   |-- exemplo.cpl  # Arquivo de entrada dado pelo professor
|   |-- exemplo_completo.cpl #outros exemplos
|   |-- exemplo_completo2.cpl
|   |-- helio.jpg #Arquivos uteis
|   |-- sergio.jpg
|   |-- style.css
|   |-- styleJanelas.css
|   |-- virada.jpg
|   `-- xuxa.jpg
`-- src
    |-- color.py        # Auxliar para colorir saida no terminal
    |-- cplhtml.py      # Converte o dicionario gerado pelo parser em codigo html
    |-- cpllexer.py     # Lexer
    |-- cplparser.py    # parser
    |-- stringhtml.py   # Converte o dicionario gerado pelo stringparser em html
    |-- stringlexer.py  # Lexer de string. Segue os padroes de WIKI para formatação de texto
    |-- stringparser.py # Parser de string. 

mc910-proj's People

Contributors

gut avatar otaviobp avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.