* стек теперь не бесконечный. задать можно через аргумент cli (максимум 65535, дефолт: 256)
18 lines
511 B
Rust
18 lines
511 B
Rust
use crate::{errors::RunError, stack::{Stack, StackVec}};
|
|
|
|
pub fn args(memory: &mut StackVec, origin_stack: &mut Option<&mut Stack>, data: u16) {
|
|
if let Some(origin_stack) = origin_stack.as_mut() {
|
|
let mut data = data;
|
|
|
|
if data == 0 {
|
|
data = origin_stack.memory.pop();
|
|
}
|
|
|
|
for _ in 0..data {
|
|
memory.push(origin_stack.memory.pop());
|
|
}
|
|
} else {
|
|
eprintln!("{}", RunError::RequestArgsInMainModule);
|
|
std::process::exit(2);
|
|
}
|
|
} |