Rain: added support for the modulo operator
This commit is contained in:
parent
c8cf8a9963
commit
96fc3a9983
|
@ -33,8 +33,8 @@ $hexDigit = [0-9 a-f A-F]
|
|||
|
||||
@reserved = "[" | "]" | "(" | ")" | "{" | "}"
|
||||
| ":" | "==" | "," | ";"
|
||||
| "?" | "!" | "=" | "+=" | "-=" | "*=" | "/="
|
||||
| "+" | "-" | "*" | "/"
|
||||
| "?" | "!" | "=" | "+=" | "-=" | "*=" | "/=" | "%="
|
||||
| "+" | "-" | "*" | "/" | "%"
|
||||
| ">=" | "<="
|
||||
| "<" | ">"
|
||||
| "process" | "pareach" | "seqeach" | "par" | "seq"
|
||||
|
|
|
@ -92,6 +92,7 @@ dyadicArithOp
|
|||
<|> do {m <- reserved "-" ; return (m,A.Minus) }
|
||||
<|> do {m <- reserved "*" ; return (m,A.Times) }
|
||||
<|> do {m <- reserved "/" ; return (m,A.Div) }
|
||||
<|> do {m <- reserved "%" ; return (m,A.Rem) }
|
||||
|
||||
dyadicCompOp :: RainParser (Meta,A.DyadicOp)
|
||||
dyadicCompOp
|
||||
|
@ -256,6 +257,9 @@ assignOp :: RainParser (Meta, Maybe A.DyadicOp)
|
|||
assignOp
|
||||
= do {m <- reserved "+=" ; return (m,Just A.Plus)}
|
||||
<|> do {m <- reserved "-=" ; return (m,Just A.Minus)}
|
||||
<|> do {m <- reserved "*=" ; return (m,Just A.Times)}
|
||||
<|> do {m <- reserved "/=" ; return (m,Just A.Div)}
|
||||
<|> do {m <- reserved "%=" ; return (m,Just A.Rem)}
|
||||
<|> do {m <- reserved "=" ; return (m,Nothing)}
|
||||
--TODO the rest
|
||||
|
||||
|
|
|
@ -103,6 +103,7 @@ testExprs =
|
|||
|
||||
--Dyadic operators:
|
||||
,passE ("b + c", 0 ,Dy (Var "b") A.Plus (Var "c") )
|
||||
,passE ("b % c", 0 ,Dy (Var "b") A.Rem (Var "c") )
|
||||
,passE ("b == c", 1 ,Dy (Var "b") A.Eq (Var "c") )
|
||||
,passE ("(b + c)", 2 ,Dy (Var "b") A.Plus (Var "c") )
|
||||
,passE ("(b == c)", 3 ,Dy (Var "b") A.Eq (Var "c") )
|
||||
|
|
Loading…
Reference in New Issue
Block a user