From a013e4b77590cabe9bf02faf900987baa331b0b8 Mon Sep 17 00:00:00 2001
From: doa0010 <chinh.thuan.doan.st@vsb.cz>
Date: Tue, 5 Mar 2024 20:36:57 +0000
Subject: [PATCH] Add new file

---
 lab02 | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 lab02

diff --git a/lab02 b/lab02
new file mode 100644
index 0000000..8357b0f
--- /dev/null
+++ b/lab02
@@ -0,0 +1,36 @@
+def tokenize(input_string):
+    tokens = []
+    i = 0
+    while i < len(input_string):
+        if input_string[i].isdigit() or (input_string[i] == '-' and i + 1 < len(input_string) and input_string[i + 1].isdigit()):
+            j = i
+            while j < len(input_string) and (input_string[j].isdigit() or input_string[j] == '-'):
+                j += 1
+            tokens.append(('NUM', input_string[i:j]))
+            i = j
+        elif input_string[i].isalpha() or input_string[i] == '_':
+            j = i
+            while j < len(input_string) and (input_string[j].isalnum() or input_string[j] == '_'):
+                j += 1
+            tokens.append(('ID', input_string[i:j]))
+            i = j
+        elif input_string[i] == '(':
+            tokens.append(('LPAR', input_string[i]))
+            i += 1
+        elif input_string[i] == ')':
+            tokens.append(('RPAR', input_string[i]))
+            i += 1
+        elif input_string[i] in '+-*/%{}[];':
+            tokens.append(('OP', input_string[i]))
+            i += 1
+        elif input_string[i] in (' ', '\t', '\n'):
+            i += 1
+        else:
+            print("Unexpected character:", input_string[i])
+            i += 1
+    return tokens
+
+input_string = "-2 + (245 div 3);  note\n2 mod 3 * hello"
+tokens = tokenize(input_string)
+for token in tokens:
+    print(token[0].upper(), ':', token[1])
-- 
GitLab