Skip to content

astro-gad/noz_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noz Language

StandardML with refinement types + Affirmation -based language

Summary

Contribute

Requirements

  • rustc >= 1.75.0
  • cargo >= 1.75.0

Git workflow

To submit your code, create a PR on the dev branch, which will be reviewed later on and merged on main if the feature is stable and legitimate.

Please document all your code, especially the structs fields and the functions by providing their specification. You can get inspirations from the actual code.

Technical specificities

Caution

This section, especially the grammar, is subject to changes. Here is the BNF of the language's grammar :

program = expr;

expr = let | app | if-expr | fun;

app = app term | term;

let = 'let' id definition 'in' expr;

definition = ( '::' type_expr | [ ':' id ] '=' expr );

type_expr = ( id | product_type | sum_type | function_type );

product_type = '{' { id ':' id ';' } '}';

sum_type = '|' type_expr { '|' type_expr };

function_type = type_expr '->' type_expr;

fun = 'fun' [ 'ifx' ]  { id } '->' expr;

if-expr = 'if' expr 'then' expr 'else' expr;

term = id | literal | '(' expr ')';

literal = numbers | strings | booleans | chars;

Examples

About

New PL project :)

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages