parseid 0.1.0

Parser for Asmodeus language with AST generation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! value

use crate::ast::{Operand, AddressingMode};
use crate::error::ParserError;
use crate::token_navigator::TokenNavigator;

pub(crate) struct ImmediateParser;

impl ImmediateParser {
    pub fn parse(navigator: &mut TokenNavigator) -> Result<Operand, ParserError> {
        navigator.advance(); // #
        let value_token = navigator.consume_value("immediate value")?;
        Ok(Operand {
            addressing_mode: AddressingMode::Immediate,
            value: value_token.value,
        })
    }
}