Generalized MSL syntax is described in this wiki using railroad diagrams and Extended Backus-Naur Form (EBNF) notation.
::= literal
required
[range
] ( choice
| another-choice
) optional
? repeated
+ optional-repeated
*
::= prelude | machine | world | stream | view | canon | atom | selector | value | transform | hash | comment
::= (
msl
key ( selector | value | transform )* hash? comment? )
::= (
m
key ( machine | world | stream | view | canon | atom | selector | value | transform )* hash? comment? )
::= (
w
key ( machine | world | stream | view | canon | atom | selector | value | transform )* hash? comment? )
::= (
s
key ( machine | world | stream | view | canon | atom | selector | value | transform )* hash? comment? )
::= (
v
key ( machine | world | stream | view | canon | atom | selector | value | transform )* hash? comment? )
::= (
c
key ( canon | atom | selector | value | transform )* hash? comment? )
::= (
@
key ( machine | world | stream | view | canon | atom | selector | value | transform )* hash? comment? )
::= [a-zA-Z]+ ( -
? [0-9a-zA-Z]+ )*
::= :
key | /
regexp /
regexp-env? | data-type
::= char*
::= [http://www.w3.org/TR/xml#NT-Char]
::= [
( filespec | url ) ]
| format
::= [http://en.wikipedia.org/wiki/File_URI_scheme]
::= [http://en.wikipedia.org/wiki/Uniform_Resource_Identifier]
::=(
d
key ( selector | value )* comment? )
::=(
f
key ( format | selector | value )* comment? )
::= #
sha-256
::= [https://en.wikipedia.org/wiki/SHA-2]
::= //
value