magc 0.8.0

The Mag Language Compiler
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::parser::{Parser, ParserResult, PrefixParselet};
use crate::types::{Expression, ExpressionKind, ReturnExpression, Token};

#[derive(Debug, Clone)]
pub struct ReturnParselet;

impl PrefixParselet for ReturnParselet {
    fn parse(&self, parser: &mut Parser, _token: Token) -> ParserResult {
        let value = Box::new(parser.parse_expression(0)?);

        Ok(Expression {
            kind: ExpressionKind::Return(ReturnExpression { value }),
            start_pos: 0,
            end_pos: 0,
        })
    }
}