Skip to content

MichiTheCat-RedStar/RedStarLanguage-s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram

GitHub

Itch.io

Структура README как документации:

  1. Общая информация для пользователей псевдоязыка
  2. Как программировать (Динамичная типизация)
  3. Как программировать (Псевдостатичная типизация)
  4. Для разработчиков (Как встроить псевдоязык)

Для пользователей псевдоязыка (программированния на нём) (общая информация)

Примечание: речь про самя язык, если вы запустите консоль, то она не будет работать как написано ниже, ведь оперирует толькко одной строкой, поэтому если вы зададите значение переменной и в следующей строке вызовите, то у вас будет ошибка, ведь переменная хранится только во время сессии (на самом деле будет, но это скорее баг и, возможно, будет исправлено в будущем)

Основы языка

Не важно сами вы выбрали этот язык, либо его выбрали за вас, но теперь вы можете писать на псевдоязыке, который был сделан на другом псевдоязыке (RSLs <- Python <- C)

Ниже приведены примеры с динамической типизацией и псевдостатичной

Динамичная типизация

Вывод текста

Для вывода текста используется print: стоит уточнить, что все функции работают по одному принципу - вы задаёте название функции, после чего круглые скобки и в них значение функции: функция ( значение )

На примере с print:

print ( "Привет, RedStar!" )

Выведет:

Привет, RedStar!

Переменные

Вы можете задать переменную с помощью var! Попробуйте:

var b = Meow

А теперь это можно объединить с предыдущим выводом сообщений, только для вывода переменных не нужно ставить кавычки!

var b = Meow
print ( b )

И мы видим в консоли, что переменная вывелась:

Meow

#TODO дописать

Статичная типизация

#TODO дописать

Для разработчиков (для встраивания псевдоязыка)

Требования

  • Python 3.7+
  • Поддерживаемая архитектура железа
  • Возможность запуска и встраивания
  • Понимание как встроить псевдоязык

Встраивание

Библиотека

# Портировать библиотеку DRLs (динамическая типизация)
from RSLs import DRSLs

Вызов библиотеки:

DRSLs(code:str, __functions__:list[str]=FUNCTIONS, values:dict[str:any]={}) -> list[dict]:

Псевдоязык с динамической типизацией.

code - задаёт код, который будет интерпретироваться

__functions__ - это функции, на которые будет реагировать язык, если вызывается функция вне этого списка, то возвращается ошибка. Нужно для того, чтобы изменять встроенные функции

values - это переменные по-умолчанию

Возвращение функций

Язык возвращает данные в виде списка со словарями:

[{'Action': 'что_вызвано', 'Values': 'заданные_значения', 'Line': 'строка'}]

Например:

[{'Action': 'print', 'Values': 'Привет, RPLs!', 'Line': 1}, {'Action': 'print', 'Values': 'Автор MichiTheCat', 'Line': 2}]

Функции

Функции хранятся в FUNCTIONS в модуле (DRSLs|SRSLs), при вызове функции вы можете изменить __functions__, либо убрав функции, либо добавив, чтобы на них не реагировал или наоборот реагировал интерпретатор

Пример: Представим, что у вас есть в игре, куда вы встроили псевдоязык, команда shoot, при вводе которой персонаж должен стрелять, но так как такой функции нет в псевдоязыке, то вы можете добавить её в FUNCTIONS или __functions__ и тогда вместо ошибке вам вернёт:

[{'Action': 'shoot', 'Values': '', 'Line': 1}, ...]

Особенности

  • Счёт строки начинается с единицы (1), а не с нуля (0)
  • DRLsConsole.py запускает интерпретатор в консоли

Остальное

  • Лицензия (MIT)
  • Модуль (сама библиотека)
  • Это ещё не финальная версия, поэтому могут быть недоработки, неточности и противоречия

Все права защищены по MIT лицензии пользователем MichiTheCat на площадке GitHub в 2026 году

Releases

No releases published

Contributors

Languages