#lang scribble/manual @title{BSL Grammar} This is the full BSL grammar. For a gentler introduction to the language, please see the programs in the @tt{examples} folder. NOTE: braces are not part of the grammar -- they are used to indicate groupings of tokens. Also, @tt{} refers to @tt{}. Similarly, @tt{} refers to @tt{}, @tt{} refers to @tt{}, @tt{} refers to @tt{}, and @tt{} refers to @tt{}. @verbatim|{ ::= * ::= | ::= | | | ::= | | struct: (?) ::= def : ::= fun (?): | fun (?): * ::= {, }* ::= | ::= | ::= | | and | or | not ::= + ::= ::= < | <= | = | != | >= | > | in | not in ::= | + | - | + | - | * | / | % | ** | [] | ::= | : | :: ::= .. | ... | .... | ..... | ...... ::= empty | True | False | | | | | | () | (?) ::= [ ] | [{, }*] ::= ::= | + ::= | :done ::= if : ? ::= elif : ? ::= else: ? ::= test: is: | test: is: within: | test_error: | test_error: matches: | test_range: from: to: ::= big_bang(*) ::= = {, }* }| @include-section{grammar/literals.scrbl} @include-section{grammar/indent.scrbl}