mirror of
https://github.com/tsoding/good_training_language.git
synced 2026-09-14 11:06:09 +05:00
Полностью интерпретируемая печать_числа() из прелюдии
This commit is contained in:
parent
d634ffa76e
commit
4e56dbc7f8
@ -438,8 +438,8 @@ fn скомпилировать_утвержление(пп: &mut ПП, имен
|
||||
return Err(());
|
||||
}
|
||||
|
||||
let тип_значение = скомпилировать_выражение(пп, имена, параметры, значение)?;
|
||||
проверить_типы(значение.лок(), &тип_элемента, &тип_значение)?;
|
||||
let тип_значения = скомпилировать_выражение(пп, имена, параметры, значение)?;
|
||||
проверить_типы(значение.лок(), &тип_элемента, &тип_значения)?;
|
||||
|
||||
пп.заплатки_неиниц_указателей.push(пп.код.len());
|
||||
пп.код.push(Инструкция{ вид: ВидИнструкции::ПротолкнутьУказатель(переменная.адрес), лок: имя.лок.clone() });
|
||||
@ -450,6 +450,7 @@ fn скомпилировать_утвержление(пп: &mut ПП, имен
|
||||
проверить_типы(&индекс.лок(), &Тип::Цел8, &тип_индекса)?;
|
||||
пп.код.push(Инструкция{ вид: ВидИнструкции::ПротолкнутьЦелое(тип_элемента.размер()), лок: имя.лок.clone() });
|
||||
пп.код.push(Инструкция{ вид: ВидИнструкции::ЦелУмножение, лок: имя.лок.clone() });
|
||||
пп.код.push(Инструкция{ вид: ВидИнструкции::ЦелСложение, лок: имя.лок.clone() });
|
||||
пп.код.push(Инструкция{ вид: ВидИнструкции::Записать8, лок: ключ.лок.clone() });
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -26,4 +26,6 @@
|
||||
печать(«\н»);
|
||||
печать_числа(69);
|
||||
печать(«\н»);
|
||||
печать_числа(1234567890);
|
||||
печать(«\н»);
|
||||
кц
|
||||
|
||||
Loading…
Reference in New Issue
Block a user