38 lines
999 B
BNF
38 lines
999 B
BNF
|
|
// Object Path BNF
|
|
// ================
|
|
|
|
// The first part of the grammar is the ns path.
|
|
// =============================================
|
|
|
|
<umi_path> ::= UMICONST TOK_COLON FSLASH FSLASH <locator> FSLASH <ns_root_selector> FSLASH <component_list>;
|
|
|
|
<locator> ::= IDENT ; // Machine name
|
|
<locator> ::= DOT ; // current machine name
|
|
<locator> ::= <>; // Machine name
|
|
|
|
<ns_root_selector> ::= IDENT;
|
|
|
|
<component_list> ::= <component><component_list_rest>;
|
|
|
|
<component_list_rest> ::= FSLASH <component><component_list_rest>;
|
|
<component_list_rest> ::= <>;
|
|
|
|
<component> ::= IDENT <def_starts_with_ident>;
|
|
<component> ::= DOT <key_list>;
|
|
<component> ::= <GUID_PATH>;
|
|
|
|
<def_starts_with_ident> ::= DOT <key_list>;
|
|
<def_starts_with_ident> ::= TOK_EQUALS IDENT;
|
|
<def_starts_with_ident> ::= <>;
|
|
|
|
|
|
<guid_path> ::= TOK_GUILD_CONST TOK_GUID;
|
|
|
|
<key_list> ::= <key><key_list_rest>;
|
|
|
|
<key_list_rest> ::= TOK_COMMA <key><key_list_rest>;
|
|
<key_list_rest> ::= <>;
|
|
|
|
<key> ::= IDENT TOK_EQUALS IDENT;
|