commit 9bab1cf982e1112a7d12ba6e272ca17a7319923e
parent deeffcab331bb7e1e2fd0d18c92fe3662fc39e69
Author: erai <erai@omiltem.net>
Date: Wed, 9 Apr 2025 21:01:06 -0400
faster lexer benchmark
Diffstat:
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/cc1.om b/cc1.om
@@ -2216,7 +2216,7 @@ func main(argc: int, argv: **byte, envp: **byte) {
if (i >= argc) {
die("invalid -l at end of argument list");
}
- dolex(c.a, argv[i]);
+ dolex(c.a, argv[i], nil);
i = i + 1;
continue;
}
diff --git a/lexer.om b/lexer.om
@@ -1363,7 +1363,7 @@ func gettok(l: *lex): int {
}
if l.fill - l.start >= (l.cap >> 1) {
- l.cap = l.cap * 2 + 256;
+ l.cap = l.cap * 2 + 16 * 1024;
tmp = alloc(l.a, l.cap);
memcpy(tmp, &l.buf[l.start], l.fill - l.start);
free(l.a, l.buf);
@@ -1425,7 +1425,7 @@ func gettok(l: *lex): int {
}
}
-func dolex(a: *alloc, name: *byte) {
+func dolex(a: *alloc, name: *byte, out: *file) {
var l: *lex;
var fd: int;
var tok: int;
@@ -1440,10 +1440,10 @@ func dolex(a: *alloc, name: *byte) {
if tok == -1 {
break;
}
- fputs(nil, l.tag_to_str(tok));
- fputs(nil, "\t'");
- fputb(nil, &l.buf[l.start], l.end - l.start);
- fputs(nil, "'\n");
+ fputs(out, l.tag_to_str(tok));
+ fputs(out, "\t'");
+ fputb(out, &l.buf[l.start], l.end - l.start);
+ fputs(out, "'\n");
}
if !l.eof {
die("problem");