feat: базовая структура проекта; docs: грамматика формы бэкуса-наура
This commit is contained in:
63
examples/basic_tokenizer.rs
Normal file
63
examples/basic_tokenizer.rs
Normal 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: Реализовать демонстрацию токенизации");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user