Git Product home page Git Product logo

tlatpe2's Introduction

TLA TPE 2 


--------------------------------------------------------------------------------------------------------------------------

La generación del Analizador Sintáctico Descendente por Retroceso se hace desde una función de Grammar.c:
void generateASDR(GrammarADT grammar)

Cuando se le pasa una gramática a esta función, primero crea un archivo en "." llamado ASDR.c (si no estaba creado lo crea y si estaba lo reemplaza). Luego va a generar el código fuente del analizador de la forma que está explicado en las teóricas de la cátedra. El código fuente generado cuenta con un main, una función init, una función procesar y procedimientos para cada uno de los símbolos no terminales. Además, este archivo debe ser compilado contra Production.c y Utils.c ya que se vale de estructuras y funciones implementados en estos archivos.

Ahora para se está probando el funcionamiento del generador desde el archivo GrammarTest.c, que generara una gramática y se la pasa a generateASDR. Para compilarlo:
sudo gcc -g -Wall -fno-stack-protector  GrammarTest.c ../classes/Production.c ../classes/Productions.c ../classes/Grammar.c ../classes/Utils.c -o test

Luego de compilar hay que ejecutar ./test para obtner el código fuente del analizador.

Una vez compilado el ejemplo y generado su analizador, se deberá compilar ASDR.c para obtener el ejecutable del analizador, de la siguente manera:
sudo gcc -g -Wall ASDR.c ../classes/Production.c  ../classes/Utils.c -o ana

Finalmente para probar si una cadena pertenece o no basta con ejecutar el archivo seguido por la cadena:
ej:
./ana aaaahdsd

--------------------------------------------------------------------------------------------------------------------------




to compile ProductionTest (inside Test)
sudo gcc -g -o test -Wall ProductionTest.c ../classes/Utils.c ../classes/Production.c

tlatpe2's People

Contributors

fnmartinez avatar joseignaciosg avatar maximovs avatar

Stargazers

 avatar

Watchers

 avatar  avatar

tlatpe2's Issues

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.