Brack

Brack is an esoteric programming language based on matching brackets.

Syntax
A Brack program consists of a series of brackets, separated by spaces. In order for a Brack program to be valid, all brackets must match up in the end. This means that these are all valid Brack programs: [ ] { } { ( [ ] ) } ( [ { }  ] )

Whereas these are not: ( ] ( ( ( ] ) ) [| |] (

Semantics
The available brackets, coupled with their meanings (blank for undecided), are: