use std::fmt::Write; pub mod parser; fn main() { let mut ops: Vec<(Option, Vec)> = Vec::new(); // OpMemoryModel Logical GLSL450 // OpEntryPoint Fragment %main "main" // OpExecutionMode %main OriginUpperLeft // OpSource GLSL 450 // OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" // OpSourceExtension "GL_GOOGLE_include_directive" // OpName %main "main" //%void = OpTypeVoid //%3 = OpTypeFunction %void //%main = OpFunction %void None %3 //%5 = OpLabel // OpReturn // OpFunctionEnd ops.push((None, vec!["OpCapability".to_string(), "Shader".to_string()])); ops.push((Some("%1".to_string()), vec!["OpExtInstImport".to_string(), "\"GLSL.std.450\"".to_string()])); ops.push((None, vec!["OpMemoryModel".to_string(), "Logical".to_string(), "GLSL450".to_string()])); ops.push((None, vec!["OpEntryPoint".to_string(), "Fragment".to_string(), "%main".to_string(), "\"main\"".to_string()])); ops.push((None, vec!["OpExecutionMode".to_string(), "%main".to_string(), "OriginUpperLeft".to_string()])); ops.push((None, vec!["OpSource".to_string(), "GLSL".to_string(), "450".to_string()])); ops.push((None, vec!["OpSourceExtension".to_string(), "\"GL_GOOGLE_cpp_style_line_directive\"".to_string()])); ops.push((None, vec!["OpSourceExtension".to_string(), "\"GL_GOOGLE_include_directive\"".to_string()])); ops.push((None, vec!["OpName".to_string(), "%main".to_string(), "\"main\"".to_string()])); ops.push((Some("%void".to_string()), vec!["OpTypeVoid".to_string()])); ops.push((Some("%3".to_string()), vec!["OpTypeFunction".to_string(), "%void".to_string()])); ops.push((Some("%main".to_string()), vec!["OpFunction".to_string(), "%void".to_string(), "None".to_string(), "%3".to_string()])); ops.push((Some("%5".to_string()), vec!["OpLabel".to_string()])); ops.push((None, vec!["OpReturn".to_string()])); ops.push((None, vec!["OpFunctionEnd".to_string()])); let mut out: String = String::new(); for op in ops { if op.0.is_some() { write!(out, "{} = ", op.0.unwrap()).unwrap(); } for arg in op.1 { write!(out, "{} ", arg).unwrap(); } writeln!(out).unwrap(); } println!("{}", out); }