mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 17:12:50 -06:00
moved interruption to GFI level to capture all commands
This commit is contained in:
@@ -7,7 +7,7 @@ concrete LexiconAra of Lexicon = CatAra ** open
|
|||||||
Prelude in {
|
Prelude in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
optimize=values ;
|
optimize=values ; coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
resource MorphoAra = ResAra ** open Prelude in {
|
resource MorphoAra = ResAra ** open Prelude in {
|
||||||
|
|
||||||
flags optimize = all ;--noexpand;
|
flags optimize = all ;--noexpand; coding=utf8 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ resource ParadigmsAra = open
|
|||||||
CatAra
|
CatAra
|
||||||
in {
|
in {
|
||||||
|
|
||||||
flags optimize = noexpand;
|
flags optimize = noexpand; coding=utf8 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
resource PatternsAra = {
|
resource PatternsAra = {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
fA' = { h = "" ; m1 = ""; m2 = ""; t = "َاء"} ;
|
fA' = { h = "" ; m1 = ""; m2 = ""; t = "َاء"} ;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
--
|
--
|
||||||
resource ResAra = PatternsAra ** open Prelude, Predef in {
|
resource ResAra = PatternsAra ** open Prelude, Predef in {
|
||||||
|
|
||||||
flags optimize=noexpand ;
|
flags optimize=noexpand ; coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
param
|
param
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
concrete StructuralAra of Structural = CatAra **
|
concrete StructuralAra of Structural = CatAra **
|
||||||
open MorphoAra, ResAra, ParadigmsAra, Prelude in {
|
open MorphoAra, ResAra, ParadigmsAra, Prelude in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ; coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
above_Prep = ss "فَوْقَ" ;
|
above_Prep = ss "فَوْقَ" ;
|
||||||
|
|||||||
@@ -38,10 +38,13 @@ interpretCommandLine :: (String -> String) -> CommandEnv -> String -> IO ()
|
|||||||
interpretCommandLine enc env line =
|
interpretCommandLine enc env line =
|
||||||
case readCommandLine line of
|
case readCommandLine line of
|
||||||
Just [] -> return ()
|
Just [] -> return ()
|
||||||
|
Just pipes -> mapM_ (interpretPipe enc env) pipes
|
||||||
|
{-
|
||||||
Just pipes -> do res <- runInterruptibly (mapM_ (interpretPipe enc env) pipes)
|
Just pipes -> do res <- runInterruptibly (mapM_ (interpretPipe enc env) pipes)
|
||||||
case res of
|
case res of
|
||||||
Left ex -> putStrLnFlush $ enc (show ex)
|
Left ex -> putStrLnFlush $ enc (show ex)
|
||||||
Right x -> return x
|
Right x -> return x
|
||||||
|
-}
|
||||||
Nothing -> putStrLnFlush "command not parsed"
|
Nothing -> putStrLnFlush "command not parsed"
|
||||||
|
|
||||||
interpretPipe enc env cs = do
|
interpretPipe enc env cs = do
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ import System.Cmd
|
|||||||
import System.CPUTime
|
import System.CPUTime
|
||||||
import Control.Exception
|
import Control.Exception
|
||||||
import Data.Version
|
import Data.Version
|
||||||
|
import GF.System.Signal
|
||||||
|
|
||||||
|
|
||||||
import Paths_gf
|
import Paths_gf
|
||||||
|
|
||||||
@@ -53,7 +55,7 @@ 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
|
||||||
case pwords of
|
r <- runInterruptibly $ case pwords of
|
||||||
-- special commands, requiring source grammar in env
|
-- special commands, requiring source grammar in env
|
||||||
"!":ws -> do
|
"!":ws -> do
|
||||||
system $ unwords ws
|
system $ unwords ws
|
||||||
@@ -106,6 +108,8 @@ loop opts gfenv0 = do
|
|||||||
_ -> do
|
_ -> do
|
||||||
interpretCommandLine enc env s
|
interpretCommandLine enc env s
|
||||||
loopNewCPU gfenv
|
loopNewCPU gfenv
|
||||||
|
gfenv' <- return $ either (const gfenv) id r
|
||||||
|
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