proposition of generic syntax of MRLs ===================================== This document defines a draft for a syntactic specification of MRLs as used by xine-lib. The language of MRLs is designed to be a true subset of the language of URIs as given in RFC2396. A type 2 grammar for the language of MRLs is given in EBNF below. Semantically, MRLs consist of two distinct parts that are evaluated by different components of the xine architecture. The first part, derivable from the symbol in the given grammar, is completely handed to the input plugins, with input plugins signaling if they can handle the MRL. The second part, derivable from and delimited from the first by a crosshatch ('#') contains parameters that modify the initialization and playback behaviour of the stream to which the MRL is passed. The possible parameters are mentioned in the manpage to xine-ui. The following definition should be regarded as a guideline only. Of course any given input plugin only understands a subset of all possible MRLs. On the other hand, invalid MRLs according to this definition might be understood for convenience reasons. Some user awareness is required at this point. EBNF grammar for MRLs: ::= [#] ::= (|) ::= :(|)[?] ::= (|) ::= //[] ::= / ::= [] ::= {} ::= (||;|@|&|=|+|$|,) ::= {(||+|-|.)} ::= (|) ::= [[@][:]] ::= {(||;|:|&|=|+|$|,)} ::= (|) ::= {.}[.] ::= (|{(|-)}) ::= (|{(|-)}) ::= {}.{}.{}.{} ::= {} ::= {} ::= (||;|:|@|&|=|+|$|,) ::= {/} ::= {}{;} ::= {} ::= (||:|@|&|=|+|$|,) ::= {} ::= ;{} ::= (||novideo|noaudio|nospu) ::= : ::= {} ::= {} ::= {}:{} ::= (||:|@|&|=|+|$|,) ::= (||) ::= (;|/|?|:|@|&|=|+|$|,) ::= (|) ::= (-|_|.|!|~|*|'|(|)) ::= % ::= (|A|B|C|D|E|F|a|b|c|d|e|f) ::= (|) ::= (|) ::= (a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) ::= (A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z) ::= (0|1|2|3|4|5|6|7|8|9) --- version of this file: $Id: README.mrl,v 1.1 2003/01/05 13:11:53 guenter Exp $