Editing User:Andrei.ilinca24/logs

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 124: Line 124:
 
== Midterm Evaluation Period ==
 
== Midterm Evaluation Period ==
  
At the beginning of the coding period I haven't had anything related to lemon and re2c integrated into BRL-CAD. I decided to take some time to study how to use this parsing tools before getting to the actual writing of the code. Because of my summer exam session, my progress was little in the first few weeks and, after working out some simple calculators using lemon, I finally started working on the .csg grammar. Initially, I though I could gradually parse and interpret functions and methods but I soon realised that having a fully functional grammar first is a better idea. With lots of help from Cliff and Andrei Constantin Popescu, I managed to finish the grammar just 2 days after the Midterm Evaluation Period opening and have it merged.
 
 
To run my code, just go in build/src/conv/csg , write an input file with some .csg text in it (or save a .csg there) and then just run ./csg input.txt output.txt . It should print on the screen various messages containing the tokens matched in the parsing process.
 
  
 
26 June: sent a [https://sourceforge.net/p/brlcad/patches/386/ patch] regarding the .csg grammar which is almost complete , needs some work in the priorities section to be just right
 
26 June: sent a [https://sourceforge.net/p/brlcad/patches/386/ patch] regarding the .csg grammar which is almost complete , needs some work in the priorities section to be just right
Line 133: Line 130:
  
 
28 June: sorted out the priorities section, changed some of the internal structure of the grammar to parse imbricated functions better, added a new rule for assignation, made a [https://sourceforge.net/p/brlcad/patches/388/ new patch] with the complete grammar and sent a mail to the list with the latest updates
 
28 June: sorted out the priorities section, changed some of the internal structure of the grammar to parse imbricated functions better, added a new rule for assignation, made a [https://sourceforge.net/p/brlcad/patches/388/ new patch] with the complete grammar and sent a mail to the list with the latest updates
 
29 June: talked with teepee from OpenSCAD about the conversion from .scad to .csg, found out how to properly test the proposed grammar (running the OpenSCAD test suite) and also got some insight about the functions that generate the .csg from the .scad ( toString for [https://github.com/openscad/openscad/blob/master/src/primitives.cc#L610 primitives] and [https://github.com/openscad/openscad/blob/master/src/transform.cc#L190 special functions] )
 
  
30 June: did nothing for GSoC
+
''' Week 6 '''
  
1 July: tested my grammar using some .csg files provided by OpenSCAD, modified it to also parse "group();" , not only "group() {...}", added DEBUG macro and tried to print some matched functions using bu_vls_addr(&A->value) but with no luck
+
29 June: talked with teepee from OpenSCAD about the conversion from .scad to .csg, found out how to properly test the proposed grammar (running the OpenSCAD test suite) and also got some insight about the functions that generate the .csg from the .scad ( toString for [https://github.com/openscad/openscad/blob/master/src/primitives.cc#L610 primitives] and [https://github.com/openscad/openscad/blob/master/src/transform.cc#L190 special functions] )
 
 
2 July: further work on printing matched functions, renamed some tokens in the grammar for a clearer code
 
 
 
== Coding Period (2nd half) ==
 
 
 
3-6 July : had a mental breakdown because of the lack of progress and sleep in the last few days, took some time to organise my days and get back on track with everything
 
 
 
'''Week 6'''
 
 
 
7 July : restarted reading dom2dox code to learn about interpreting lemon grammar, understood some basic principles
 
 
 
8 July : cleared some confusions about the "END_TEXT;" macro after a discussion with Sean on IRC, decided not to use macros to prevent complexity issues
 
 
 
9 July : found the /doc/parsers/writing_perplex_lemon_parsers.doc and also the templates in there and read through them , they seem well explained and detailed
 
 
 
10-11-12 July : not much progress, tried a different approach by modifying the grammar to match functions as 1 token to reduce the number of terminals, ended up not parsing the function parameters
 
 
 
'''Week 7'''
 
 
 
did nothing for GSoC
 
 
 
'''Week 8'''
 
 
 
20 July : got Sean's mail about communicating more and staying more on IRC, tried to install tmux to be 24/7 on IRC but failed due to some incompatibility issues, decided to stick to XChat
 
 
 
21-23 July : documented about perplex, re2c and lemon in order to understand better what is not working and why and asking the right questions
 
 
 
24 July : sent an email to Sean and Isaac with questions about why fprintf(appData->outfile, "%s", bu_vls_addr(&A->value)) does not print anything but the token is matched, about the generated tree and also discussed updating deliverables
 
 
 
25 July : more work on sending matched strings to main, restrained the problem to a memory allocation issue
 

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)