Giter Club home page Giter Club logo

tema-1-lfa's Introduction

Calciu Alexandru 331CC

Timp de efectuare: ~6 ore

Dificultati intalnite:

- intelegerea particularitatilor cerintei din moment ce nu sunt
exprimate in clar, ci trebuie deduse comparand inputul cu
outputul.

- faptul ca pe windows newline se traduce in CRLF si nu doar LF
a dus la un bug destul de enervant de descoperit si rezolvat.

- documentatia destul de slaba a FLEX si faptul ca google search
ma ducea spre orice alt 'flex' decat analizorul lexical.

Implementare:

- din starea initiala atunci cand intalnesc un "@" inseamna ca am
descoperit un tag.
- urmeaza apoi sa ii determin tipul. pentru a lua in calcul toate
combinatiile de litere lowercase si uppercase pentru aceste reguli
am folosit structuri precum [Bb] concatenate.
- daca tipul este unul cunoscut, adaug in buffer textul corespunzator
si caut prima acolada
- dupa ce o gasesc intru in starea in care caut campuri.
- dupa ce gasesc un camp, adaug in buffer text corespunzand tipului
campului si apoi parsez valoarea
- am facut o stare generala pentru parsat valoarea numita GET_VALUE
si stari speciale pentru campurile author, year, title si pages.
- in GET_VALUE iau toate caracterele pana la "}" si excluzand comentariile
- in GET_PAGES iau tot continutul dar schimb "--" in "-"
- in GET_YEAR nu permit sa se regaseasca \n si de asemenea permit sa nu fie
prezente {} in jurul valorii pentru logica de la year
- in GET_TITLE iau tot continutul dar pun ghilimele inainte si dupa
- in GET_AUTHORS mai intai retin numele de familie intr-un buffer separat,
apoi adaug in buffer-ul principal toate prenumele, apoi adaug ce salvasem
in buffer anterior
- dupa ce ies din starea pentru extras continutul reintru in starea in care
caut urmatorul camp.
- in tot acest timp am un contor pentru acolade pentru a verifica nivelul de
imbricare care imi indica daca sunt sau nu intr-un tag
- in starea INVALID_TAG nu se intampla nimic, este o stare de eroare
cand nu este intalnit un tag dintre cele cunoscute.

tema-1-lfa's People

Contributors

calex257 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.