diff options
author | kdx <kdx@42l.fr> | 2023-01-20 04:39:13 +0100 |
---|---|---|
committer | kdx <kdx@42l.fr> | 2023-01-20 04:39:13 +0100 |
commit | 072f0d4ea7d1da479baea85fadead5f4d640eff2 (patch) | |
tree | 03a37e292f0f2088701218cbec91cc0a9e80c05e | |
parent | 21f1abef1b8f144fb684d48bbb2078011b4141d7 (diff) | |
download | golem-072f0d4ea7d1da479baea85fadead5f4d640eff2.tar.gz |
test: simpler
-rw-r--r-- | test | 35 |
1 files changed, 28 insertions, 7 deletions
@@ -1,26 +1,35 @@ -fn main(argc, argv) +fn strlen(s); // typeless language // (i know, this stupid but me bad) -fn main(argc, argv) -{ - const usage_str = "usage: %s <file>\n"; + +const usage_str = "usage: %s <file>\n"; + +fn main(argc, argv) { + var i; + var fp, data; + var toks; + if argc != 2 { fprintf(stderr, usage_str, argv[0]); return 1; } - const fp = fopen(argv[1], "rb"); + i = 0; + while i < argc { + puts(argv[i]); + } + fp = fopen(argv[1], "rb"); if fp == null { perror("main"); return 1; } - const data = drain(fp); + data = drain(fp); fclose(fp); if data == 0 { fprintf(stderr, "failed to drain '%s'\n", argv[1]); return 1; } - const toks = lexer(data); + toks = lexer(data); free(data); if toks == 0 { fprintf(stderr, "lexer failed\n"); @@ -30,3 +39,15 @@ fn main(argc, argv) lexer_free(toks); return 0; } + +fn strlen(s) { + var i, len; + + i = 0; + while s[i] { + len = len + ((s[i] & 0xFF) != 0); + len = len + ((s[i] & 0xFF00) != 0); + i = i + 1; + } + return len; +} |