Lexer actually lexes filenames now, and odats are made out of mapvariants
[henge/webcc.git] / org / schedule.org
index 6beac70..a068949 100644 (file)
@@ -1,3 +1,4 @@
+#+STARTUP: indent
 * Project Deadlines
 
 ** October
@@ -51,7 +52,8 @@ env_deco
 /env/deco/ 
 name of archetype
 numbers signify variants
-alpha+ . '_m' . [digit]+ signifies mapping varriants
+alpha+ . '_m' . [digit]+ signifies mapping varriant
+***** TODO Add x,y to filenames
 **** TODO Scanner   :ATTACH:
      :PROPERTIES:
      :Attachments: scanner.c
@@ -67,6 +69,50 @@ alpha+ . '_m' . [digit]+ signifies mapping varriants
      :Attachments: parser.y irmem.c ir.c ir.h
      :ID:       fb24c302-4743-4a45-845a-4249d2b1a378
      :END:
+***** TODO Add mdats to IR to handle multiple mappings for archetypes
+     CLOCK: [2016-10-20 Thu 20:12]--[2016-10-20 Thu 23:12] =>  3:00
+       Recording: Lexer Lex(Mapfile)
+       Maps can have variants and animations. Adding a state machine
+       into the lexer that will parse png files and return its frame information. 
+     CLOCK: [2016-10-20 Thu 19:28]--[2016-10-20 Thu 19:46] =>  0:18
+       insert_mdat now  compiles
+     CLOCK: [2016-10-20 Thu 18:10]--[2016-10-20 Thu 18:53] =>  0:43
+     CLOCK: [2016-10-20 Thu 15:24]--[2016-10-20 Thu 16:24] =>  1:00
+     CLOCK: [2016-10-20 Thu 13:13]--[2016-10-20 Thu 14:10] =>  0:57
+     #+BEGIN: clocktable :maxlevel 2 :scope subtree
+     #+CAPTION: Clock summary at [2016-10-20 Thu 14:10]
+     | Headline     | Time   |
+     |--------------+--------|
+     | *Total time* | *0:57* |
+     |--------------+--------|
+     #+END:
+****** DONE Create variant_list in odat
+****** DONE Init num_variants 
+****** DONE Create mdat struct
+****** DONE Create new quad struct
+****** DONE Change insert_quad() to insert x,y,z, and ref_id
+****** DONE Change parser.y to include quad_list
+****** DONE In elements, populate parent_id with set. In sets, set parent_id to null.
+****** DONE Incorporate mdat into parser and ir
+****** TODO Implement Lexer_lexmapfile
+Where are we storing the map file animations? Mdats will have framesheets. 
+****** TODO Remove set name token in elements being passed back
+****** DONE Lexer_lex should pass control to lexer_lexmapfile
+When it recognizes a '_m\0', call lexer_lexmapfile
+The const str passed to lexer_lex is screwing up the state machine because
+the suffix isnt truly pruned (so pe  == . instead of \0)
+Mappings come before archetypes. 
+****** TODO 
+****** TODO 
+****** TODO 
+****** TODO 
+****** TODO 
+parent_id should be pointer or ref_id? pointer
+Root mandatory, hitbox optional? Only a variant list? 
+mopen/close in skeleton rule requires lexer to pass a operator
+for every new skeleton
+inesrt_mdat() needs more?
+
 **** TODO Output
    DEADLINE: <2016-10-20 Thu>
 *** TODO Test Suite for APC
@@ -141,3 +187,25 @@ alpha+ . '_m' . [digit]+ signifies mapping varriants
 
 
 
+* Notes
+11/2 Changes to grammar
+ Mapfiles and vdats are now going to be extracted at binary output time. This means
+ that we dont have to handle text strings in the grammar, just filename and directory structure.
+ E.g. mdats (which were mapfile data structs and are now called variants), no longer consist of quad
+ lists but of the height/width of the frames inside the variant and the name of the filename so that
+ it can be processed later at binary out. This is also true for vdats, which used to consist of spritesheets
+ and are now just a height/width of the frames and the name of the file. 
+
+Filepath is stored in vdat/variant. When should this get passed back? After height/width has
+been lexed.
+
+Theres a filename for every element. Not true for a set. 
+
+Need to finish insert_vdat, insert_variant, lexfilename, ?
+* Current TODO list
+** TODO Make Null vdat
+** DONE Fix all shift/reduce errors in new grammar
+** DONE Add map variant changes (create new odat, share vdat) 
+** DONE Add map operator changes to lexer.c
+** DONE Rename mapping files
+** TODO Review parser.y, irmem.c, ir.c, ir.h, lexer.c