rupython 1.0.8__py3-none-any.whl → 1.0.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -432,10 +432,35 @@ def Обработать_импорт(импорт, путь_к_текущему
432
432
  файл.close()
433
433
  Временные_файлы.append(путь)
434
434
 
435
+ def Проверить_соответствие_слов(слова, путь_к_файлу):
436
+ def Вывести_исключение(инструкция):
437
+ искл = SyntaxError('Ошибка употребления инструкции "' + инструкция + '".')
438
+ Вывести_текст_исключения(искл, 'при разборе кода', путь_к_файлу)
439
+
440
+ for сл in ('Подключить', 'Если', 'Иначе'):
441
+ for поз in [i for i, x in enumerate(слова) if x[1] == сл]:
442
+ if поз > 0 and слова[поз - 1][1] not in ('\n', '\t'):
443
+ Вывести_исключение(сл); return False
444
+ сл_ = сл.lower()
445
+ for поз in [i for i, x in enumerate(слова) if x[1] == сл_]:
446
+ if поз == 0 or слова[поз - 1][1] in ('\n', '\t'):
447
+ Вывести_исключение(сл_); return False
448
+
449
+ for поз in [i for i, x in enumerate(слова) if x[1] == 'Вернуть']:
450
+ if поз == len(слова) - 1 or слова[поз + 1][1] == '\n':
451
+ Вывести_исключение('Вернуть'); return False
452
+
453
+ for поз in [i for i, x in enumerate(слова) if x[1] == 'Возврат']:
454
+ if поз != len(слова) - 1 and слова[поз + 1][1] != '\n':
455
+ Вывести_исключение('Возврат'); return False
456
+
457
+ return True
458
+
435
459
  Циклы_со_счётчиком = []
436
460
 
437
461
  def Преобразовать_код(путь_к_файлу):
438
462
  слова = list(Прочитать_слова(open(путь_к_файлу, encoding='utf-8').readline))
463
+ if not Проверить_соответствие_слов(слова, путь_к_файлу): return
439
464
 
440
465
  # обрабатываем импорты
441
466
  импорты = []
@@ -584,10 +609,10 @@ def Вывести_текст_исключения(исключение, заг
584
609
  exc_traceback=исключение.__traceback__,
585
610
  exc_value=исключение
586
611
  ).stack[-сч]
587
- except: break
612
+ except: сч = -1; break
588
613
  if искл.filename == назв_исп_ф: break
589
614
  сч += 1
590
- if искл and искл.filename == назв_исп_ф:
615
+ if сч != -1 and искл.filename == назв_исп_ф:
591
616
  номер_строки = искл.lineno - 2
592
617
  else:
593
618
  try: номер_строки = исключение.lineno - 2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rupython
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary: Исполнитель кода Русского Питона
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -27,7 +27,7 @@ ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
27
27
 
28
28
  ```
29
29
  Функция НОД(*числа):
30
- f = фун a, b: a если b == 0 иначе f(b, a % b)
30
+ f = фун a, b: a если b == 0 иначе f(b, a % b)
31
31
  Вернуть Свёртка(фун a, b: f(a, b), числа)
32
32
 
33
33
  Функция НОК(*числа):
@@ -0,0 +1,11 @@
1
+ rupython/__main__.py,sha256=BxtsIK8PJuOOGVDKxqoscwJjjWWhZts7adicFuwUL6k,540
2
+ rupython/__Заголовочный_код__.py,sha256=H_WJDywi-x_UtBYvO2pt1cTdnixTAjHRLj4svzIz3ZI,11797
3
+ rupython/Преобразователь.py,sha256=PJb4IWA8L_6UvR3CYt2RM3kccHygy-_2ZoeLw72iVPk,36296
4
+ rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
5
+ rupython/Модули/РегВыр.py,sha256=yeXYfeDF2qw4DSKVdZVSFInMUW52U7Nq_KOJKvm4XnM,6349
6
+ rupython/Модули/Случ.py,sha256=oeVdSdFVb4X_T-nX2P7NSIhise1zUPIS4lk7h-67XSg,2689
7
+ rupython-1.0.10.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
8
+ rupython-1.0.10.dist-info/METADATA,sha256=ffNgjZIWNCUuMdEWZiCdWSfQ-vZEhY6M2WYRpgL1Ov0,13487
9
+ rupython-1.0.10.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
10
+ rupython-1.0.10.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
11
+ rupython-1.0.10.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- rupython/__main__.py,sha256=BxtsIK8PJuOOGVDKxqoscwJjjWWhZts7adicFuwUL6k,540
2
- rupython/__Заголовочный_код__.py,sha256=H_WJDywi-x_UtBYvO2pt1cTdnixTAjHRLj4svzIz3ZI,11797
3
- rupython/Преобразователь.py,sha256=AatNjSqDH2vKOq_4AlGvvpMq3qSxIVBORJB_za3lzcM,34684
4
- rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
5
- rupython/Модули/РегВыр.py,sha256=yeXYfeDF2qw4DSKVdZVSFInMUW52U7Nq_KOJKvm4XnM,6349
6
- rupython/Модули/Случ.py,sha256=oeVdSdFVb4X_T-nX2P7NSIhise1zUPIS4lk7h-67XSg,2689
7
- rupython-1.0.8.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
8
- rupython-1.0.8.dist-info/METADATA,sha256=c5QYnjYXH9F_M2kN5MPNrPZmSBdmoTTCiUGlBms6x_Q,13489
9
- rupython-1.0.8.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
10
- rupython-1.0.8.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
11
- rupython-1.0.8.dist-info/RECORD,,