kernel 1.1.0

Abstract Reactive Streams
Documentation

;; BNF

;; m-expr           ::= m-eq | m-term .
;; m-eq             ::= m-term m-equal m-term .
;; m-term           ::= m-var | m-call | m-cond | s-expr | m-lambda-list .
;; m-lambda-list    ::= m-lambda '[' '[' m-pars ']' ';' m-expr ']' .
;; m-pars           ::= | m-pars-items .
;; m-pars-items     ::= m-symbol | m-symbol ';' m-pars-items .
;; m-var            ::= m-symbol .
;; m-function       ::= m-symbol | m-lambda-list .
;; m-call           ::= m-function '[' m-args ']' .
;; m-args           ::= | m-arg-item .
;; m-arg-items      ::= m-expr | m-expr ';' m-args .
;; m-cond           ::= '[' m-clauses ']' .
;; m-clauses        ::= | m-clause-items .
;; m-clause-items   ::= m-clause | m-clause ';' m-clauses .
;; m-clause         ::= m-expr m-arrow m-expr .
;; s-expr           ::= s-atom | '(' s-list ')' .
;; s-list           ::= | s-list-items .
;; s-list-items     ::= s-expr | s-expr ',' s-list-items .
;; s-atom           ::= s-symbol | s-integer | s-float | s-string .

;; m-lambda         ::= 'fn' .
;; m-nil            ::= 'nil' .
;; m-true           ::= 't' .
;; m-false          ::= 'f' .
;; m-equal          ::= '=' .
;; m-arrow          ::= '->' .
;; m-symbol         ::= "[a-z][a-z0-9]*" .
;; s-symbol         ::= "[A-Z][A-Z0-9]*" .
;; s-integer        ::= "[-+]?[0-9]+" .
;; s-float          ::= "[-+]?[0-9]+.[0-9]+(E[-+]?[0-9]+)?" .