Skip to main content

luaur_compiler/methods/
compiler_extract_stat_continue.rs

1use luaur_ast::records::ast_node::AstNode;
2use luaur_ast::records::ast_stat::AstStat;
3use luaur_ast::records::ast_stat_block::AstStatBlock;
4use luaur_ast::records::ast_stat_continue::AstStatContinue;
5
6impl crate::records::compiler::Compiler {
7    pub fn extract_stat_continue(&mut self, block: *mut AstStatBlock) -> *mut AstStatContinue {
8        unsafe {
9            let body = &(*block).body;
10            if body.size == 1 {
11                let stat_ptr = body.data.add(0);
12                let stat_node = &mut **stat_ptr as *mut AstStat as *mut AstNode;
13                let continue_ptr = luaur_ast::rtti::ast_node_as::<AstStatContinue>(stat_node);
14                continue_ptr
15            } else {
16                core::ptr::null_mut()
17            }
18        }
19    }
20}