aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--main.c2
-rw-r--r--tests/043.sh17
2 files changed, 18 insertions, 1 deletions
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