rustre_parser/parser/
ext_nodes.rsuse super::*;
fn parse_ext_node_type<'slice, 'src>(input: Input<'slice, 'src>) -> IResult<'slice, 'src> {
join((
opt(t(Unsafe)),
t(Extern),
expect(
alt((t(Node), t(Function))),
"expected `node` or `function` after `extern`",
),
))(input)
}
pub fn parse_ext_node_decl<'slice, 'src>(input: Input<'slice, 'src>) -> IResult<'slice, 'src> {
node(
ExternalNodeDeclNode,
join((
parse_ext_node_type,
expect(ident::parse_id_any, "missing external node name"),
expect(
nodes::parse_params_and_returns,
"missing signature (params and returned values)",
),
opt(t(Semicolon)),
)),
)(input)
}