gut / mc910-proj Goto Github PK
View Code? Open in Web Editor NEWThis project forked from otaviobp/mc910-proj
Projeto da disciplina de compiladores mc910 - 2009
This project forked from otaviobp/mc910-proj
Projeto da disciplina de compiladores mc910 - 2009
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.