Giter Site home page Giter Site logo

fit-ifj-teamproject's People

Contributors

crackonosh avatar horsecz avatar theleteron avatar zelick0 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

fit-ifj-teamproject's Issues

Tests

We should prepare some test for every part of our project

  • Scanner
  • Parser
  • Semantic Analysis
  • Code generator
  • Symtable
  • ...

Also, it may be good to figure out how to use https://gitlab.com/kam29/ifj-testsuite and apply it to our project.

Wrong flags in makefile

In makefile some parts (ex.: scanner.o) have $(CFLAGSS) even when they should be $(CCFLAGS). Is this expected behavior you have reason for? In other case could you / or should I repair it?

Also I'd like to add some kind of DEBUG make to makefile with -D DEBUG option.

Missing project files

I know this is not needed now, but it'll be good, if the issue would be here later.

We need create these files:

  • rozdeleni -> file reflecting how many % of points each team member gets from this project (in format: xloginXX:NN\n where NN is % amount of points)
  • rozsireni -> reflecting which extensions we have implemented (in format EXTENSION_NAME\n)

Create file structure

We should consider creating a file structure for this project along with some deployment scripts that will take files from our file structure and prepare them for submission.
Something like this maybe.

/
|- README.md
|- Makefile
|- ifj2020.c
|- ifj2020.h
|- doc/
|  |- scannerAutomaton.graphml
|  |- LLTC_LL_grammar.xml
|  |- LL_grammar.odt
|- src/
|  |- (all src files here - scanner.c, scanner.h, etc..)
|- tests/
|  |- (all tests that we created)

Documentation

We will need to create documentation for our project.

My recommendation would be probably using MD on GitHub Wiki and then download this as a PDF but I'm not sure if this is doable or if this is even the best course of action for creating documentation.

Also please do follow Doxygen standards for creating comments in your header files and other source files.
I'll push Doxyfile shortly - use doxygen doc/doxyfile to generate documentation based on Doxygen (use in . directory)

This issues is a lower priority compared to others as it'll be needed for project defense mainly but probably should also be included in the final submission (to check this please refer to project assignment)
TODO: This issue is WIP and will be modified.

Unused function statementMul()

In parser.c there is unused function statementMul. It probably has to be used but I forgot to place it somewhere. This may result in broken grammar and not correct syntax analysis.

Symbol table

According to yesterday's IFJ lecture, we need to modify our symtable (a lot .. or not?):

  1. We need to use more symtables, not just one. Also we need two types of symtables:
  • Global symtable: symtable for functions, which contains keys-func names and data as return types, argument types, insider func identificator (for code generator purposes), maybe more (info: last IFJ lecture)
  • Symtables for identificators, which contains keys-identificator names (as we have now) and data as datatype (as we have) and maybe more (again: last IFJ lecture, I dont remember everything)
  1. Global symtable (for functions) will be just one. Each scope has its own symtable for identificators. (func, if, for, ..)
  2. Because of 2), we need other structure, which allows us do some operations (create, destroy, point to symtable, etc.) on symtables. Recommended structure from lecture is stack (of symtables). Also we use stack for pointers in our current symtable, so making it for symtables should't be at least that difficult.

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.