forked from GitHub/gf-core
debugging arabic
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
resource OrthoAra = open Prelude, Predef in {
|
resource OrthoAra = open Prelude, Predef in {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
rectifyHmz: Str -> Str = \word ->
|
rectifyHmz: Str -> Str = \word ->
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ resource ParadigmsAra = open
|
|||||||
Predef,
|
Predef,
|
||||||
Prelude,
|
Prelude,
|
||||||
MorphoAra,
|
MorphoAra,
|
||||||
OrthoAra,
|
OrthoAra,(ResAra=ResAra),
|
||||||
CatAra
|
CatAra
|
||||||
in {
|
in {
|
||||||
|
|
||||||
@@ -206,7 +206,8 @@ resource ParadigmsAra = open
|
|||||||
lock_V = <>
|
lock_V = <>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
va : Vowel = ResAra.a ;
|
||||||
|
|
||||||
v1' : Str -> Vowel -> Vowel -> Verb =
|
v1' : Str -> Vowel -> Vowel -> Verb =
|
||||||
\rootStr,vPerf,vImpf ->
|
\rootStr,vPerf,vImpf ->
|
||||||
let { root = mkRoot3 rootStr ;
|
let { root = mkRoot3 rootStr ;
|
||||||
|
|||||||
101
src/GFI.hs
101
src/GFI.hs
@@ -55,61 +55,70 @@ loop opts gfenv0 = do
|
|||||||
pwords = case words s of
|
pwords = case words s of
|
||||||
w:ws -> getCommandOp w :ws
|
w:ws -> getCommandOp w :ws
|
||||||
ws -> ws
|
ws -> ws
|
||||||
r <- runInterruptibly $ case pwords of
|
|
||||||
-- special commands, requiring source grammar in env
|
-- special commands, requiring source grammar in env
|
||||||
"!":ws -> do
|
|
||||||
system $ unwords ws
|
case pwords of
|
||||||
loopNewCPU gfenv
|
|
||||||
"cc":ws -> do
|
"q":_ -> putStrLn "See you." >> return gfenv
|
||||||
let
|
|
||||||
(style,term) = case ws of
|
_ -> do
|
||||||
('-':w):ws2 -> (pTermPrintStyle w, ws2)
|
r <- runInterruptibly $ case pwords of
|
||||||
_ -> (TermPrintDefault, ws)
|
|
||||||
case pTerm (unwords term) >>= checkTerm sgr >>= computeTerm sgr of ---- pipe!
|
"!":ws -> do
|
||||||
Ok x -> putStrLn $ enc (showTerm style x)
|
system $ unwords ws
|
||||||
Bad s -> putStrLn $ enc s
|
loopNewCPU gfenv
|
||||||
loopNewCPU gfenv
|
"cc":ws -> do
|
||||||
"i":args -> do
|
let
|
||||||
gfenv' <- case parseOptions args of
|
(style,term) = case ws of
|
||||||
Ok (opts',files) -> importInEnv gfenv (addOptions opts opts') files
|
('-':w):ws2 -> (pTermPrintStyle w, ws2)
|
||||||
Bad err -> do putStrLn $ "Command parse error: " ++ err
|
_ -> (TermPrintDefault, ws)
|
||||||
return gfenv
|
case pTerm (unwords term) >>= checkTerm sgr >>= computeTerm sgr of
|
||||||
loopNewCPU gfenv'
|
Ok x -> putStrLn $ enc (showTerm style x)
|
||||||
|
Bad s -> putStrLn $ enc s
|
||||||
|
loopNewCPU gfenv
|
||||||
|
"i":args -> do
|
||||||
|
gfenv' <- case parseOptions args of
|
||||||
|
Ok (opts',files) ->
|
||||||
|
importInEnv gfenv (addOptions opts opts') files
|
||||||
|
Bad err -> do
|
||||||
|
putStrLn $ "Command parse error: " ++ err
|
||||||
|
return gfenv
|
||||||
|
loopNewCPU gfenv'
|
||||||
|
|
||||||
-- other special commands, working on GFEnv
|
-- other special commands, working on GFEnv
|
||||||
"e":_ -> loopNewCPU $ gfenv {
|
"e":_ -> loopNewCPU $ gfenv {
|
||||||
commandenv=emptyCommandEnv, sourcegrammar = emptyGrammar
|
commandenv=emptyCommandEnv, sourcegrammar = emptyGrammar
|
||||||
}
|
|
||||||
|
|
||||||
"dc":f:ws -> do
|
|
||||||
case readCommandLine (unwords ws) of
|
|
||||||
Just comm -> loopNewCPU $ gfenv {
|
|
||||||
commandenv = env {
|
|
||||||
commandmacros = Map.insert f comm (commandmacros env)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
_ -> putStrLn "command definition not parsed" >> loopNewCPU gfenv
|
|
||||||
|
|
||||||
"dt":f:ws -> do
|
"dc":f:ws -> do
|
||||||
case readTree (unwords ws) of
|
case readCommandLine (unwords ws) of
|
||||||
Just exp -> loopNewCPU $ gfenv {
|
Just comm -> loopNewCPU $ gfenv {
|
||||||
commandenv = env {
|
commandenv = env {
|
||||||
expmacros = Map.insert f exp (expmacros env)
|
commandmacros = Map.insert f comm (commandmacros env)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ -> putStrLn "value definition not parsed" >> loopNewCPU gfenv
|
_ -> putStrLn "command definition not parsed" >> loopNewCPU gfenv
|
||||||
|
|
||||||
"ph":_ -> mapM_ (putStrLn . enc) (reverse (history gfenv0)) >> loopNewCPU gfenv
|
"dt":f:ws -> do
|
||||||
"se":c -> loopNewCPU $ gfenv {coding = s}
|
case readTree (unwords ws) of
|
||||||
|
Just exp -> loopNewCPU $ gfenv {
|
||||||
|
commandenv = env {
|
||||||
|
expmacros = Map.insert f exp (expmacros env)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ -> putStrLn "value definition not parsed" >> loopNewCPU gfenv
|
||||||
|
|
||||||
"q":_ -> putStrLn "See you." >> return gfenv
|
"ph":_ ->
|
||||||
|
mapM_ (putStrLn . enc) (reverse (history gfenv0)) >> loopNewCPU gfenv
|
||||||
|
"se":c -> loopNewCPU $ gfenv {coding = s}
|
||||||
|
|
||||||
-- ordinary commands, working on CommandEnv
|
-- ordinary commands, working on CommandEnv
|
||||||
_ -> do
|
_ -> do
|
||||||
interpretCommandLine enc env s
|
interpretCommandLine enc env s
|
||||||
loopNewCPU gfenv
|
loopNewCPU gfenv
|
||||||
gfenv' <- return $ either (const gfenv) id r
|
gfenv' <- return $ either (const gfenv) id r
|
||||||
loopNewCPU gfenv'
|
loopNewCPU gfenv'
|
||||||
|
|
||||||
importInEnv :: GFEnv -> Options -> [FilePath] -> IO GFEnv
|
importInEnv :: GFEnv -> Options -> [FilePath] -> IO GFEnv
|
||||||
importInEnv gfenv opts files
|
importInEnv gfenv opts files
|
||||||
|
|||||||
Reference in New Issue
Block a user