Giter Club home page Giter Club logo

vut_fit_2bit_ipp_ippcode20-parser's Introduction

VUT_FIT_2BIT_IPP_IPPcode20-parser

Dokumentace projektu IPP (Principy programovacích jazyků a OOP) 2019/2020

první čáast (parser.php)

autor: David Rubý

Tato část projektu se soustředí na parsování jazyka IPPcode20 a generování XML stromu v jazyce PHP. Moje implementace vypadá následovně:

  • První část zdrojového kódu je dictionary, kde klíč je jméno instrukce a hodnota je pole, které obsahuje tolik polí, kolik instrukce potřebuje argumentů. Tato pole obsahují řetězce, které určují, co se má v daném argumentu kontrolovat a generovat.
  • Postupně se načítají řádky ze standartního vstupu, ze kterých se pomocí regulárních výrazů odstraňují komentáře a prázdné řádky.
  • Zkontroluje se přítomnost hlavičky.
  • Řádky se rozdělí podle mezer do pole (první položka pole je jméno instrukce a každá další položka reprezetuje 1 argument).
  • Pro každý argument se zkontroluje, jaké možnosti můžou nastat a všechny se zkontrolují ve specializovaných funkcích... Pokud jedna z nich prošla přes regulární výraz a byl vygenerován XML záznam, vrací se true...
  • Zkontroluje se, jestli aspoň některá z nich prošla...Každá funkce vrací true, nebo false, které se ukládají do proměnných... kontroluje se pomocí operátoru \\ na všech proměnných, které nesou navrátovou hodnotu.
  • Následně se načte další řádek a průběh se opakuje až do konce dokumentu.
  • Po dosažení konce souboru se XML záznam vypíše na standartní výstup.

vut_fit_2bit_ipp_ippcode20-parser's People

Contributors

dejficek avatar

Watchers

 avatar

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.