From b7d9d824823fc48c1bce8ddb614a96c1c6033e38 Mon Sep 17 00:00:00 2001 From: Dr-Carlos Date: Sat, 16 Apr 2022 06:13:34 +0930 Subject: [PATCH] _ms: evaluate expressions --- shell/m.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/shell/m.cpp b/shell/m.cpp index dc0c4a0..577736c 100644 --- a/shell/m.cpp +++ b/shell/m.cpp @@ -5,20 +5,21 @@ // ms //--- -static FxOS::Symbol parse_ms(Session &, Parser &parser) +static FxOS::Symbol parse_ms(Session &session, Parser &parser) { - Token t = parser.expect({T::NUM, T::SYSCALL}); - FxOS::Symbol s; - if(t.type == T::SYSCALL) + + if(parser.lookahead().type == T::SYSCALL) { s.type = FxOS::Symbol::Syscall; - else + s.value = parser.expect(T::SYSCALL).value.NUM; + } else { s.type = FxOS::Symbol::Address; + s.value = parser.expr(session.current_space); + } - s.value = t.value.NUM; s.name = parser.symbol(); - parser.end(); + return s; }