aboutsummaryrefslogtreecommitdiff
path: root/src/parser/Statement.hs
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
commit2b0b62b44a87536597050c525322c7bcc745bdb2 (patch)
tree56ee143d427c66cb1f0583c07beec5f181abc983 /src/parser/Statement.hs
parent5e7d3a5ff586ac75b768a9a1c1f2d5b80960e821 (diff)
downloadcomputorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.gz
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.bz2
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.zip
Added polynom solver from computorv1, Added matrix multipilcation
Diffstat (limited to 'src/parser/Statement.hs')
-rw-r--r--src/parser/Statement.hs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/parser/Statement.hs b/src/parser/Statement.hs
index ca16eca..889f24f 100644
--- a/src/parser/Statement.hs
+++ b/src/parser/Statement.hs
@@ -9,19 +9,22 @@ import Parser.Expr
data Statement
= Evaluation Expr
+ | PolynomEvaluation Expr Expr
| VariableDeclaration String Expr
| FunctionDeclaration String String Expr
statementP :: Parser Statement
-statementP = functionDeclarationP <|> variableDeclarationP <|> evaluationP
+statementP = functionDeclarationP <|> variableDeclarationP <|> polynomEvaluationP <|> evaluationP
where
functionDeclarationP = FunctionDeclaration
- <$> alphaStringP
- <*> parenthesis alphaStringP
+ <$> labelP
+ <*> parenthesis labelP
<*> (char '=' *> exprP)
variableDeclarationP = VariableDeclaration
- <$> alphaStringP
+ <$> labelP
<*> (char '=' *> exprP)
+ polynomEvaluationP = PolynomEvaluation <$> exprP <*> (char '=' *> exprP <* char '?')
+
evaluationP = Evaluation <$> exprP <* char '=' <* char '?'