< User:Andrei.ilinca24
Revision as of 19:02, 12 June 2015 by Andrei.ilinca24 (talk | contribs) (Coding Period)

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