From c7d0deda9effcc38294caba28640b86c835c8976 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 5 May 2025 16:30:53 +0900 Subject: support identifiers that start with underscore --- main.c | 2 +- tests/043.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/043.sh diff --git a/main.c b/main.c index bb91a3b..8db2f31 100644 --- a/main.c +++ b/main.c @@ -214,7 +214,7 @@ struct Token* tokenize(char* src) { tok->kind = TK_L_INT; tok->value = calloc(pos - start + 1, sizeof(char)); memcpy(tok->value, src + start, pos - start); - } else if (isalpha(c)) { + } else if (isalpha(c) || c == '_') { pos -= 1; start = pos; while (isalnum(src[pos]) || src[pos] == '_') { diff --git a/tests/043.sh b/tests/043.sh new file mode 100644 index 0000000..a343918 --- /dev/null +++ b/tests/043.sh @@ -0,0 +1,17 @@ +set -e + +cat <<'EOF' > expected +42,123 +EOF +bash ../../test_diff.sh <<'EOF' +int printf(); + +int main() { + int _a = 42; + int _b = 123; + + printf("%d,%d\n", _a, _b); + + return 0; +} +EOF -- cgit v1.2.3-70-g09d2