X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mTaskInterpret.dcl;h=2648cb9314c48fb9d31fbbc2a2871a9b089a64a5;hb=e62ff4107298a5c69667b10ab807cf932b2c8d9a;hp=32e7b9b17bc170db695a5123f9256ed5b804c206;hpb=7a67ef5e2af69cb14011be201fe67f755b91a788;p=mTask.git diff --git a/mTaskInterpret.dcl b/mTaskInterpret.dcl index 32e7b9b..2648cb9 100644 --- a/mTaskInterpret.dcl +++ b/mTaskInterpret.dcl @@ -6,23 +6,49 @@ import mTask :: BC = BCNop - | BCPush String + | BCPush Int | BCPop //Unary ops - | BCNeg | BCNot //Binary Int ops | BCAdd | BCSub | BCMul | BCDiv + //Binary Bool ops + | BCAnd + | BCOr + | BCEq + | BCNeq + | BCLes + | BCGre + | BCLeq + | BCGeq + //Conditionals and jumping + | BCJmp Int + | BCJmpT Int + | BCJmpF Int + //Serial + | BCSerialAvail + | BCSerialPrint + | BCSerialPrintln + | BCSerialRead + | BCSerialParseInt + //Pins + | BCAnalogRead Pin + | BCAnalogWrite Pin + | BCDigitalRead Pin + | BCDigitalWrite Pin + | BCTest AnalogPin -:: ByteCode a p = BC ((ReadWrite (ByteCode a Expr)) BCState -> ([BC], BCState)) +//:: ByteCode a p = BC (BCState -> ([BC], BCState)) +:: ByteCode a p = BC [BC] +//:: ByteCode a p = BC ((ReadWrite (ByteCode a Expr)) BCState -> ([BC], BCState)) :: BCState = { a::() } -toByteVal :: BC -> String +toByteVal :: BC -> [Char] toReadableByteVal :: BC -> String //instance toCode Pin