feat: базовая структура проекта; docs: грамматика формы бэкуса-наура

This commit is contained in:
ShishkaDanil
2026-01-03 19:31:30 +03:00
parent ab2acdc698
commit 06164cff09
20 changed files with 2291 additions and 11 deletions

View File

@@ -0,0 +1,63 @@
//! Базовый пример использования токенизатора языка Ъ+.
// TODO: Реализовать пример использования токенизатора
// - Создание токенизатора
// - Итерация по токенам
// - Обработка ошибок
// - Вывод информации о токенах
/*
Пример использования:
use tverd_plus_tokenizer::Tokenizer;
fn main() {
let source = r#"
@порт = 0xAF42
@данные = [0; 64]
@коэф = 1.25
Ъ+
@знач = вх(@порт)
? @знач < 5 : @знач = 0
@знач = @знач * @коэф
@данные << @знач
? длина(@данные) < 64 : Ъ+
Ъ-
выдать(@данные)
"#;
let mut tokenizer = Tokenizer::new(source);
println!("Токены:");
for result in tokenizer {
match result {
Ok(token) => {
println!(
" {:?} на позиции {}:{} - '{}'",
token.kind,
token.position.line,
token.position.column,
token.lexeme
);
}
Err(error) => {
eprintln!(
"Ошибка на позиции {}:{} - {}",
error.position.line,
error.position.column,
error.description()
);
}
}
}
}
*/
fn main() {
// TODO: Реализовать пример использования токенизатора
println!("Пример использования токенизатора языка Ъ+");
println!("TODO: Реализовать демонстрацию токенизации");
}