Koryaga is a new single-typed expression-centred general-purpose programming language.
It allows rapid development of robust, concise, correct and high-quality software.
- guaranteed memory safety
- referential transparency
- minimal runtime
Travis CI status (Ubuntu GNU/Linux builds):
Appveyor CI status (Windows builds):
program = "Начало",
( declaration | ( { declaration, ";" }, declaration ) ),
{ assignment },
"Окончание" ;
declaration = ( "Анализ", identifier )
| ( "Синтез", ( identifier | ( { identifier, "," }, identifier ) ) ) ;
assignment = identifier, "=", additive-expression ;
additive-expression = [ "-" ], multiplicative-expression, { ( "+" | "-" ), multiplicative-expression } ;
multiplicative-expression = boolean-binary-expression, { ( "*" | "/" ), boolean-binary-expression } ;
boolean-binary-expression = not-expression, { ( "И" | "ИЛИ" ), not-expression } ;
not-expression = ( "НЕ", base )
| base ;
base = ( "(", expression, ")" )
| identifier
| real ;
identifier = letter, 3 * [ digit ] ;
letter = lower | upper
lower = "а" | "б" | "в" | "г" | "д" | "е" | "ё"
| "ж" | "з" | "и" | "й" | "к" | "л" | "м"
| "н" | "о" | "п" | "р" | "с" | "т" | "у"
| "ф" | "х" | "ц" | "ч" | "ш" | "щ" | "ъ"
| "ы" | "ъ" | "э" | "ю" | "я" ;
upper = "А" | "Б" | "В" | "Г" | "Д" | "Е" | "Ё"
| "Ж" | "З" | "И" | "Й" | "К" | "Л" | "М"
| "Н" | "О" | "П" | "Р" | "С" | "Т" | "У"
| "Ф" | "Х" | "Ц" | "Ч" | "Ш" | "Щ" | "Ъ"
| "Ы" | "Ъ" | "Э" | "Ю" | "Я" ;
real = number "." number ;
number = digit, { digit } ;
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
1 - "НЕ"
2 - "И", "ИЛИ"
3 - "*", "/"
4 - "+", "-"
Левоассоциативные бинарные операторы: "И", "ИЛИ", "*", "/", "+", "-"
Правоассоциативные унарные операторы: "НЕ", "-"
0.0 -- FALSE, любое число отличное от нуля -- TRUE
Операторы "НЕ", "И", "ИЛИ" возвращают 1.0 если аргумент(ы) вычисляются в TRUE
Ключевые слова не чувствительны к регистру. Идентификаторы чувствительны к регистру.
Для использования унарного минуса в выражениях, он должен находиться в самой левой части выражения.
Скобки представляют собой отдельные выражения.
Например: - 1 - (- 1 - 1) + (- 1) -- правильно. 5 - - 5 -- ошибка.
Начало
Синтез а, б, б1
а = 1.0 + 1.0 + 1.0
б = а * 5.0
б = б - 3.0
Окончание
Вывод:
а = 3.0
б = 12.0
Начало
Анализ а112;
Анализ б911;
Анализ в
в = 0.0 / 0.0 + 0.0
Окончание
Вывод:
Ошибка: деление на ноль!
Начало
Синтез а, б, в;
Синтез а1, б1, в1
а1 = 0.0 ИЛИ 5.0 + 1.0
Окончание
Вывод:
а1 = 2.0
- Syntax highlighting
- Visualizing AST as graph
- Error highlighting in source code
- Simple source code editor
- Running interpreter by hotkey