Как это работает Один оператор на строку: let name = expression или print expression. Строка с начальным # — комментарий. Во всех языках ключевые слова остаются ASCII let и print. Строчные комментарии и точки с запятой не поддерживаются.
Идентификаторы начинаются с A-Z, a-z или _, затем могут содержать эти символы и цифры 0–9. Переменная должна существовать до обращения; другой let может заменить её значение.
Выражения принимают десятичные ASCII-числа с необязательной e/E-экспонентой, существующие переменные, унарные +/-, + - * / и скобки. Умножение и деление раньше сложения и вычитания. Вывод — обычный текст.
Как пользоваться инструментом Введите программу или пример. Сохраняйте let, print, имена переменных и операторы в описанной ASCII-грамматике, с точкой для дробей. Запустите. Каждый print добавляет строку числового вывода. При ошибке прочитайте номер строки, исправьте исходник и запустите снова. Скопируйте или скачайте текстовый вывод. Успешная программа без print показывает сообщение состояния. Сброс очищает программу и результат. Область применения и ограничения Максимум 100 000 единиц UTF-16 исходника и 100 000 байт на файл. До 100 физических строк программы; пустые строки, комментарии и последняя пустая строка после перевода тоже считаются.
На программу выделяется один бюджет 2 000 токенов выражений. Числа, переменные и операторы считаются; ключевые слова операторов и пропущенные комментарии — нет. Вложенность атомов ограничена 40 вызовами, включая унарные знаки, скобки и конечный операнд. Например, 39 пар скобок вокруг числа достигают глубины 40.
Арифметика использует двоичную плавающую точку JavaScript Number, а не точные десятичные числа или произвольную точность. Деление на ноль и неконечный итог отклоняются. Числовой вывод использует ASCII-цифры и точку, а не местные разделители.
Строк, циклов, функций, вычисления JavaScript, файлов и сетевых операций нет. Локализованные цифры, десятичные запятые, переведённые ключевые слова и не-ASCII идентификаторы не входят в грамматику. Worker имеет таймер завершения 5 000 мс; браузер может задержать его срабатывание.
Примеры расчётов Переменные и два результата печати Ввод и настройки Ожидаемый результат Первый результат — 25 × 4. Скобки делают второй (25 + 5) / 2. Каждый print выводит отдельную строку.
Приоритет, скобки и унарный знак Ввод и настройки Ожидаемый результат Умножение предшествует сложению, поэтому a равно 14. Вторая строка вычитает 10, применяет унарный минус и делит на 2.
Десятичная и экспоненциальная запись с видимым округлением Ввод и настройки Ожидаемый результат Парсер принимает .5, 1. и 2e3. Последняя строка показывает двоичное округление, поэтому интерпретатор не подходит для точной десятичной арифметики.
Отклоняемый ввод Ожидаемая ошибка Строка 1: деление на ноль невозможно.
Строка 1 делит на ноль. Ошибка показывает её номер; измените делитель перед повторным запуском.