Está en la página 1de 3

Yacc

Yacc es un analizador de estructura, tambin llamado Parse, que se encarga de


analizar y verificar la estructura de los datos de entrada de forma sintctica.
Caractersticas:
Yacc provee una herramienta general para analizar estructuralmente una entrada.
El usuario de Yacc prepara una especificacin que incluye:

un conjunto de reglas que describen los elementos de la entrada

un cdigo a ser invocado cuando una regla es reconocida

una o ms rutinas para examinar la entrada

La sintaxis de un programa puede ser definida por una gramtica libre de contexto. sta es
esencialmente una estructura jerrquica que indica las relaciones de las construcciones del lenguaje.
La notacin ms comn usada para describir una gramtica libre de contexto es BNF. La
especificacin de YACC se hace en BNF.
La descripcin se hace en la forma de reglas de produccin, que consisten de un nombre de no
terminal, el lado izquierdo, seguido por su definicin. La definicin, o lado derecho, consiste de
cero a ms smbolos que son no terminales que apuntan a otras reglas o terminales que
corresponden a tokens. Por ejemplo, una gramtica simple:
lista objeto | lista objeto
objeto cadena | numero
cadena texto | comentario | comando
numero numero | + numero | - numero | numero . numero

Partes:

Declaraciones
Reglas de traduccin
Soporte
de
las
rutinas en C

nombre_archivo.l Especific.
Lex

lexyy.c

Especific. nombre_archivo.y
Yacc

lex

yacc

yylex()

yyparse()

Compilador C
COMPILADOR

y_tab.c

Rutinas C

Libreras

GoldParser
GOLD Parser es una herramienta desarrollada por Devin Cook, implementando un
LALR (Look Ahead Left to Right- Rightmost derivation), se pueden construir
proyectos con base de analizadores, o construir versiones propias de un lenguaje
de programacin. GOLD Parser es la herramienta con ms capacidad de ser
implementada en varios lenguajes de programacin, ya que guarda un archivo
aparte conteniendo informacin de tablas de parseo y en cada lenguaje se
implementa el autmata simple para el anlisis de dichas tablas. Otra ventaja es el
soporte que todava se le brinda a la herramienta y es GRATIS. Algunos lenguajes
soportados y con implementacin disponibles son los siguientes:

C
Java
.NEt
C#
visual basic .net
assembler
phyton
Delphi

Gramatica:
"Name" = 'Simple'
"Author" = 'Devin Cook'
"Version" = '2.1'
"About" = 'This is a very simple grammar designed for use in examples'
"Case Sensitive" = False
"Start Symbol" = <Statements>
{String Ch 1} = {Printable} - ['']
{String Ch 2} = {Printable} - ["]
Identifier

= {Letter}{AlphaNumeric}*

! String allows either single or double quotes


StringLiteral = '' {String Ch 1}* ''
| '"' {String Ch 2}* '"'
NumberLiteral = {Number}+('.'{Number}+)?

Comment Start = '/*'


Comment End = '*/'
Comment Line = '//'

Caractersticas: Su funcionamiento es realizar el anlisis lxico emplea autmatas


finitos determinsticos y anticipado analizador, estos algoritmos son mquinas de
estado que emplean tablas para determinar acciones. Esta herramienta est
compuesta de tres componentes lgicos:

Constructor: Componente primario y el principal de la aplicacin, se emplea


para analizar la sintaxis de un lenguaje y la construccin de tablas.

Motor: Esta escrito para un lenguaje de programacin especifico.

Cuadro compilado gramtica: Almacena datos de la tabla creada en el


constructor.

También podría gustarte