64 lines
1.9 KiB
Rust
64 lines
1.9 KiB
Rust
//! Базовый пример использования токенизатора языка Ъ+.
|
||
|
||
// 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: Реализовать демонстрацию токенизации");
|
||
}
|
||
|