User:Andrei.ilinca24/logs
Contents
Webpage for development logs for GSoC 2015
Community Bonding Period
TODO list
- figure out if there is any major difference between .csg and .scad, except of expressions and modules
- figure out what parser to use (if it’s yacc/bison or re2c or any other, I’ll get involved and research what benefits does each offer)
- figure out how to use it, have a very simple demo set up within BRL-CAD build hooks
15 May Update
- made wiki pages for account, proposal, logs
- reread participation expectations and HACKING
- came up with the following grammar for parsing group() functions:
expr -> group_begin token group_end
token -> group_content token | expr
where group_begin is "group() {"
token is [a-z]+ "("*")";
and group_end is "}"
- looked over other BRL-CAD importer re2c lemon parsers ( wfobj and dom2dox) in order to understand how to integrate mine into BRL-CAD but with no luck so far
- currently investigating perplex tool and how is it used and integrated over the re2c layer
17 May
- dom2dox is not compiling with the rest of BRL-CAD's code so its CMakeFiles can not be used as an example of an integration of a re2c lemon parser
18 May
- cleared some empty holes in my understanding of the .csg OpenSCAD files format due to a thread on their mailing list regarding just that; it seems that there will be a new function added to the language soon, called trace() and also OpenSCAD2 will implement some changes in the existing methods
- got some help compiling dom2dox from Kalpit
24 May
- today was my birthday and I celebrated by erasing BRL-CAD and rebuilt it from svn sources to have a fresh start of Coding Period
Coding Period
Week 1
25 May : read about the lemon parser, tried to develop some simple numerical calculations in order to attain some skill using it
26 May : applied Cliff's csg makefile integration patch to my machine, built BRL-CAD successfully
27 May : small progress on the lemon tutorial , been occupied with school exam
28 May : finished the lemon tutorial, got some understanding of how lemon parsing is done, I have now a fully working calculator parser
29 May : not much work done today, posted an email on the mailing list with conclusions regarding the last few days work on lemon parser calculator
30 May : prepared for Monday school exam, no work done for GsoC today
31 May : got response from Cliff on mailinglist and cleared what I have to do next which is adding some simple parsing grammar for 1-2 csg functions (group() ,multimatrix() ) to the newly integrated parser in src/conv; started working on it
Week 2
1 June : worked on grammar, got some compiling errors, fixed a few, hope to have some valid parsing by tomorrow
2 June : more work on grammar, restrained the errors to just 1:
home/andrei/buildbrlcad/src/conv/csg/csg_scanner.c:1:0: error: ISO C forbids an empty translation unit [-Wpedantic]
I posted on mailinglist the error and the patch with the code that I wrote today.
3 June : prepared for next exam, did nothing for GSoC
4 June : further investigations on the empty translation unit error, not much progress , stayed on IRC
5 June : did not feel very well (headache and flu), did nothing for GSoC
6 June : got Cliff's mail response on my small grammar compiling error, applied the changes and it compiled well; segmentation fault at execution and gdb says the error is in PERPLEX_LEXER_private;
7 June : worked out the error and finally had group() parsed well
Week 3
8 June: just some code cleanup, prepared for tomorrow's exam
9 June: been at school for exam all day, did nothing for GSoC
10 June: tested and sent a valid csg parser patch for "group() {" ; started working on parsing "group(){ "some content" }"
11 June: worked on bonding group_content and group_end tokens with the existing grammar, almost done
12 June: the grammar that I proposed for group_content and group_end parsing is good but there seems to be a problem with the perplex scanner code; further investigations
13 June: prepared for Monday's exam, no work for GSoC
14 June: prepared for tomorrow's exam, no work for GSoC
Week 4
15 June: been at school for exam almost all day, did some small research on lemon grammar
16 June: started reworking on group() parsing, it seems that the latest patch didn't applied cleanly
17 June: sent the new patch which applies very well on my clean checkout; did some more work with the group_content parsing
18 June: further work on group_content parsing
19 June: finished the last exam, more work on group_content parsing, resolved some of the errors, hope to come up with a valid patch soon
20 June: finalised group_content and group_end parsing, made a patch, tested it on a clean checkout, posted it on sourceforge and sent a mail to the list with project updates
21 June: last patch got committed by Cliff, added tokens for all the functions/methods that can appear in a .csg file, started working on grammar for union() and difference()
Week 5 (pre-Midterm)
22 June: further work on the functions token, trying to expand the regex for group_content to cover all the functions formats in a .csg file and also trying to expand the grammar
23 June: made token for parsing dimension parameters for cube(), sphere(), cylinder() and polyhendron(), linked it with the existing grammar
24 June: designed non-terminals for assignation of parameters ( for example for parsing things like "convexity = 1" or "size = [3,4,5]")
25 June: heavy work on the csg grammar, lots of tests, working on edge cases, almost done & ready for a patch submission
Midterm Evaluation Period
26 June: sent a patch regarding the .csg grammar which is almost complete , needs some work in the priorities section to be just right