diff options
Diffstat (limited to 'spec/grammar')
| -rw-r--r-- | spec/grammar/UGI_GRAMMAR_v0.abnf | 50 | ||||
| -rw-r--r-- | spec/grammar/UGI_GRAMMAR_v0.ebnf | 50 |
2 files changed, 50 insertions, 50 deletions
diff --git a/spec/grammar/UGI_GRAMMAR_v0.abnf b/spec/grammar/UGI_GRAMMAR_v0.abnf index d0f7da1..0c411fc 100644 --- a/spec/grammar/UGI_GRAMMAR_v0.abnf +++ b/spec/grammar/UGI_GRAMMAR_v0.abnf @@ -1,4 +1,4 @@ -; UGI Grammar v0 — RFC 5234 ABNF +; UGI Grammar v0: RFC 5234 ABNF ; Generated from ugi_registry_v0.json ; ; Compatible with abnf.dev/abnf2svg @@ -40,87 +40,87 @@ sub-id = 1*4ALPHA ; === Per-field rules === -; a — Age (direct) +; a: Age (direct) field-a = %x61 ODIGIT -; b — Build (special) +; b: Build (special) field-b = %x62 ODIGIT [aspire] "/" ODIGIT [aspire] -; c — Clothing (direct) +; c: Clothing (direct) field-c = %x63 ODIGIT [alternative / aspire] -; d — Editor / IDE (multi) +; d: Editor / IDE (multi) field-d-entry = (sub-id / custom-sub) ODIGIT [aspire] field-d = %x64 1*field-d-entry -; e — Education (direct) +; e: Education (direct) field-e = %x65 ODIGIT [aspire] -; f — Food / Cooking (direct) +; f: Food / Cooking (direct) field-f = %x66 ODIGIT [modifier] -; g — Geek Specialization (special) +; g: Geek Specialization (special) g-domain = 2*4ALPHA ["$"] g-custom = "~" 2*ALPHA field-g = %x67 (g-domain / g-custom) *("/" (g-domain / g-custom)) -; h — Hair (multi) +; h: Hair (multi) field-h-entry = (sub-id / custom-sub) ODIGIT [aspire] field-h = %x68 1*field-h-entry -; i — AI Stance (direct) +; i: AI Stance (direct) field-i = %x69 ODIGIT -; j — Gaming (multi) +; j: Gaming (multi) field-j-entry = (sub-id / custom-sub) ODIGIT [modifier] field-j = %x6A 1*field-j-entry -; k — Books (direct) +; k: Books (direct) field-k = %x6B ODIGIT [aspire] -; l — Spoken Languages (multi) +; l: Spoken Languages (multi) field-l-entry = 2ALPHA ODIGIT [modifier] field-l = %x6C 1*field-l-entry -; m — Music (multi) +; m: Music (multi) field-m-entry = (sub-id / custom-sub) ODIGIT field-m = %x6D 1*field-m-entry -; o — Operating System (multi) +; o: Operating System (multi) field-o-entry = (sub-id / custom-sub) ODIGIT [modifier] field-o = %x6F 1*field-o-entry -; p — Programming Languages (multi) +; p: Programming Languages (multi) field-p-entry = (sub-id / custom-sub) ODIGIT [modifier] field-p = %x70 1*field-p-entry -; q — Security / Hacking (direct) +; q: Security / Hacking (direct) field-q = %x71 ODIGIT [alternative / modifier] -; r — Religion (single) +; r: Religion (single) field-r = %x72 (sub-id / custom-sub) ODIGIT -; s — Sex / Relationships (direct) +; s: Sex / Relationships (direct) field-s = %x73 ODIGIT [alternative / aspire] -; t — TV / Film (multi) +; t: TV / Film (multi) field-t-entry = (sub-id / custom-sub) ODIGIT field-t = %x74 1*field-t-entry -; v — Politics (special) +; v: Politics (special) field-v = %x76 ODIGIT "/" ODIGIT -; w — Hardware (direct) +; w: Hardware (direct) field-w = %x77 ODIGIT [modifier] -; x — Comics / Manga (multi) +; x: Comics / Manga (multi) field-x-entry = (sub-id / custom-sub) ODIGIT field-x = %x78 1*field-x-entry -; y — Fitness (direct) +; y: Fitness (direct) field-y = %x79 ODIGIT [modifier] -; z — Maker / DIY (direct) +; z: Maker / DIY (direct) field-z = %x7A ODIGIT [modifier] ; === Block format === diff --git a/spec/grammar/UGI_GRAMMAR_v0.ebnf b/spec/grammar/UGI_GRAMMAR_v0.ebnf index e37f87f..d950818 100644 --- a/spec/grammar/UGI_GRAMMAR_v0.ebnf +++ b/spec/grammar/UGI_GRAMMAR_v0.ebnf @@ -1,4 +1,4 @@ -/* UGI Grammar v0 — W3C EBNF */ +/* UGI Grammar v0: W3C EBNF */ /* Generated from ugi_registry_v0.json */ /* Compatible with bottlecaps.de/rr/ui */ @@ -62,87 +62,87 @@ sub_id ::= alpha alpha? alpha? alpha? /* === Per-field rules === */ -/* a — Age (direct) */ +/* a: Age (direct) */ field_a ::= 'a' odigit -/* b — Build (special) */ +/* b: Build (special) */ field_b ::= 'b' odigit aspire? '/' odigit aspire? -/* c — Clothing (direct) */ +/* c: Clothing (direct) */ field_c ::= 'c' odigit ( alternative | aspire )? -/* d — Editor / IDE (multi) */ +/* d: Editor / IDE (multi) */ field_d_entry ::= ( sub_id | custom_sub ) odigit ( aspire )? field_d ::= 'd' field_d_entry+ -/* e — Education (direct) */ +/* e: Education (direct) */ field_e ::= 'e' odigit ( aspire )? -/* f — Food / Cooking (direct) */ +/* f: Food / Cooking (direct) */ field_f ::= 'f' odigit ( modifier )? -/* g — Geek Specialization (special) */ +/* g: Geek Specialization (special) */ g_domain ::= alpha alpha alpha? alpha? paid? g_custom ::= '~' alpha alpha alpha* field_g ::= 'g' ( g_domain | g_custom ) ( '/' ( g_domain | g_custom ) )* -/* h — Hair (multi) */ +/* h: Hair (multi) */ field_h_entry ::= ( sub_id | custom_sub ) odigit ( aspire )? field_h ::= 'h' field_h_entry+ -/* i — AI Stance (direct) */ +/* i: AI Stance (direct) */ field_i ::= 'i' odigit -/* j — Gaming (multi) */ +/* j: Gaming (multi) */ field_j_entry ::= ( sub_id | custom_sub ) odigit ( modifier )? field_j ::= 'j' field_j_entry+ -/* k — Books (direct) */ +/* k: Books (direct) */ field_k ::= 'k' odigit ( aspire )? -/* l — Spoken Languages (multi) */ +/* l: Spoken Languages (multi) */ field_l_entry ::= alpha alpha odigit ( modifier )? field_l ::= 'l' field_l_entry+ -/* m — Music (multi) */ +/* m: Music (multi) */ field_m_entry ::= ( sub_id | custom_sub ) odigit field_m ::= 'm' field_m_entry+ -/* o — Operating System (multi) */ +/* o: Operating System (multi) */ field_o_entry ::= ( sub_id | custom_sub ) odigit ( modifier )? field_o ::= 'o' field_o_entry+ -/* p — Programming Languages (multi) */ +/* p: Programming Languages (multi) */ field_p_entry ::= ( sub_id | custom_sub ) odigit ( modifier )? field_p ::= 'p' field_p_entry+ -/* q — Security / Hacking (direct) */ +/* q: Security / Hacking (direct) */ field_q ::= 'q' odigit ( alternative | modifier )? -/* r — Religion (single) */ +/* r: Religion (single) */ field_r ::= 'r' ( sub_id | custom_sub ) odigit -/* s — Sex / Relationships (direct) */ +/* s: Sex / Relationships (direct) */ field_s ::= 's' odigit ( alternative | aspire )? -/* t — TV / Film (multi) */ +/* t: TV / Film (multi) */ field_t_entry ::= ( sub_id | custom_sub ) odigit field_t ::= 't' field_t_entry+ -/* v — Politics (special) */ +/* v: Politics (special) */ field_v ::= 'v' odigit '/' odigit -/* w — Hardware (direct) */ +/* w: Hardware (direct) */ field_w ::= 'w' odigit ( modifier )? -/* x — Comics / Manga (multi) */ +/* x: Comics / Manga (multi) */ field_x_entry ::= ( sub_id | custom_sub ) odigit field_x ::= 'x' field_x_entry+ -/* y — Fitness (direct) */ +/* y: Fitness (direct) */ field_y ::= 'y' odigit ( modifier )? -/* z — Maker / DIY (direct) */ +/* z: Maker / DIY (direct) */ field_z ::= 'z' odigit ( modifier )? /* === Block format === */ |
