From b9633a33182f5b381e912366273709e59f469bb9 Mon Sep 17 00:00:00 2001 From: Mirek Kratochvil Date: Sat, 12 Nov 2022 17:47:51 +0100 Subject: reorg. --- app/Compiler.hs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'app/Compiler.hs') diff --git a/app/Compiler.hs b/app/Compiler.hs index 4f94637..b3294a1 100644 --- a/app/Compiler.hs +++ b/app/Compiler.hs @@ -3,19 +3,9 @@ module Compiler where import Data.Char (isUpper) import Data.Containers.ListUtils (nubOrd) import Data.List -import Interpreter (Code, Datum(..), Id(..), Instr(..), StrTable, strtablize) -data PrlgStr - = CallS String [PrlgStr] - | LiteralS String - deriving (Show) - -data PrlgInt - = CallI Id [PrlgInt] - | LiteralI Int - | VarI Int Int - | VoidI - deriving (Show) +import Code (Code, Datum(..), Instr(..)) +import IR (Id(..), PrlgInt(..), PrlgStr(..), StrTable, strtablize) varname :: String -> Bool varname ('_':_) = True @@ -28,8 +18,8 @@ varnames (LiteralS x) | varname x = [x] | otherwise = [] -strtablizePrlg :: [String] -> StrTable -> PrlgStr -> (StrTable, PrlgInt) -strtablizePrlg stab = go +internPrlg :: [String] -> StrTable -> PrlgStr -> (StrTable, PrlgInt) +internPrlg stab = go where go t (LiteralS str) | str == "_" = (t, VoidI) -- cgit v1.2.3