lexer_lex statemachine lexes correctly
authorJordan <jordanlavatai@gmail.com>
Wed, 19 Oct 2016 19:38:16 +0000 (12:38 -0700)
committerJordan <jordanlavatai@gmail.com>
Wed, 19 Oct 2016 19:38:16 +0000 (12:38 -0700)
org/schedule.org
src/apc/lexer_lex.rl

index b398d1a..6beac70 100644 (file)
@@ -5,6 +5,53 @@
     :PROPERTIES:
     :ATTACH_DIR: ~/proj/the_march/src/apc
     :END:
+**** TODO Directory Structure for assets 
+     CLOCK: [2016-10-16 Sun 11:43]--[2016-10-16 Sun 11:45] =>  0:02
+#+BEGIN: clocktable :maxlevel 2 :scope subtree
+#+CAPTION: Clock summary at [2016-10-16 Sun 11:45]
+| Headline     | Time   |
+|--------------+--------|
+| *Total time* | *0:02* |
+|--------------+--------|
+#+END:
+
+**** TODO File syntax for directories
+     CLOCK: [2016-10-18 Tue 9:30]--[2016-10-18 Tue 10:21] =>  0:51
+
+#+BEGIN: clocktable :maxlevel 2 :scope subtree
+#+CAPTION: Clock summary at [2016-10-16 Sun 11:46]
+| Headline     | Time   |
+|--------------+--------|
+| *Total time* | *0:01* |
+|--------------+--------|
+#+END:
+
+env_assets
+env/cityblock/
+large/small/center (sets)
+signifigance of numbers in filenames vs letters
+  letters - variations
+  numbers - 1 horizontal, 2 vertical 
+signifigance of numbering after _m
+
+env/cityblock
+             /large
+             /small 
+             /center  
+                    /vertical
+                    /horizontal
+                               set_name set_id element_name element_id 
+
+Directions in filenames for statics are ?
+  Dont have framesheets so they dont need a direction. 
+
+
+
+env_deco
+/env/deco/ 
+name of archetype
+numbers signify variants
+alpha+ . '_m' . [digit]+ signifies mapping varriants
 **** TODO Scanner   :ATTACH:
      :PROPERTIES:
      :Attachments: scanner.c
 
 
 
+
index f7eb429..edb9a6a 100755 (executable)
@@ -20,7 +20,7 @@ char* ttos(const char* str, int);
   do {                                                 \\r
     printf("PUSHTOK(" $(TOK) $(LFUNC) $(UTYPE) ")\n"); \\r
     tok_t = TOK;                                       \\r
-    yylval.UTYPE = LFUNC(ts, ts-p-1);                  \\r
+    yylval.UTYPE = LFUNC(ts, p-ts+1);                  \\r
     lexer_pushtok(tok_t, yylval);                      \\r
     ++ntok;                                            \\r
   } while (0)\r
@@ -36,12 +36,14 @@ char* ttos(const char* str, int);
   action lex_error {printf("input error: character %c in filename %s is invalid\n", fc, str);}\r
 \r
   # instantiate machines for each possible token\r
-  ref = '0x'. xdigit+ . '_'  %set_ref;\r
-  val = digit+ . '_' %set_val;\r
-  name = alpha+ . '_' %set_name;\r
-  tok = (ref | val | name) %set_ts;\r
+  ref = '0x'. xdigit+  %set_ref;\r
+  val = digit+  %set_val;\r
+  name = alpha+  %set_name;\r
+  tok = (ref | val | name);\r
+  segment = tok . [_\0] %set_ts;\r
+\r
+  main := segment+ ;\r
 \r
- main := alpha+ @set_name;\r
 }%%\r
 \r
 \r
@@ -54,8 +56,7 @@ int lexer_lex (const char* str)
   int  cs, tok_t, ntok = 0;\r
   printf ("Lexing: %s\n",str);\r
   p = ts = str;\r
-  pe = p + strlen(str);\r
-  printf("p = %s \n", p);\r
+  pe = p + strlen(str) + 1;\r
   %%write init;\r
   %%write exec;\r
   printf ("Lexed %i tokens\n",ntok);\r