📝 doc: make it obvious that LWVM only handles bytecode for now
							parent
							
								
									af49dc68be
								
							
						
					
					
						commit
						d9bba9fc07
					
				|  | @ -4,7 +4,7 @@ LunarWaveVM is a Lua 5.4 virtual machine written in Rust. | |||
| 
 | ||||
| LunarWaveVM relies on the PUC-Rio implementation of `luac` to compile bytecode. | ||||
| 
 | ||||
| `cargo run -- --script test_vectors/fizz_buzz.lua` | ||||
| `luac5.4 -o - test_vectors/fizz_buzz.lua | cargo run -- --pipe-bytecode` | ||||
| 
 | ||||
| ``` | ||||
| 1 | ||||
|  |  | |||
							
								
								
									
										15
									
								
								src/main.rs
								
								
								
								
							
							
						
						
									
										15
									
								
								src/main.rs
								
								
								
								
							|  | @ -11,24 +11,33 @@ mod tests; | |||
| fn main () { | ||||
| 	use state::State; | ||||
| 	
 | ||||
| 	let mut script = String::from ("test_vectors/hello.lua"); | ||||
| 	let mut pipe_bytecode = false; | ||||
| 	let mut script = None; | ||||
| 	
 | ||||
| 	let mut args = std::env::args (); | ||||
| 	let exe_name = args.next ().unwrap (); | ||||
| 	
 | ||||
| 	while let Some (arg) = args.next () { | ||||
| 		match arg.as_str () { | ||||
| 			"--script" => script = args.next ().unwrap (), | ||||
| 			"--pipe-bytecode" => pipe_bytecode = true, | ||||
| 			"--script" => script = Some (args.next ().unwrap ()), | ||||
| 			"--" => break, | ||||
| 			_ => panic! ("can't parse args"), | ||||
| 		} | ||||
| 	} | ||||
| 	
 | ||||
| 	let lua_file = { | ||||
| 	let lua_file = if let Some (script) = script { | ||||
| 		let source = std::fs::read (script).expect ("couldn't load Lua source code"); | ||||
| 		let bytecode = loader::compile_bytecode(source); | ||||
| 		let mut rdr = std::io::Cursor::new (bytecode); | ||||
| 		loader::parse_chunk (&mut rdr).unwrap () | ||||
| 	} | ||||
| 	else if pipe_bytecode { | ||||
| 		let mut stdin = std::io::stdin ().lock (); | ||||
| 		loader::parse_chunk (&mut stdin).unwrap () | ||||
| 	} | ||||
| 	else { | ||||
| 		unimplemented!(); | ||||
| 	}; | ||||
| 	
 | ||||
| 	let mut vm = State::default (); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 _
						_