diff options
-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; +} |