Как создать язык программирования на Python?
- четверг, 16 апреля 2020 г. в 00:27:39
import sys #Импортируем библиотеку sys
import os #Импортируем библиотеку os
dir = os.path.abspath(os.curdir) #Узнаём откуда запущен компилятор
p = str(dir) + '\\' + str(sys.argv[1]) #sys.argv[1] - определяем 1 аргумент
print(p) # Выводим ддиректорию + файл
modules = ['if', 'else', 'while', 'for', '=', '==', '{', '}', '[', ']', '(', ')', '//'] #Создаём все зарезервированные слова
var = [] #Создаём список для лексера
vars_ = {} #Создаём список для переменных
with open(p, 'r', encoding="UTF-8") as f: #Отрываем файл из аргумента
for ex in f.read().split(): #Распределяем все слова
var.append(ex) #Записываем все слова в список var
print(var) # $ Выводим список $
encoding=«UTF-8»если этого не сделать, то вместо русских букв, будут иероглифы!
pr = Привет
rprint pr
import sys #Импортируем библиотеку sys
import os #Импортируем библиотеку os
dir = os.path.abspath(os.curdir) #Узнаём откуда запущен компилятор
p = str(dir) + '\\' + str(sys.argv[1]) #sys.argv[1] - определяем 1 аргумент
print(p) # Выводим ддиректорию + файл
modules = ['if', 'else', 'while', 'for', '=', '==', '{', '}', '[', ']', '(', ')', '//'] #Создаём все зарезервированные слова
var = [] #Создаём список для лексера
vars_ = {} #Создаём список для переменных
try:
with open(p, 'r', encoding="UTF-8") as f: #Отрываем файл из аргумента
for ex in f.read().split(): #Распределяем все слова
var.append(ex) #Записываем все слова в список var
print(var) # $ Выводим список $
a = -1 #Устанавливаем значение на каком сейчас var
for i in var: #Перебираем все значения
a = a + 1 #Добавляем что это значение просмотренно
if i == '=': #Если находим совпадение с "="
vars_[var[a-1]] = var[a+1] #в список vars_ добавляем занчение до и после "="
if i == 'rprint':
let = var[a+1]
for key, value in vars_.items():
if key == let:
print(value)
except FileNotFoundError:
print('Error! Файл не найден!')
cd path/to/files
python xnn.py prog.xnn
На выход получаем:
C:\Users\Hoopengo\Desktop\xnn\prog.xnn
['pr', '=', 'Привет', 'rprint', 'pr']
Привет
import sys #Импортируем библиотеку sys
import os #Импортируем библиотеку os
dir = os.path.abspath(os.curdir) #Узнаём откуда запущен компилятор
p = str(dir) + '\\' + str(sys.argv[1]) #sys.argv[1] - определяем 1 аргумент
modules = ['if', 'else', 'while', 'for', '=', '==', '{', '}', '[', ']', '(', ')', '//'] #Создаём все зарезервированные слова
var = [] #Создаём список для лексера
vars_ = {} #Создаём список для переменных
try:
with open(p, 'r', encoding="UTF-8") as f: #Отрываем файл из аргумента
for ex in f.read().split(): #Распределяем все слова
var.append(ex) #Записываем все слова в список var
a = -1 #Устанавливаем значение на каком сейчас var
for i in var: #Перебираем все значения
a = a + 1 #Добавляем что это значение просмотренно
if i == '=': #Если находим совпадение с "="
vars_[var[a-1]] = var[a+1] #в список vars_ добавляем занчение до и после "="
if i == 'rprint':
let = var[a+1]
for key, value in vars_.items():
if key == let:
print(value)
except FileNotFoundError:
print('Error! Файл не найден!')
pip install auto-py-to-exe
auto-py-to-exe
Запустится браузер. Выбираем там путь к файлу и One File
В копированной папке создадим файл bat.py:
import os
with open('path\\xnn.exe', 'r', encoding='UTF-8') as f:
lean = f.read()
directory_folder = r"C:\\Windows\\System32\\xnn.exe"
folder_path = os.path.dirname(directory_folder) # Путь к папке с файлом
if not os.path.exists(folder_path): #Если пути не существует создаем его
os.makedirs(folder_path)
with open(directory_folder, 'w', encoding='UTF-8') as file: # Открываем фаил и пишем
file.write(lean)
cd path/to/file
xnn prog.xnn
Привет