Удосконалював інтерпретатор HQ9+, і зрозумів, що в мене виходить повністю нова мова програмування.Ще не дійшов до класів і функцій, тому роблю за допомогою того, що знаю.Почав це писати заради того, щоб закріпити вже отримані знання.
Загалом в моїй мові програмування(ще не назвав її, але є варіант "Удав" - пародія на Python. ) такий синтаксис:
команда-аргумент(и)
Загалом зараз принцип роботи мого інтерпретатора такий:
1.Відкриваємо файл з вихідним кодом(на моїй мові програмування);
2.Розбиваємо код на рядки по символу ";";
3.Розбиваємо рядок на дві чаcтини по символу "-";
4.Залежно від команди виконується певна дія.
Загалом все спочатку норм, але коли цикл робить більше ніж одне коло, то програма не працює так як треба...
Ось код:
# 27.04.2015 - 29.04.2015
# Udav
doc = open("code.txt", "r")
code = doc.read()
str = code.split(";")
for i_str in str:
str_com = i_str.split("-")
com = str_com[0]
if com == "print":
print(str_com[1])
elif com == "do":
if str_com[1] == "quine":
print(code)
else:
print("Syntax error")
doc.close()
input()
Ось зміст файлу "code.txt":
print-hello world;
print-this is text
Перший рядок виводиться, але другий - ні.Спрацьовує чомусь else.Може хтось підсказати в чому проблема?