Skip to content

pauladam94/Lustre_Project

Repository files navigation

Lustre_Project

Project around the Lustre programming language aiming at providing :

  • a parser
  • [~] a type checker
  • [~] an interpreter
  • a lsp implementation for IDE features for the language
  • a graphical interface to build apps with Lustre in slint

TODO

  • 0 -> pre x (mauvaise valeur de x)
  • tableaux égaux pas être egaux quand de taille différentes
  • affichages des hints de valeur de variables qui restent
  • clock support
  • support for create static array of specific length [value] ^ n
  • support for merge
  • support for reset
  • support for 'if then else'

Parser

  • fix error parsing of 1 -> 1 -> a + b
  • parse comments
  • add a lexing phase first (maybe in a lazy way)
  • parse tuple on the left of expression
  • parse tuple in expression
  • fuzzing
  • parse vars
  • more faulty parser
  • loss less parser
  • one more test for loss less parser : input ==nws parse | input | display_debug
  • parse arguments variants (x, y : int) instead of (x : int, y: int)

Type checker

  • checking clocks
  • test cyclic definition inside a node itself
  • test non cyclic definitions of function between each other
  • type check functions call
  • good type check of 'pre' not initialized type

LSP

  • better semantic tokens
  • inlay hints of type
  • test inlay hint if the test pass or not
  • constant propagate draw for output of function
  • hightlight by the lsp

Interpreter

  • interpreter in the lsp
  • Untyped Value for faster interpretation
  • separate initial step and non initial step for faster interpretation

Compiler

  • compile a CompileNode to a Rust program that can be compiled

Graphical interface

  • basic grid support with slint
  • compilation of a program to a working grid application
  • modifiying the code of a block modify the whole code

About

Project around the Lustre language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages