on master help sign in
add :automergetohead command to tutd
commit977e1bc140bc1169ce70c7f1f0ce68f44de90e8b authorAgentM <agentm@themactionfaction.com> dateThu 10 Aug 2017, 18:11 (9 years ago) parentfe6bcd5
2 files changed+20−1
src/bin/TutorialD/Interpreter.hs+5 src/bin/TutorialD/Interpreter/TransactionGraphOperator.hs+15−1
src/bin/TutorialD/Interpreter.hs+5
@@ -43,6 +43,7 @@ data ParsedOperation = RODatabaseContextOp RODatabaseContextOperator |
4343 DatabaseContextIOExprOp DatabaseContextIOExpr |
4444 InfoOp InformationOperator |
4545 GraphOp TransactionGraphOperator |
46+ ConvenienceGraphOp ConvenienceTransactionGraphOperator |
4647 ROGraphOp ROTransactionGraphOperator |
4748 ImportRelVarOp RelVarDataImportOperator |
4849 ImportDBContextOp DatabaseContextDataImportOperator |
@@ -64,6 +65,7 @@ safeInterpreterParserP :: Parser ParsedOperation
6465safeInterpreterParserP = fmap RODatabaseContextOp (roDatabaseContextOperatorP <* eof) <|>
6566 fmap InfoOp (infoOpP <* eof) <|>
6667 fmap GraphOp (transactionGraphOpP <* eof) <|>
68+ fmap ConvenienceGraphOp (convenienceTransactionGraphOpP <* eof) <|>
6769 fmap ROGraphOp (roTransactionGraphOpP <* eof) <|>
6870 fmap DatabaseContextExprOp (databaseExprOpP <* eof) <|>
6971 fmap ImportBasicExampleOp (importBasicExampleOperatorP <* eof) <|>
@@ -103,6 +105,9 @@ evalTutorialD sessionId conn safe expr = case expr of
103105
104106 (GraphOp execOp) ->
105107 eHandler $ C.executeGraphExpr sessionId conn execOp
108+
109+ (ConvenienceGraphOp execOp) ->
110+ eHandler $ evalConvenienceGraphOp sessionId conn execOp
106111
107112 (ROGraphOp execOp) -> do
108113 opResult <- evalROGraphOp sessionId conn execOp
src/bin/TutorialD/Interpreter/TransactionGraphOperator.hs+15−1
@@ -3,11 +3,22 @@ module TutorialD.Interpreter.TransactionGraphOperator where
33import TutorialD.Interpreter.Base
44import Text.Megaparsec.Text
55import Text.Megaparsec
6−import ProjectM36.TransactionGraph
6+import ProjectM36.TransactionGraph hiding (autoMergeToHead)
77import ProjectM36.Client
88import ProjectM36.Error
99import ProjectM36.Base
1010
11+data ConvenienceTransactionGraphOperator = AutoMergeToHead MergeStrategy HeadName
12+ deriving (Show)
13+
14+convenienceTransactionGraphOpP :: Parser ConvenienceTransactionGraphOperator
15+convenienceTransactionGraphOpP = autoMergeToHeadP
16+
17+autoMergeToHeadP :: Parser ConvenienceTransactionGraphOperator
18+autoMergeToHeadP = do
19+ reserved ":automergetohead"
20+ AutoMergeToHead <$> mergeTransactionStrategyP <*> identifier
21+
1122jumpToHeadP :: Parser TransactionGraphOperator
1223jumpToHeadP = do
1324 reservedOp ":jumphead"
@@ -100,3 +111,6 @@ interpretOps newUUID trans@(DisconnectedTransaction _ context) transGraph instri
100111
101112evalROGraphOp :: SessionId -> Connection -> ROTransactionGraphOperator -> IO (Either RelationalError Relation)
102113evalROGraphOp sessionId conn ShowGraph = transactionGraphAsRelation sessionId conn
114+
115+evalConvenienceGraphOp :: SessionId -> Connection -> ConvenienceTransactionGraphOperator -> IO (Either RelationalError ())
116+evalConvenienceGraphOp sessionId conn (AutoMergeToHead strat head') = autoMergeToHead sessionId conn strat head'