This repository has been archived on 2025-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
corten/src/assembler/operand_parser.rs

31 lines
676 B
Rust
Raw Normal View History

2020-02-07 21:10:16 -05:00
#![allow(unused_imports)]
use nom::*;
use nom::{digit, types::CompleteStr};
use crate::assembler::Token;
named!(pub integer_operand<CompleteStr, Token>,
ws!(
do_parse!(
tag!("#") >>
reg_num: digit >>
(
Token::IntegerOperand{value: reg_num.parse::<i32>().unwrap()}
)
)
)
);
#[cfg(test)]
mod reg_parser_test {
use super::*;
#[test]
fn test_opcode_load() {
let result = integer_operand(CompleteStr("#10"));
let (rest, value) = result.unwrap();
assert_eq!(rest, CompleteStr(""));
assert_eq!(value, Token::IntegerOperand { value: 10 });
}
}