felipe's blog

Comandos e declarações em expressões

O GCC oferece várias extensões à linguagem, inclusive recursos que estão no ISO C99, mas não no C89 ou C++, sendo aceitos pelo GCC no modo C89 e em C++.

Vou dar uma olhada nessas extensões e ir postando para compartilhar com quem lê essa coisa. :)

Enfim, como está no título, a primeira extensão que veremos é essa.
Ela simplesmente permite criar um bloco com loops, switch, variáveis locais no lugar de uma expressão. Um uso interessante, seria em uma macro onde você não quer avaliar uma expressão mais de uma vez, como visto abaixo.

Conflitos de Shift/Reduce

O material a seguir é uma tradução da documentação do Bison 2.3.
Desta vez, vamos começar com uma parte do glossário, necessário para entender o resto do texto, eu acho. :D

Criando um simples parser usando Bison e Flex

Finalmente andei testando e integrando o Bison e o Flex. Apesar de já ter uma experiência no uso do Bison, não sabia os primeiros passos, nem mesmo como integrá-lo com o Flex. A princípio venho testando com o Flex, mas pretendo pular para o re2c.

Senha pra quê?

Hoje pela manhã recebi um link do amigo Enygmata para um gif que demonstra uma falta de segurança no Windows (não sei qual versão), embora isso possa ter sido reparado há muito tempo, não deixa de ser um belo bug! :D

LPeg - Criando gramáticas facilmente

Olá!
Ultimamente tenho voltado a dar uma lida na documentação da linguagem Lua, a versão 5.1. Tempos atrás (no começo de 2007) eu tinha iniciado com esta linguagem.

Tenho visto especialmente o suporte a Parsing Expression Grammars (PEGs), o que não é encontrado em outras linguagens, e que fornece um poderoso recurso para criação de gramáticas na linguagem. Irei demonstrar um simples uso, com uma gramática bem básica, apenas para ilustrar o que podemos fazer com ela.