ewe 0.1.0.31 → 0.1.0.32
raw patch · 4 files changed
+109/−18 lines, 4 files
Files
- dist/build/ewe/ewe-tmp/Language/EWE/Parser.hs +29/−1
- dist/build/ewe/ewe-tmp/Language/EWE/Scanner.hs +69/−2
- ewe.cabal +1/−1
- src/Language/EWE/VM.hs +10/−14
dist/build/ewe/ewe-tmp/Language/EWE/Parser.hs view
@@ -584,7 +584,35 @@ pEWE s = runAlex s parse {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "<línea-de-orden>" #-}+{-# LINE 8 "<línea-de-orden>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4++++++++++++++++++++++++# 8 "<línea-de-orden>" 2 {-# LINE 1 "templates/GenericTemplate.hs" #-} -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
dist/build/ewe/ewe-tmp/Language/EWE/Scanner.hs view
@@ -32,7 +32,40 @@ #endif {-# LINE 1 "templates/wrappers.hs" #-} {-# LINE 1 "templates/wrappers.hs" #-}-{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "<línea-de-orden>" #-}+++++++# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4++++++++++++++++++++++++# 6 "<línea-de-orden>" 2 {-# LINE 1 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Alex wrapper code.@@ -369,7 +402,41 @@ alex_action_26 = returnId {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "<línea-de-orden>" #-}++++++++# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4++++++++++++++++++++++++# 7 "<línea-de-orden>" 2 {-# LINE 1 "templates/GenericTemplate.hs" #-} -- ----------------------------------------------------------------------------- -- ALEX TEMPLATE
ewe.cabal view
@@ -2,7 +2,7 @@ -- see http://haskell.org/cabal/users-guide/ name: ewe-version: 0.1.0.31+version: 0.1.0.32 synopsis: An language using in Programming Languages teaching description: Another implemention of the EWE programming language originally created and developed by Kent D. Lee. EWE is an extension of the RAM programming language. RAM was created by Sethi. homepage: http://github.com/jfcmacro/ewe
src/Language/EWE/VM.hs view
@@ -55,11 +55,7 @@ outMem r m = M.maybe ((r,0):m, 0) (\i -> (m,i)) (L.lookup r m) inMem :: Int -> Int -> Memory -> Memory-inMem = updateM emptyMemory--updateM :: Memory -> Int -> Int -> Memory -> Memory-updateM m r v [] = (r,v):m-updateM m r v (d@(r',_):m') = updateM (d:m) r v m'+inMem i v m = (i,v):m incrPC :: StateVM -> Int incrPC state = (pc state) + 1@@ -135,20 +131,20 @@ execInstr (IDiv mrr mra mrb) state = comp (div) mrr mra mrb state execInstr (IMod mrr mra mrb) state = comp (mod) mrr mra mrb state execInstr (IMRI mrr mr i) state =- let m = mem state- ge' = ge state- (m',v) = outMem (mRef mr ge') m- (m'', v')= outMem (v + i) m'+ let m = mem state+ ge' = ge state+ (m',v) = outMem (mRef mr ge') m+ (m'', v') = outMem (v + i) m' in state { mem = inMem (mRef mrr ge') v' m'' , pc = incrPC state } execInstr (IMMR mri i mr) state =- let m = mem state- ge' = ge state- (m', v) = outMem (mRef mr ge') m- (m'', v') = outMem (mRef mri ge') m'+ let m = mem state+ ge' = ge state+ (m', v) = outMem (mRef mr ge') m+ (m'', v') = outMem (mRef mri ge') m' in state { mem = inMem (v' + i) v m''- , pc = incrPC state+ , pc = incrPC state } execInstr (IGI i) state = let prg' = prg state