From 4f09e9365013bb8169a437c2cc2a28d415bbad93 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Fri, 14 Jan 2011 00:28:09 +0100 Subject: [PATCH] 3a_asm: FIX: weird parens bug. whatever, it works now --- 3a_asm/Expr_eval.hs | 4 ++-- 3a_asm/notes | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/3a_asm/Expr_eval.hs b/3a_asm/Expr_eval.hs index 6074074..4924950 100644 --- a/3a_asm/Expr_eval.hs +++ b/3a_asm/Expr_eval.hs @@ -17,7 +17,6 @@ lexer = P.makeTokenParser (haskellDef { reservedOpNames = ["*","/","+","-","<<", decimal = P.decimal lexer hexadecimal = P.hexadecimal lexer -parens = P.parens lexer reservedOp = P.reservedOp lexer expr :: [DictElem] -> Parser Word32 @@ -48,7 +47,8 @@ factor_spaces d = do factor :: [DictElem] -> Parser Word32 factor d = do { - parens (expr d); + char '('; r <- expr d; char ')'; + return r } <|> do { -- define or label s <- foldl1 (<|>) (fmap (try . string . fst) d); diff --git a/3a_asm/notes b/3a_asm/notes index 0ef411d..e6bf0d0 100644 --- a/3a_asm/notes +++ b/3a_asm/notes @@ -2,7 +2,6 @@ BUGS: - parsers2/eval: kann nur "0-1" und ned "-1" auswerten - parsers2/eval: aufloesen von zwei labels x und y funktioniert nicht, wenn x ein echter prefix von y ist (longest input match anyone?) -- parsers2/eval: klammern bei ausdruecken (und zwar im asm, ned expr selbst...) - parsers2: bei instr branches addresse durch 4 rechnen (ldi vorm brr -> RAGE) WUENSCHE: -- 2.25.1