On this page
aula 9 bison asdrc
Bison (parser generator)
- Preambulo: declaração dos tokens, artefatos, ordem de precedência e etc.
%{
#include <stdio.h>
%}- Gramática (LLR):
- funções: seção de funções auxiliares
Compilação
O código Bison deve ser transformado em código C, via comando:
bison -d -v parser.yLogo em seguida deve ser compilado via g++
gcc parser.tab.c -lfl Integração com flex
- parser.tab.c:
- parser.tab.h: podemos incluir no flex
- parser.output: descrição da gramática gerada
%{
#include "parser.tab.h"
%}o arquivo flex não terá mais uma função auxiliar main, ou seja, o bison terá que tê-la.
A maneira mais direta de trasnferir dados entre as 2 ferramentas é utilizando yylval que funciona como uma variável global. Os valores devem ser escritos no flex e apenas lidos no Bison para armazenar o estado do parser é necessário programar as próprias estruturas.

