projects
/
henge
/
apc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ir compiling!
[henge/apc.git]
/
src
/
lexer.rl
diff --git
a/src/lexer.rl
b/src/lexer.rl
index
3440e24
..
f6d25aa
100644
(file)
--- a/
src/lexer.rl
+++ b/
src/lexer.rl
@@
-38,10
+38,11
@@
yycstate* apc_cstate;
}
exit(1);
}
}
exit(1);
}
- yypush_parse(apc_pstate, REF, &ref, apc_cstate);
+ tok_val.ref = ref;
+ yypush_parse(apc_pstate, REF, &tok_val, apc_cstate);
ntok++;
}
ntok++;
}
- action push_link {
yypush_parse(apc_pstate, LINK, (YYSTYPE) 0
, apc_cstate);}
+ action push_link {
tok_val.val = 0; yypush_parse(apc_pstate, LINK, &tok_val
, apc_cstate);}
action push_val { int val;
te = NULL; errno = 0;
val = strtoll((char*)ts,(char**)&te,10);
action push_val { int val;
te = NULL; errno = 0;
val = strtoll((char*)ts,(char**)&te,10);
@@
-49,52
+50,65
@@
yycstate* apc_cstate;
{ fprintf(stderr, "strtoll could not parse %s\n", (char*)str);
exit(1);
}
{ fprintf(stderr, "strtoll could not parse %s\n", (char*)str);
exit(1);
}
- yypush_parse(apc_pstate, NUM, &val, apc_cstate);
+ tok_val.val = val;
+ yypush_parse(apc_pstate, NUM, &tok_val, apc_cstate);
ntok++;
}
action push_name { printf("Lexer_lexstring:: action:push_name: from %s to %s\n", ts, p);
ntok++;
}
action push_name { printf("Lexer_lexstring:: action:push_name: from %s to %s\n", ts, p);
- yypush_parse( apc_pstate, NAME, strdndup(ts, p-ts), apc_cstate);
+ *p = '\0';
+ tok_val.str = ts;
+ yypush_parse( apc_pstate, NAME, &tok_val, apc_cstate);
ntok++;
}
action push_map { printf("Lexer_lexstring:: action:push_map: pushing map token\n");
ntok++;
}
action push_map { printf("Lexer_lexstring:: action:push_map: pushing map token\n");
- yypush_parse(apc_pstate, MAP, (uint8_t*) '~', apc_cstate);
+ tok_val.str = (uint8_t*) '~';
+ yypush_parse(apc_pstate, MAP, &tok_val, apc_cstate);
ntok++;
}
action set_ts { printf("Lexer_lexstring:: action:set_ts. ts = %s\n", p); ts = p; }
action push_SS { printf("Lexer_lexstring:: action:push_SS. p = %s\n",p);
ntok++;
}
action set_ts { printf("Lexer_lexstring:: action:set_ts. ts = %s\n", p); ts = p; }
action push_SS { printf("Lexer_lexstring:: action:push_SS. p = %s\n",p);
- yypush_parse(apc_pstate, SS, (uint8_t*) "SS", apc_cstate);
+ tok_val.str = (uint8_t*) "SS";
+ yypush_parse(apc_pstate, SS, &tok_val, apc_cstate);
ntok++;
}
action push_S { printf("Lexer_lexstring:: action:push_S. p = %s\n", p);
ntok++;
}
action push_S { printf("Lexer_lexstring:: action:push_S. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 0, apc_cstate);
+ tok_val.val = 0;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_SW { printf("Lexer_lexstring:: action:push_SW. p = %s\n", p);
ntok++;
}
action push_SW { printf("Lexer_lexstring:: action:push_SW. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 1, apc_cstate);
+ tok_val.val = 1;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_W { printf("Lexer_lexstring:: action:push_W. p = %s\n", p);
ntok++;
}
action push_W { printf("Lexer_lexstring:: action:push_W. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 2, apc_cstate);
+ tok_val.val = 2;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_NW { printf("Lexer_lexstring:: action:push_NW. p = %s\n", p);
ntok++;
}
action push_NW { printf("Lexer_lexstring:: action:push_NW. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 3, apc_cstate);
+ tok_val.val = 3;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_N { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
ntok++;
}
action push_N { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 4, apc_cstate);
+ tok_val.val = 4;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_NE { printf("Lexer_lexstring:: action:push_NE. p = %s\n", p);
ntok++;
}
action push_NE { printf("Lexer_lexstring:: action:push_NE. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 5, apc_cstate);
+ tok_val.val = 5;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_E { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
ntok++;
}
action push_E { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
- yypush_parse(apc_pstate, FACING, (YYSTYPE) 6, apc_cstate);
+ tok_val.val = 6;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action push_SE { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
ntok++;
}
action push_SE { printf("Lexer_lexstring:: action:push_N. p = %s\n", p);
- ypush_parse(apc_pstate, FACING, (YYSTYPE) 7, apc_cstate);
+ tok_val.val = 7;
+ yypush_parse(apc_pstate, FACING, &tok_val, apc_cstate);
ntok++;
}
action ref_error { printf("ref from %s to %s has an inappropriate amount of hex digits, it must have eight.\n", ts, p);
ntok++;
}
action ref_error { printf("ref from %s to %s has an inappropriate amount of hex digits, it must have eight.\n", ts, p);
@@
-135,12
+149,14
@@
int lexer_lexstring
int size
)
{ uint8_t *p;
int size
)
{ uint8_t *p;
- uint8_t *ts, *pe, *te;
- int cs, ntok, eof;//, tok_t;
+ uint8_t *ts, *pe, *te, *eof;
+ int cs, ntok;
+ union YYSTYPE tok_val;
ntok = 0;
p = ts = str;
ntok = 0;
p = ts = str;
- pe = p + size + 1;
+ pe = eof = p + size + 1;
+
printf("|---Begin lexstring on p = %s, pe = %s.\n",p, pe);
printf("|---Begin lexstring on p = %s, pe = %s.\n",p, pe);