├── .gitignore ├── ChangeLog.md ├── LICENSE ├── Language └── Lustre │ ├── AST.hs │ ├── Core.hs │ ├── Defines.hs │ ├── Driver.hs │ ├── Error.hs │ ├── ModelState.hs │ ├── Monad.hs │ ├── Name.hs │ ├── Panic.hs │ ├── Parser.y │ ├── Parser │ ├── Lexer.x │ └── Monad.hs │ ├── Phase.hs │ ├── Pretty.hs │ ├── Semantics │ ├── BuiltIn.hs │ ├── Const.hs │ ├── Core.hs │ ├── README │ └── Value.hs │ ├── Transform │ ├── Inline.hs │ ├── NoStatic.hs │ ├── NoStruct.hs │ ├── OrderDecls.hs │ └── ToCore.hs │ ├── TypeCheck.hs │ ├── TypeCheck.hs-boot │ ├── TypeCheck │ ├── Constraint.hs │ ├── Monad.hs │ ├── Prims.hs │ └── Utils.hs │ └── Utils.hs ├── Setup.hs ├── cabal.project ├── docs └── reference_v6.pdf ├── exe ├── Lustre.hs └── Options.hs ├── language-lustre.cabal ├── lustre ├── run-one-test └── tests ├── L01.lus ├── L01.lus.stdin ├── L01.lus.stdout ├── L02.lus ├── L02.lus.stdin ├── L02.lus.stdout ├── L03.lus ├── L03.lus.stdin ├── L03.lus.stdout ├── L04.lus ├── L04.lus.stdout ├── L05.lus ├── L05.lus.stdin ├── L05.lus.stdout ├── L06.lus ├── L06.lus.stdin ├── L06.lus.stdout ├── L07.lus ├── L07.lus.stdin ├── L07.lus.stdout ├── L08.lus ├── L08.lus.stdin ├── L08.lus.stdout ├── L09.lus ├── L09.lus.stdin ├── L09.lus.stdout ├── L10.lus ├── L10.lus.stdin ├── L10.lus.stdout ├── L11.lus ├── L11.lus.stdin ├── L11.lus.stdout ├── L12.lus ├── L12.lus.stdin ├── L12.lus.stdout ├── L13.lus ├── L13.lus.stdin ├── L13.lus.stdout ├── L14.lus ├── L14.lus.stdin ├── L14.lus.stdout ├── L15.lus ├── L15.lus.stdin ├── L15.lus.stdout ├── L16.lus ├── L16.lus.stdin ├── L16.lus.stdout ├── L17.lus ├── L17.lus.stdin ├── L17.lus.stdout ├── L18.lus ├── L18.lus.stdin ├── L18.lus.stdout ├── L19.lus ├── L19.lus.stdin ├── L19.lus.stdout ├── L20.lus ├── L20.lus.stdin ├── L20.lus.stdout ├── L21.lus └── L21.lus.stdout /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/.gitignore -------------------------------------------------------------------------------- /ChangeLog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/ChangeLog.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/LICENSE -------------------------------------------------------------------------------- /Language/Lustre/AST.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/AST.hs -------------------------------------------------------------------------------- /Language/Lustre/Core.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Core.hs -------------------------------------------------------------------------------- /Language/Lustre/Defines.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Defines.hs -------------------------------------------------------------------------------- /Language/Lustre/Driver.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Driver.hs -------------------------------------------------------------------------------- /Language/Lustre/Error.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Error.hs -------------------------------------------------------------------------------- /Language/Lustre/ModelState.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/ModelState.hs -------------------------------------------------------------------------------- /Language/Lustre/Monad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Monad.hs -------------------------------------------------------------------------------- /Language/Lustre/Name.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Name.hs -------------------------------------------------------------------------------- /Language/Lustre/Panic.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Panic.hs -------------------------------------------------------------------------------- /Language/Lustre/Parser.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Parser.y -------------------------------------------------------------------------------- /Language/Lustre/Parser/Lexer.x: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Parser/Lexer.x -------------------------------------------------------------------------------- /Language/Lustre/Parser/Monad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Parser/Monad.hs -------------------------------------------------------------------------------- /Language/Lustre/Phase.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Phase.hs -------------------------------------------------------------------------------- /Language/Lustre/Pretty.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Pretty.hs -------------------------------------------------------------------------------- /Language/Lustre/Semantics/BuiltIn.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Semantics/BuiltIn.hs -------------------------------------------------------------------------------- /Language/Lustre/Semantics/Const.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Semantics/Const.hs -------------------------------------------------------------------------------- /Language/Lustre/Semantics/Core.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Semantics/Core.hs -------------------------------------------------------------------------------- /Language/Lustre/Semantics/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Semantics/README -------------------------------------------------------------------------------- /Language/Lustre/Semantics/Value.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Semantics/Value.hs -------------------------------------------------------------------------------- /Language/Lustre/Transform/Inline.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Transform/Inline.hs -------------------------------------------------------------------------------- /Language/Lustre/Transform/NoStatic.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Transform/NoStatic.hs -------------------------------------------------------------------------------- /Language/Lustre/Transform/NoStruct.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Transform/NoStruct.hs -------------------------------------------------------------------------------- /Language/Lustre/Transform/OrderDecls.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Transform/OrderDecls.hs -------------------------------------------------------------------------------- /Language/Lustre/Transform/ToCore.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Transform/ToCore.hs -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck.hs -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck.hs-boot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck.hs-boot -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck/Constraint.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck/Constraint.hs -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck/Monad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck/Monad.hs -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck/Prims.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck/Prims.hs -------------------------------------------------------------------------------- /Language/Lustre/TypeCheck/Utils.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/TypeCheck/Utils.hs -------------------------------------------------------------------------------- /Language/Lustre/Utils.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/Language/Lustre/Utils.hs -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /cabal.project: -------------------------------------------------------------------------------- 1 | packages: 2 | ./ 3 | -------------------------------------------------------------------------------- /docs/reference_v6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/docs/reference_v6.pdf -------------------------------------------------------------------------------- /exe/Lustre.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/exe/Lustre.hs -------------------------------------------------------------------------------- /exe/Options.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/exe/Options.hs -------------------------------------------------------------------------------- /language-lustre.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/language-lustre.cabal -------------------------------------------------------------------------------- /lustre: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/lustre -------------------------------------------------------------------------------- /run-one-test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/run-one-test -------------------------------------------------------------------------------- /tests/L01.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L01.lus -------------------------------------------------------------------------------- /tests/L01.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | -------------------------------------------------------------------------------- /tests/L01.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L01.lus.stdout -------------------------------------------------------------------------------- /tests/L02.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L02.lus -------------------------------------------------------------------------------- /tests/L02.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | -------------------------------------------------------------------------------- /tests/L02.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L02.lus.stdout -------------------------------------------------------------------------------- /tests/L03.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L03.lus -------------------------------------------------------------------------------- /tests/L03.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L03.lus.stdin -------------------------------------------------------------------------------- /tests/L03.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L03.lus.stdout -------------------------------------------------------------------------------- /tests/L04.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L04.lus -------------------------------------------------------------------------------- /tests/L04.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L04.lus.stdout -------------------------------------------------------------------------------- /tests/L05.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L05.lus -------------------------------------------------------------------------------- /tests/L05.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L05.lus.stdin -------------------------------------------------------------------------------- /tests/L05.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L05.lus.stdout -------------------------------------------------------------------------------- /tests/L06.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L06.lus -------------------------------------------------------------------------------- /tests/L06.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L06.lus.stdin -------------------------------------------------------------------------------- /tests/L06.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L06.lus.stdout -------------------------------------------------------------------------------- /tests/L07.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L07.lus -------------------------------------------------------------------------------- /tests/L07.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L07.lus.stdin -------------------------------------------------------------------------------- /tests/L07.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L07.lus.stdout -------------------------------------------------------------------------------- /tests/L08.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L08.lus -------------------------------------------------------------------------------- /tests/L08.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | -------------------------------------------------------------------------------- /tests/L08.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L08.lus.stdout -------------------------------------------------------------------------------- /tests/L09.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L09.lus -------------------------------------------------------------------------------- /tests/L09.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L09.lus.stdin -------------------------------------------------------------------------------- /tests/L09.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L09.lus.stdout -------------------------------------------------------------------------------- /tests/L10.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L10.lus -------------------------------------------------------------------------------- /tests/L10.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | -------------------------------------------------------------------------------- /tests/L10.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L10.lus.stdout -------------------------------------------------------------------------------- /tests/L11.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L11.lus -------------------------------------------------------------------------------- /tests/L11.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L11.lus.stdin -------------------------------------------------------------------------------- /tests/L11.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L11.lus.stdout -------------------------------------------------------------------------------- /tests/L12.lus: -------------------------------------------------------------------------------- 1 | function test(x : int) returns () 2 | let 3 | () = (); 4 | tel 5 | -------------------------------------------------------------------------------- /tests/L12.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | -------------------------------------------------------------------------------- /tests/L12.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L12.lus.stdout -------------------------------------------------------------------------------- /tests/L13.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L13.lus -------------------------------------------------------------------------------- /tests/L13.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L13.lus.stdin -------------------------------------------------------------------------------- /tests/L13.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L13.lus.stdout -------------------------------------------------------------------------------- /tests/L14.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L14.lus -------------------------------------------------------------------------------- /tests/L14.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L14.lus.stdin -------------------------------------------------------------------------------- /tests/L14.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L14.lus.stdout -------------------------------------------------------------------------------- /tests/L15.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L15.lus -------------------------------------------------------------------------------- /tests/L15.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L15.lus.stdin -------------------------------------------------------------------------------- /tests/L15.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L15.lus.stdout -------------------------------------------------------------------------------- /tests/L16.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L16.lus -------------------------------------------------------------------------------- /tests/L16.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L16.lus.stdin -------------------------------------------------------------------------------- /tests/L16.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L16.lus.stdout -------------------------------------------------------------------------------- /tests/L17.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L17.lus -------------------------------------------------------------------------------- /tests/L17.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 19 5 | 20 6 | 21 7 | -------------------------------------------------------------------------------- /tests/L17.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L17.lus.stdout -------------------------------------------------------------------------------- /tests/L18.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L18.lus -------------------------------------------------------------------------------- /tests/L18.lus.stdin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L18.lus.stdin -------------------------------------------------------------------------------- /tests/L18.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L18.lus.stdout -------------------------------------------------------------------------------- /tests/L19.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L19.lus -------------------------------------------------------------------------------- /tests/L19.lus.stdin: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | -------------------------------------------------------------------------------- /tests/L19.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L19.lus.stdout -------------------------------------------------------------------------------- /tests/L20.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L20.lus -------------------------------------------------------------------------------- /tests/L20.lus.stdin: -------------------------------------------------------------------------------- 1 | 1.0 2 | 2.0 3 | -------------------------------------------------------------------------------- /tests/L20.lus.stdout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L20.lus.stdout -------------------------------------------------------------------------------- /tests/L21.lus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaloisInc/lustre/HEAD/tests/L21.lus -------------------------------------------------------------------------------- /tests/L21.lus.stdout: -------------------------------------------------------------------------------- 1 | L21.lus:4:1: Parse error. 2 | --------------------------------------------------------------------------------